What semaphoreui/semaphore shipped
Written by FoxPlug from the repository's own releases; not affiliated with Semaphoreui. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/semaphoreui/semaphore; Semaphoreui did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- The web frontend moved to Vue 3.5, Vuetify 4.3 and Vite 8, keeping the UI looking and behaving as before. Pull request #4397
- Roles gained a Can read project permission, and members without it see only the templates and workflows their roles grant. Pull request #4379
- Workflows now have their own run, edit and approve permissions plus role grants that can be set from a Permissions tab on the workflow page. Pull request #4378
- LDAP sign-in can now read a user's directory groups and apply the group role mappings, enabled by the
ldap_group_search_dnsetting. Pull request #4395 - Workflow tasks now expose their resolved workflow version to executors through the SEMAPHORE_WORKFLOW_VERSION environment variable when a version is available. Pull request #4363
- The Go version used for community and self-hosted builds and releases was updated, along with supporting Go libraries. Pull request #4412
- Version 2.19.18 was released with the SEMAPHORE_SESSION_INACTIVITY_HOURS setting, which sets how long an unused login session may stay before it expires. Release
- Version 2.19.19 was released with validation of survey variables. Release
- Version v2.20.20-rc1 was published with caching for runners. Release
- Version v2.20.20-rc2 was published with a fix for branch detection in CI. Release
Why it matters
Existing roles and grants are lifted on upgrade for the new read permission and workflow permissions, so nobody loses access. LDAP deployments can now apply group role mappings at sign-in, which previously only OIDC with groups_claim could do. The frontend framework move keeps the interface unchanged while modernising the stack behind the web directory.
Changelog entry
- Move the web frontend to Vue 3.5, Vuetify 4.3 and Vite 8. Pull request #4397
- Add the Can read project permission to roles. Pull request #4379
- Add workflow run, edit and approve permissions and role grants on workflows. Pull request #4378
- Apply LDAP group role mappings at sign-in through
ldap_group_search_dn. Pull request #4395 - Expose the resolved workflow version to executors through SEMAPHORE_WORKFLOW_VERSION. Pull request #4363
- Update Go to 1.26.10 for community and self-hosted builds and releases. Pull request #4412
- Release v2.20.20-rc1 with caching for runners. Release
- Release v2.20.20-rc2 with a CI branch detection fix. Release
- Release v2.20.19-rc1 with a merge conflict fix. Release
- Release v2.20.19-beta1 with the read permission. Release
- Release v2.19.18 with the SEMAPHORE_SESSION_INACTIVITY_HOURS setting. Release
- Release v2.19.19 with validation of survey variables. Release
This week: workflow permissions with run, edit and approve; a Can read project permission for roles; LDAP group mappings at sign-in; workflow version passed to executors; and the frontend moved to Vue 3, Vuetify 4 and Vite.
This week's work on Semaphore: workflows get their own permissions for run, edit and approve, plus role grants set from a Permissions tab on the workflow page. Roles gain a Can read project permission, and existing roles and grants are lifted on upgrade so nobody loses access. LDAP sign-in can now read a user's directory groups and apply group role mappings. Workflow tasks expose their resolved workflow version to executors through an environment variable when a version is available. The web frontend moves to Vue 3.5, Vuetify 4.3 and Vite 8 as a like-for-like change, and Go was updated for community and self-hosted builds.
Week of October 26, 2026
What shipped
- Added a client CLI for signing in with a password or token, managing saved server contexts, and browsing projects and their templates, inventories, environments, keys and repositories. Pull request #4383
- Added string-type access keys with a masked, revealable secret field whose value is encrypted and left out of responses and backups, usable as authentication secrets for supported token and HMAC integrations. Pull request #4369
- Project create and restore no longer leave a half-made project behind on failure, restored roles keep their slugs, and the restore dialog now asks which role of this instance to use instead of matching template permissions by slug. Pull request #4362
- Subscription validation requests can now use an optional HTTP, HTTPS, SOCKS5 or SOCKS5H proxy with optional credentials, applied only to subscription-server requests. Pull request #4381
- Port configuration now accepts a string or an integer from 0 to 65535, formats unprefixed values correctly for listeners and the localhost URL, and uses the default port 3000 when empty. Pull request #4367
- Released v2.20.16-beta9. Release
- Released v2.20.16-beta8, including a UI change that reduces API calls. Release
Why it matters
This week brings a client CLI for signing in and working with projects and their resources from the command line, and a new string-type access key that keeps its secret encrypted and out of responses and backups. Project restore is more reliable, since a failed create or restore no longer leaves a half-made project behind. Port configuration also takes both strings and integers, with empty values falling back to the default port.
Changelog entry
- Added a client CLI for signing in with a password or token, managing saved server contexts, and browsing projects and their resources. Pull request #4383
- Added string-type access keys with a masked, revealable secret that is encrypted and omitted from responses and backups. Pull request #4369
- Failed project create or restore no longer leaves a half-made project; restored roles keep their slugs and the restore dialog asks about shared roles. Pull request #4362
- Subscription validation requests can use an optional HTTP, HTTPS, SOCKS5 or SOCKS5H proxy with optional credentials. Pull request #4381
- Port configuration accepts a string or an integer from 0 to 65535; empty values use the default port 3000. Pull request #4367
- Released v2.20.16-beta9. Release
- Released v2.20.16-beta8. Release
This week: a client CLI for signing in and browsing projects and their resources, string access keys with an encrypted secret, safer project restore that asks about shared roles, proxy support for subscription validation, and port config that accepts a number.
This week the project gained a client CLI for signing in with a password or token, managing saved server contexts, and browsing projects and their templates, inventories, environments, keys and repositories. A new string-type access key keeps its secret masked and encrypted, and leaves it out of responses and backups. Project create and restore no longer leaves a half-made project behind, and the restore dialog asks which role of this instance to use for shared roles. Subscription validation can now go through an optional proxy, and port configuration accepts a string or an integer from 0 to 65535, falling back to the default port 3000 when empty.
Week of October 19, 2026
What shipped
- Redis sentinel support was added, including a universal Redis client, high availability configuration and documentation. Pull request #4360
- Instance-wide roles with configurable permissions were added, with assignment to users, visibility into each user's effective permissions and management in the admin interface. Pull request #4348
- A task's Git branch can be specified with the reserved
git_branchparameter, taking precedence over the default branch when branch overrides are allowed. Pull request #4354 - The server image now uses the maintained libpass fork in place of passlib, fixing the bcrypt backend load failure. Pull request #4322
- Users without project creation permission now see a message to ask an administrator instead of the New Project form. Pull request #4353
- The v2.19.17 release adds configurable check interval for job polling in the runner. Release
- Workflow integrations were updated to pass the workflow id and to support workflows through a migration. Pull request #4350
- Ansible was removed from the /info output. Release
- An extra API call was removed in the UI. Release
- API calls in the UI were optimized. Release
Why it matters
This week brings Redis sentinel support for high availability setups and instance-wide roles with configurable permissions. It also adds Git branch selection per task and fixes the passlib bcrypt issue in the server image, alongside several UI and release fixes. Most changes are in the beta releases leading to v2.20.16, with v2.19.17 shipping the job polling interval setting.
Changelog entry
- Optimize API calls in the UI. Release
- Remove an extra API call in the UI. Release
- Remove Ansible from /info. Release
- Support Redis sentinel. Release
- Use an Ubuntu dev container in CI. Release
- Replace passlib with libpass in the server image. Pull request #4322
- Specify a task's Git branch with the
git_branchparameter. Pull request #4354 - Add check interval configuration for job polling in the runner. Release
- Hide the project form from users without creation permission. Pull request #4353
- Pass workflow id to integrations and support workflows. Pull request #4350
- Add instance-wide roles with configurable permissions. Pull request #4348
This week: Redis sentinel support, instance-wide roles with configurable permissions, and a git_branch parameter for tasks. The server image now uses libpass to fix the bcrypt backend issue, and the UI makes fewer API calls.
This week in Semaphore: Redis sentinel support landed, including a universal Redis client, high availability configuration and docs. Instance-wide roles with configurable permissions can now be assigned to users, with visibility into effective permissions and admin controls. Tasks can specify a Git branch via the reserved git_branch parameter. The server image replaces passlib with the maintained libpass fork to fix a bcrypt backend load failure. Users without project creation permission now see a message instead of the New Project form. The v2.19.17 release adds a configurable check interval for job polling.
Week of October 12, 2026
What shipped
- Workflows can now pass artifacts between stages, with an output protocol for runners and support for workflow input failures and source logs. Pull request #4334
- Workflows gained survey variables with typed answers, defaults and validation when starting a workflow, with answers passed to task fields through configurable bindings and shown in run details. Pull request #4346
- Project roles can now come from identity provider group mappings, added to every project access check and exposed as a separate read-only
mapped_rolesfield in the users API. Pull request #4347 - A project member can now hold more than one role, shown as chips on the team page, while the API keeps the old role field so existing Terraform and scripts keep working. Pull request #4343
- Every role now has an ID, with members and template permissions pointing to roles by ID instead of slug, fixing references to deleted roles or roles of another project. Pull request #4341
- Repositories can be marked as monorepos so templates on the same branch share one checkout while keeping their home and internal metadata separate. Pull request #4326
- Remote repository checkouts now use shallow clones, downloading less history to reduce checkout time and data transfer. Pull request #4340
- Fixed concurrent tasks sharing a static inventory writing the same temporary file and removing it while another task still needed it. Pull request #4335
- Ansible extra-vars files now keep quoted string values that look numeric, boolean, date or null when using Ansible Core 2.19 and newer, while values with Jinja2 expressions stay protected. Pull request #4339
- Added an audit log screen for admins showing the newest events first with every field of an event, with filters and export from the Pro module. Pull request #4325
Why it matters
This week touches two parts of daily use at once: workflows got richer inputs and outputs, with survey variables and artifacts passed between stages, and access control became more flexible with multiple roles per member, roles from identity provider groups and roles referenced by ID. Repository handling also got cheaper checkouts through shallow clones and shared checkouts for monorepos, alongside fixes for concurrent static inventory cleanup and extra-vars quoting. A new admin audit log screen and the v2.20.0-alpha4 release round out the week.
Changelog entry
- Feat(workflows): pass artifacts between workflow stages with an output protocol for runners. Pull request #4334
- Feat(workflows): add survey variables with typed answers, defaults and validation. Pull request #4346
- Feat(roles): read project roles from identity provider group mappings via
groups_claim. Pull request #4347 - Feat(roles): let project members hold several roles. Pull request #4343
- Feat(roles): give every role an ID and reference roles by ID for members and template permissions. Pull request #4341
- Feat(repository): mark repositories as monorepos to share one checkout between templates on the same branch. Pull request #4326
- Feat(git): use shallow clones for remote repository checkouts. Pull request #4340
- Fix(tasks): stop concurrent tasks sharing a static inventory from removing each other's temporary file. Pull request #4335
- Fix(tasks): keep quoted string values in Ansible extra-vars with Ansible Core 2.19 and newer. Pull request #4339
- Feat(audit): add an admin audit log screen with filters and export from the Pro module. Pull request #4325
- Docs: add Pethost as a deployment option in the README. Pull request #4342
- Release: v2.20.0-alpha4. Release
Workflow survey variables, artifacts passed between stages, roles from identity provider groups, several roles per member, a shared monorepo checkout, shallow clones and an admin audit log screen are out this week, plus a fix for concurrent static inventory cleanup.
This week's changes: workflows can collect typed survey answers when started and pass artifacts between stages, with an output protocol for runners. Access control changed in three ways: members can hold several roles, project roles can come from identity provider group mappings, and every role now has an ID so members and template permissions no longer point to a deleted role or a role of another project. Repositories can be marked as monorepos to share one checkout across templates on the same branch, and remote checkouts now use shallow clones. Concurrent tasks sharing a static inventory no longer remove each other's temporary file, Ansible extra-vars keep quoted values with Ansible Core 2.19 and newer, and admins have an audit log screen. Released as v2.20.0-alpha4.
Week of October 5, 2026
What shipped
- Audit events can now be deleted after a configurable retention period through audit.retention_days, with old events removed at startup and hourly. Pull request #4313
- A new audit.splunk_hec configuration section adds the HEC audit destination, read and validated only by the Pro module while OSS builds ignore it. Pull request #4309
- The template file picker now offers the files of the selected app, listing directory contents one level at a time for infrastructure apps. Pull request #4298
- Workflow runs now have environment variables describing the current workflow run. Release
- The runner check interval is now configurable instead of being hard-coded to 1 second. Release
- The runner check interval is now configurable instead of being hard-coded to 1 second. Release
Why it matters
This week brings more control over audit data, with an optional retention period that removes old events on a schedule and a new configuration section for a Splunk HEC audit destination in Semaphore Pro. Runners can now be told how often to ask the server for jobs, which reduces request traffic on installations with many runners. The template file picker also points at the files of the selected app, and workflow runs expose environment variables about the current run.
Changelog entry
- Feat(audit): delete audit events older than a retention period through audit.retention_days, disabled by default Pull request #4313
- Feat(audit): add the audit.splunk_hec configuration section for the HEC audit destination in Semaphore Pro Pull request #4309
- Fix(template): offer the files of the selected app in the file picker Pull request #4298
- Feat(workflows): add environment variables about the current workflow run Release
- Release: v2.18.31 with a configurable runner check interval Release
- Release: v2.19.16 with a configurable runner check interval Release
Audit retention, a Splunk HEC audit config section, configurable runner check interval, app-aware file picker, and workflow run environment variables all landed this week.
Several changes landed this week. Audit events can be deleted after a configurable retention period via audit.retention_days, with cleanup at startup and hourly; the new audit.splunk_hec section configures the HEC audit destination for Pro builds. Runners can now be told how often to ask the server for new jobs instead of the hard-coded 1 second interval. The template file picker offers the files of the selected app, and workflow runs expose environment variables about the current run.
Week of September 28, 2026
What shipped
- Security audit log foundation added to track who did what, from where, to which objects, and whether actions succeeded, with logging off by default and configurable via audit.enabled and audit.instance_id settings. Pull request #4291
- Task and runner events now recorded in the security audit log, including task starts from all trigger types, approval requests, completions with results, and runner activity. Pull request #4300
- Resource and secret events recorded in the audit log for projects, inventories, repositories, templates, schedules, integrations, host configs, environments, credentials, and secret storages. Pull request #4296
- Workflow editor redesigned with status-aware nodes and connections, light and dark themes, and canvas controls for zoom, pan, fit, and arrangement. Pull request #4287
- Workflow tasks now receive environment variables with project and task identifiers, plus workflow run and template identifiers and workflow URL when available. Pull request #4302
- Ansible Galaxy installation support enhanced for private Git repositories with template-configured roles, collections, Git authentication, and SSH key support. Pull request #4156
- BoltDB migration fixed to properly detect apps and exit with failure status when migration encounters issues. Pull request #4297
- Version v2.20.0-alpha3 released with workflow environment variables feature. Release
Why it matters
The audit log foundation provides visibility into project activity for security and compliance needs. Workflow improvements including redesigned editor UI and enhanced environment variables make workflow automation more transparent and easier to manage. Private repository support in Galaxy extends deployment flexibility.
Changelog entry
- Security audit log foundation: tracks user actions on objects with success/failure status, disabled by default, configurable via audit.enabled and audit.instance_id Pull request #4291
- Audit events for tasks: recorded from API, schedule, integration, autorun, and workflow triggers, including approvals, rejections, stops, and completion results Pull request #4300
- Audit events for resources and secrets: projects, inventories, repositories, templates, schedules, integrations, host configs, environments, credentials, and secret storages Pull request #4296
- Workflow editor redesigned with status-aware nodes, connections, light/dark themes, and canvas controls (zoom, pan, fit, arrange) Pull request #4287
- Workflow task environment variables: added project and task IDs, workflow run and template IDs, and workflow URL when available Pull request #4302
- Ansible Galaxy private repository support: improved authentication for private Git repositories with SSH key and credential support Pull request #4156
- BoltDB migration fix: properly detect apps and exit with failure status on migration errors Pull request #4297
- Released v2.20.0-alpha3 Release
V2.20.0-alpha3: Security audit log foundation added to track who did what across resources, plus workflow editor redesign and enhanced private repository support.
This week Semaphore ships security audit logging to track project activity, task and runner events, and resource changes—all configurable and stored in the database. The workflow editor gets a complete redesign with improved node management and theme support. Workflow tasks now receive environment variables for better integration context, and Ansible Galaxy installation now supports private Git repositories.
Week of September 21, 2026
What shipped
- Project host configuration now maps SSH hosts and Git URLs to credentials, with UI controls to create, edit, and delete mappings in project settings. Pull request #4251
- Secrets can now generate private SSH keys on the server, with the option to display public keys for updated secrets. Pull request #3656
- Integrations support HMAC-SHA512 webhook authentication method alongside the existing HMAC-SHA256 option. Pull request #4270
- Git operations on bare-metal installations now forward proxy environment variables and support authentication encoding for internal repositories. Pull request #4197
- Task log timestamps are excluded from text selection so copying output lines doesn't include time column data. Pull request #4266
- Schedule timezone alert can now be dismissed and the dismissal persists across page reloads. Pull request #4267
- Unit tests replaced os.Setenv with t.Setenv for automatic cleanup of environment variable mutations. Pull request #4271
Why it matters
This week adds credential mapping for SSH hosts to streamline repository authentication, generates SSH keys server-side for easier secret management, and improves webhook integrations with additional authentication methods. These changes address configuration pain points for teams managing multiple Git sources and improve bare-metal installation compatibility.
Changelog entry
- Feat(host-config): map ssh hosts and git URLs to project credentials Pull request #4251
- Feat(secrets): generate private ssh key on server Pull request #3656
- Feat(integrations): add HMAC-SHA512 webhook auth method Pull request #4270
- Fix(git): forward proxy environment vars and support auth encoding in bare metal installations Pull request #4197
- Fix(ui): exclude log timestamps from text selection Pull request #4266
- Fix(ui): make schedule timezone alert dismissible Pull request #4267
- Chore(tests): replace os.Setenv with t.Setenv Pull request #4271
New in Semaphore: map SSH hosts to project credentials, generate SSH keys server-side, HMAC-SHA512 webhooks, improved Git auth on bare-metal, and better log copy-paste behavior.
This week's Semaphore updates focus on credential management and authentication improvements. Projects can now map SSH hosts and Git URLs to specific credentials with UI controls. SSH key generation moves to the server for better secret handling. Webhook integrations gain HMAC-SHA512 support. Bare-metal installations get improved proxy and authentication encoding for Git operations. Task logs handle copy-paste better by excluding timestamps.
More from semaphoreui/semaphore on GitHub
Merged pull requests
- feat(host-config): map ssh hosts and git URLs to project credentials (#4251, merged September 25, 2026 by befika) (source)
- fix(git): forward proxy environment vars and support auth encoding in bare metal installations (#4197, merged September 24, 2026 by NewMayur) (source)
- fix(ui): exclude log timestamps from text selection (#4266, merged September 23, 2026 by EyJunge1) (source)
- feat(integrations): add HMAC-SHA512 webhook auth method (#4270, merged September 23, 2026 by EyJunge1) (source)
- fix(ui): make schedule timezone alert dismissible (#4267, merged September 22, 2026 by EyJunge1) (source)
- chore(tests): replace os.Setenv with t.Setenv (#4271, merged September 22, 2026 by EyJunge1) (source)
- Gracefully stop and clean up local task process groups (#4228, merged September 18, 2026 by rzaitov) (source)
- Adding username to task logging (#4239, merged September 14, 2026 by JRNC) (source)
- feat: suppress error notifications per template (#4232, merged September 11, 2026 by EyJunge1) (source)
- feat(auth): session duration (#4227, merged September 10, 2026 by fiftin) (source)
- fix(runner): authenticate unregister requests (#4214, merged September 10, 2026 by souryogurt) (source)
- feat(runners): add server-side debug diagnostics (#4222, merged September 10, 2026 by souryogurt) (source)