# Woodpecker CI changelog > A lightweight, container-native CI engine configured from the repository. - Vendor: Woodpecker - Category: Developer Tools - Official site: https://woodpecker-ci.org - Tracked by: What's New (https://whatsnew.fyi/product/woodpecker-ci) - Harvested from: GitHub (woodpecker-ci/woodpecker) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### v3.17.0 — 3.17.0 - Date: 2026-07-31 - Version: v3.17.0 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.17.0 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.17.0 - **security** — Update module github.com/getkin/kin-openapi to v0.144.0 - **security** — Make grpc secret autogenerated - **security** — Gate Kubernetes nodeSelector backend step config behind agent config - **added** — WebUI: show runtime workflow errors - **added** — Add Docker backend AppArmor profile option - **changed** — Rework k8s utils to handle resource names and labels - **changed** — Make matrix axis permutation order deterministic - **added** — Add unix socket permission option to server - **added** — Add step type label to step-level Prometheus metrics - **changed** — Stamp trusted commit-branch and event pod labels - **changed** — Rename CI_COMMIT_PRERELEASE to CI_PIPELINE_RELEASE_PRE - **changed** — Rework pipeline data structure: Release and Tag - **fixed** — Guard DAG cycle check against filtered-out optional dependencies - **fixed** — All yaml unmarshalling should use maxDepth - **fixed** — Don't count step error as workflow runtime error - **fixed** — Do not allow 0 minute timeout - **fixed** — Fix pipeline queue default template data - **fixed** — Use toLabelValue instead of toDNSName in Kubernetes step label - **fixed** — ReFetch secrets on pipeline restart - **fixed** — Treat 404 on empty repos as empty pull request list in Forgejo ##### [3.17.0](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.17.0) - 2026-07-31 ###### ❤️ Thanks to all contributors! ❤️ @6543, @AnayGarodia, @DerRockWolf, @Kernald, @Komzpa, @OCram85, @TowyTowy, @cyphercodes, @glitch-ux, @healdropper, @ivanvc, @jleider, @kanywst, @nicolasbatistoni, @qwerty287, @rfinnie, @roian6, @xoxys, @youdie006, @zmully ###### 🔒 Security - Update module github.com/getkin/kin-openapi to v0.144.0 [SECURITY] [[#6896](https://github.com/woodpecker-ci/woodpecker/pull/6896)] - Make grpc secret autogenerated [[#6845](https://github.com/woodpecker-ci/woodpecker/pull/6845)] - Gate Kubernetes nodeSelector backend step config behind agent config [[#6809](https://github.com/woodpecker-ci/woodpecker/pull/6809)] ###### ✨ Features - WebUI: show runtime workflow errors [[#6577](https://github.com/woodpecker-ci/woodpecker/pull/6577)] ###### 📈 Enhancement - Add Docker backend AppArmor profile option [[#6909](https://github.com/woodpecker-ci/woodpecker/pull/6909)] - refactor: rework k8s utils to handle resource names and labels [[#6855](https://github.com/woodpecker-ci/woodpecker/pull/6855)] - Make matrix axis permutation order deterministic [[#6847](https://github.com/woodpecker-ci/woodpecker/pull/6847)] - feat(server): add unix socket permission option [[#6839](https://github.com/woodpecker-ci/woodpecker/pull/6839)] - Add step type label to step-level Prometheus metrics [[#6824](https://github.com/woodpecker-ci/woodpecker/pull/6824)] - Stamp trusted commit-branch and event pod labels [[#6802](https://github.com/woodpecker-ci/woodpecker/pull/6802)] - Rename CI_COMMIT_PRERELEASE to CI_PIPELINE_RELEASE_PRE [[#6794](https://github.com/woodpecker-ci/woodpecker/pull/6794)] - Rework pipeline data structure: Release & Tag [[#6774](https://github.com/woodpecker-ci/woodpecker/pull/6774)] ###### 🐛 Bug Fixes - fix(server): guard DAG cycle check against filtered-out optional dependencies [[#6915](https://github.com/woodpecker-ci/woodpecker/pull/6915)] - all yaml unmarshalling should use maxDepth [[#6911](https://github.com/woodpecker-ci/woodpecker/pull/6911)] - Don't count step error as workflow runtime error [[#6904](https://github.com/woodpecker-ci/woodpecker/pull/6904)] - Do not allow 0 minute timeout [[#6903](https://github.com/woodpecker-ci/woodpecker/pull/6903)] - Fix pipeline queue default template data [[#6906](https://github.com/woodpecker-ci/woodpecker/pull/6906)] - Use toLabelValue instead of toDNSName in Kubernetes step label [[#6890](https://github.com/woodpecker-ci/woodpecker/pull/6890)] - ReFetch secrets on pipeline restart [[#6857](https://github.com/woodpecker-ci/woodpecker/pull/6857)] - fix(forgejo): treat 404 on empty repos as empty pull request list [[#6872](https://github.com/woodpecker-ci/woodpecker/pull/6872)] - fix(github): resolve tag pagination loop in release hook [[#6870](https://github.com/woodpecker-ci/woodpecker/pull/6870)] - Fix CreatePipeline retry [[#6859](https://github.com/woodpecker-ci/woodpecker/pull/6859)] - WebUI: unregister scaffold Tab on unmount and stable Tab order [[#6842](https://github.com/woodpecker-ci/woodpecker/pull/6842)] - WebUI: Fixes three bugs around component unmount and reset in compositions [[#6843](https://github.com/woodpecker-ci/woodpecker/pull/6843)] - fix(server): heal users left on forge_id=0 with closed registration [[#6823](https://github.com/woodpecker-ci/woodpecker/pull/6823)] - Correct forge_id and org handling on user/repo [[#6820](https://github.com/woodpecker-ci/woodpecker/pull/6820)] ###### 🧪 Tests - Add `fuzz` target to make [[#6828](https://github.com/woodpecker-ci/woodpecker/pull/6828)] - Add mock for server scheduler [[#6848](https://github.com/woodpecker-ci/woodpecker/pull/6848)] ###### 📚 Documentation - Remove dependency overrides [[#6912](https://github.com/woodpecker-ci/woodpecker/pull/6912)] - Document CLI configuration [[#6899](https://github.com/woodpecker-ci/woodpecker/pull/6899)] - Update pnpm to v11.17.0 [[#6892](http _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.17.0]_ ### v3.16.0 — 3.16.0 - Date: 2026-06-27 - Version: v3.16.0 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.16.0 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.16.0 - **security** — Gate Kubernetes serviceAccountName backend step config behind agent config - **security** — Harden agent rpc to check agentID on workflow - **security** — Security updates for js dependencies - **security** — Update mongo-driver to v1.17.7 - **security** — Update joi - **added** — Add workflow concurrency limit option - **added** — Support Unix Sockets - **changed** — Kubernetes allow custom image when precreating workingDir as nonroot - **changed** — Server can move pipeline parsing into background on long creation times - **added** — Add CI_COMMIT_PULL_REQUEST_DRAFT environment variable - **changed** — Make LogEntry Buffer configurable for agent - **changed** — Agent treat gRPC Internal error as fatal - **added** — Add Prometheus metrics for pipeline step duration and failures - **added** — Add k8s userns support - **changed** — Make cli exec auto detect single workflow test in multi workflow setup - **changed** — Surface .env load errors - **changed** — Group commands followup user preference - **changed** — Trim white spaces for cron create/update - **fixed** — Allow images for secrets to contain SHA256 for image pinning - **fixed** — Server should drop stale queue tasks already missing in database ##### [3.16.0](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.16.0) - 2026-06-27 ###### ❤️ Thanks to all contributors! ❤️ @6543, @AkashKumar7902, @M31ancholy, @MeurillonGuillaume, @WeslleyNasRocha, @gedankenstuecke, @head1328, @mahlzahn, @mmeier86, @nati737, @nijave, @qwerty287, @simonckemper, @simonmeyerrr ###### 🔒 Security - Gate Kubernetes serviceAccountName backend step config behind agent config [[#6792](https://github.com/woodpecker-ci/woodpecker/pull/6792)] - Harden agent rpc to check agentID on workflow [[#6759](https://github.com/woodpecker-ci/woodpecker/pull/6759)] - Security updates for js dependencies [[#6737](https://github.com/woodpecker-ci/woodpecker/pull/6737)] - bump go.mongodb.org/mongo-driver v1.17.6 => v1.17.7 [[#6741](https://github.com/woodpecker-ci/woodpecker/pull/6741)] - Update joi [[#6728](https://github.com/woodpecker-ci/woodpecker/pull/6728)] ###### ✨ Features - Add workflow concurrency limit option [[#6671](https://github.com/woodpecker-ci/woodpecker/pull/6671)] - Support Unix Sockets [[#6721](https://github.com/woodpecker-ci/woodpecker/pull/6721)] ###### 📈 Enhancement - Kubernetes: allow custom image when precreating workingDir as nonroot [[#6771](https://github.com/woodpecker-ci/woodpecker/pull/6771)] - Server can move pipeline parsing into background on long creation times [[#6781](https://github.com/woodpecker-ci/woodpecker/pull/6781)] - Add CI_COMMIT_PULL_REQUEST_DRAFT environment variable [[#6778](https://github.com/woodpecker-ci/woodpecker/pull/6778)] - Make LogEntry Buffer configurable for agent [[#6773](https://github.com/woodpecker-ci/woodpecker/pull/6773)] - Agent treat gRPC Internal error as fatal [[#6780](https://github.com/woodpecker-ci/woodpecker/pull/6780)] - Refactor to inject store and context into server scheduler [[#6755](https://github.com/woodpecker-ci/woodpecker/pull/6755)] - Refactor server scheduler collect in new interface [[#6753](https://github.com/woodpecker-ci/woodpecker/pull/6753)] - Add Prometheus metrics for pipeline step duration and failures [[#6738](https://github.com/woodpecker-ci/woodpecker/pull/6738)] - Add k8s userns support [[#6710](https://github.com/woodpecker-ci/woodpecker/pull/6710)] - Make cli exec auto detect single workflow test in multi workflow setup [[#6715](https://github.com/woodpecker-ci/woodpecker/pull/6715)] - Surface `.env` load errors [[#6707](https://github.com/woodpecker-ci/woodpecker/pull/6707)] - Group commands followup user preference [[#6694](https://github.com/woodpecker-ci/woodpecker/pull/6694)] - Trim white spaces for cron create/update [[#6690](https://github.com/woodpecker-ci/woodpecker/pull/6690)] - Improve slow user authorization if many orgs/repos [[#5665](https://github.com/woodpecker-ci/woodpecker/pull/5665)] - pipeline: use more explizite error for step dependencies filtered out by its conditions [[#6680](https://github.com/woodpecker-ci/woodpecker/pull/6680)] - Add commit timestamp env vars [[#6670](https://github.com/woodpecker-ci/woodpecker/pull/6670)] - Show forge in users list [[#6666](https://github.com/woodpecker-ci/woodpecker/pull/6666)] ###### 🐛 Bug Fixes - Allow images for secrets to contain SHA256 for image pinning [[#6784](https://github.com/woodpecker-ci/woodpecker/pull/6784)] - server should drop stale queue tasks already missing in database [[#6765](https://github.com/woodpecker-ci/woodpecker/pull/6765)] - server queue api should ignore missing agent [[#6763](https://github.com/woodpecker-ci/woodpecker/pull/6763)] - docs: deps migrate gray-matter to maintained fork [[#6744](https://github.com/woodpecker-ci/woodpecker/pull/6744)] - local backend: on windows use process tree-walk as workaround to kill [[#6718](https://github.com/woodpecker-ci/woodpecker/pull/6718)] - Fix issue with deeply nested k8s backend_options [[#6730](https://github.com/woodpecker-ci/woodpecker/pull/6730)] - cli exec: have uniq prefix for each workflow [[#6716](https://github.com/woodpecker-ci/woodpecker/pull/6716 _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.16.0]_ ### v3.15.0 — 3.15.0 - Date: 2026-05-28 - Version: v3.15.0 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.15.0 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.15.0 - **security** — Use Gitlab username for authentication - **security** — Update uuid dependency - **security** — Extract agentID in context for grpc store - **added** — Support optional flag in depends_on for workflows and steps - **changed** — Use refactored pipeline builder in cli exec - **added** — Add config to change default pipeline config paths and extensions - **changed** — Allow disabling service workspace volumes in k8s - **added** — Display warning if admin is configured at env level - **added** — Add timezone support for crons - **added** — Add CI_PIPELINE_RERUNS environment variable - **added** — Add placeholders to inputs - **changed** — Group logs by command in step logs UI and make them collapsible - **added** — Expose step type to step env - **changed** — Add CI_PIPELINE_STATUS back and move setting step environment variables into own func - **changed** — Refactor agent rpc retry - **fixed** — Fix org lookup panic - **fixed** — Deduplicate schema linter composition errors - **fixed** — On linux/mac start commands in own process group and kill the group on cancel in local backend - **fixed** — Add guards to stop pipeline services upon completion in k8s - **fixed** — Fix missing log close button ##### [3.15.0](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.15.0) - 2026-05-28 ###### ❤️ Thanks to all contributors! ❤️ @6543, @AkashKumar7902, @EdwardSalter, @M31ancholy, @anbraten, @hhamalai, @johanvdw, @jolheiser, @julienvincent, @lephuongbg, @mateuszkamola, @qwerty287, @rfinnie, @simonmeyerrr, @wucm667 **Special thanks to @geo-chen for finding and reporting vulnerabilities!** ###### 🔒 Security - Use Gitlab username [[#6653](https://github.com/woodpecker-ci/woodpecker/pull/6653)] - Update uuid [[#6647](https://github.com/woodpecker-ci/woodpecker/pull/6647)] - server: for grpc store extracted agentID in context [[#6569](https://github.com/woodpecker-ci/woodpecker/pull/6569)] ###### ✨ Features - Support optional flag in depends_on for workflows and steps [[#6461](https://github.com/woodpecker-ci/woodpecker/pull/6461)] ###### 📈 Enhancement - Use refactored pipeline builder in cli exec [[#6453](https://github.com/woodpecker-ci/woodpecker/pull/6453)] - Add config to change default pipeline config paths and extensions [[#6580](https://github.com/woodpecker-ci/woodpecker/pull/6580)] - Allow disabling service workspace volumes in k8s [[#6644](https://github.com/woodpecker-ci/woodpecker/pull/6644)] - View warning if admin is configured at env level [[#6600](https://github.com/woodpecker-ci/woodpecker/pull/6600)] - Add timezone support for crons [[#6597](https://github.com/woodpecker-ci/woodpecker/pull/6597)] - Add CI_PIPELINE_RERUNS environment variable [[#6588](https://github.com/woodpecker-ci/woodpecker/pull/6588)] - Add placeholders to inputs [[#6599](https://github.com/woodpecker-ci/woodpecker/pull/6599)] - Refactor `server/.../step_builder` into `pipeline/.../builder` [[#3967](https://github.com/woodpecker-ci/woodpecker/pull/3967)] - Group logs by command in step logs UI and make them collapsible [[#6398](https://github.com/woodpecker-ci/woodpecker/pull/6398)] - Expose step type to step env [[#4290](https://github.com/woodpecker-ci/woodpecker/pull/4290)] - pipeline runtime: move setting step environment variables into own func and add `CI_PIPELINE_STATUS` back [[#6516](https://github.com/woodpecker-ci/woodpecker/pull/6516)] - Refactor agent rpc retry [[#6515](https://github.com/woodpecker-ci/woodpecker/pull/6515)] ###### 🐛 Bug Fixes - Fix org lookup panic [[#6652](https://github.com/woodpecker-ci/woodpecker/pull/6652)] - Deduplicate schema linter composition errors [[#6633](https://github.com/woodpecker-ci/woodpecker/pull/6633)] - local backend: on linux / mac start commands in own process group and kill the group on cancel [[#6609](https://github.com/woodpecker-ci/woodpecker/pull/6609)] - k8s: add guards to stop pipeline services upon completion [[#6623](https://github.com/woodpecker-ci/woodpecker/pull/6623)] - Fix missing log close button [[#6584](https://github.com/woodpecker-ci/woodpecker/pull/6584)] - fix(agent): persist agent ID after auth to prevent crashloop duplicates [[#6543](https://github.com/woodpecker-ci/woodpecker/pull/6543)] - fix(gitlab): preserve private flag when webhook payload omits project visibility [[#6544](https://github.com/woodpecker-ci/woodpecker/pull/6544)] ###### 🧪 Tests - Fix race in local backend tests [[#6574](https://github.com/woodpecker-ci/woodpecker/pull/6574)] ###### 📚 Documentation - Add note about extension permission [[#6646](https://github.com/woodpecker-ci/woodpecker/pull/6646)] - Add GitHub OAuth App setup hint to docker-compose page [[#6643](https://github.com/woodpecker-ci/woodpecker/pull/6643)] - Update pnpm to v11.3.0 [[#6639](https://github.com/woodpecker-ci/woodpecker/pull/6639)] - Update docs npm deps non-major [[#6625](https://github.com/woodpecker-ci/woodpecker/pull/6625)] - Docs: Mention that you can use failure: fail [[#6611](https://github.com/woodpecker-ci/woodpecker/pull/6611)] - Change homepage of woodpecker-shellcheck [[#6594](https://github.com/woodpecker-ci/woodpecker/pull/6594)] _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.15.0]_ ### v3.14.1 — 3.14.1 - Date: 2026-05-12 - Version: v3.14.1 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.1 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.14.1 - **security** — Server: make sure agent_id can not be spoofed by agent ##### [3.14.1](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.1) - 2026-05-12 ###### ❤️ Special thanks the security researchers and those who fixed them ❤️ - Thanks to **Shivam Kumar ([@shivamkumarcyber](https://github.com/shivamkumarcyber))** and **Ranganatha Rao Sridhar (Praetorian)** _independently finding and reporting the bug_ - And [@6543](https://github.com/6543) _fixing the bugs and orchestrating the communication_ CVE-2026-50141 EUVD-2026-37897 ###### 🔒 Security - Server: make sure agent_id can not be spoofed by agent [[#6567](https://github.com/woodpecker-ci/woodpecker/pull/6567)] ### v3.14.0 — 3.14.0 - Date: 2026-05-01 - Version: v3.14.0 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.14.0 - **added** — Support one-shot agent execution mode - **added** — Add external secret extension implementation - **added** — Allow disabling isolated home directory for local agents - **added** — Add Container Registry credential extension - **added** — Support exclusive config extensions - **changed** — Kubernetes: precreate workingDir as nonroot when required - **changed** — Kubernetes: Support allowPrivilegeEscalation and capabilities backend_options - **changed** — Make agent reconnect retry timeout configurable - **changed** — Docker/K8s: add config for stop timeout - **changed** — Docker backend should retry to delete volume on in use error - **changed** — Unify server API parameters to snake_case - **changed** — Add netrc option for config/registry extension - **changed** — Docker backend: replace docker SDK with moby SDK - **changed** — Deprecate commit avatar envs - **changed** — Show Woodpecker version on pipeline details - **changed** — Show global/org registries in org/repo registries tab - **changed** — Report skipped step state as soon as it's determined - **changed** — Add server config for maximum log lines shown in web UI - **fixed** — Sanitize agent introduced pipeline/workflow/step state changes and log streaming - **fixed** — Send 404 if logs are not allowed to access - **security** — Prevent registering as arbitrary agents with system token ##### [3.14.0](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0) - 2026-05-01 ###### ❤️ Thanks to all contributors! ❤️ @6543, @Aex12, @AhmadNajiKam, @CrimsonFez, @LUKIEYF, @LoricAndre, @M31ancholy, @MartinSchmidt, @Pnkcaht, @Sim-hu, @TumbleOwlee, @api2062, @bclermont, @brainbaking, @cliffmccarthy, @confusedsushi, @dccdis, @hhamalai, @hnb2, @lephuongbg, @mehrdadbn9, @mofr93, @myers, @myselfghost, @njaaazi, @packrat386, @paulovitorbal, @qwerty287, @rfinnie, @rhafer, @samoli, @savv, @stardothosting, @utafrali, @wucm667 ###### 🔒 Security - docs: bump follow-redirects [[#6441](https://github.com/woodpecker-ci/woodpecker/pull/6441)] - chore(deps): update dependency axios to v1.15.0 [security] [[#6417](https://github.com/woodpecker-ci/woodpecker/pull/6417)] - fix(deps): update go.opentelemetry.io/otel to v1.43.0 [[#6416](https://github.com/woodpecker-ci/woodpecker/pull/6416)] - WebUI: remove "lodash" dep [[#6369](https://github.com/woodpecker-ci/woodpecker/pull/6369)] - Sanitize agent introduced pipeline/workflow/step state changes and log streaming [[#6308](https://github.com/woodpecker-ci/woodpecker/pull/6308)] - Send 404 if logs are not allowed to access [[#6349](https://github.com/woodpecker-ci/woodpecker/pull/6349)] - Prevent registering as arbitrary agents with system token [[#6283](https://github.com/woodpecker-ci/woodpecker/pull/6283)] - Update `fast-xml-parser` [[#6258](https://github.com/woodpecker-ci/woodpecker/pull/6258)] - Update `dompurify` and `svgo` [[#6198](https://github.com/woodpecker-ci/woodpecker/pull/6198)] - Update edwards25519 [[#6143](https://github.com/woodpecker-ci/woodpecker/pull/6143)] ###### ✨ Features - Support one-shot agent execution mode [[#6150](https://github.com/woodpecker-ci/woodpecker/pull/6150)] - Add external secret extension implementation [[#6252](https://github.com/woodpecker-ci/woodpecker/pull/6252)] - Allow disabling isolated home directory for local agents [[#6251](https://github.com/woodpecker-ci/woodpecker/pull/6251)] - Add Container Registry credential extension [[#5993](https://github.com/woodpecker-ci/woodpecker/pull/5993)] - Support exclusive config extensions [[#5978](https://github.com/woodpecker-ci/woodpecker/pull/5978)] ###### 📈 Enhancement - Kubernetes: precreate workingDir as nonroot when required [[#6322](https://github.com/woodpecker-ci/woodpecker/pull/6322)] - Kubernetes: Support allowPrivilegeEscalation and capabilities backend_options [[#6307](https://github.com/woodpecker-ci/woodpecker/pull/6307)] - Refactor: remove Auth() from Forge interface [[#6505](https://github.com/woodpecker-ci/woodpecker/pull/6505)] - Move wait for log uploads logic out of logger and tracer into pipeline runtime [[#6471](https://github.com/woodpecker-ci/woodpecker/pull/6471)] - Make agent reconnect retry timeout configurable [[#6470](https://github.com/woodpecker-ci/woodpecker/pull/6470)] - Handle re-created forge repos gracefully [[#6370](https://github.com/woodpecker-ci/woodpecker/pull/6370)] - Cleanup server store step interface [[#6476](https://github.com/woodpecker-ci/woodpecker/pull/6476)] - Docker/K8s: add config for stop timeout [[#6445](https://github.com/woodpecker-ci/woodpecker/pull/6445)] - Docker backend should retry to delete volume on "in use" error [[#6381](https://github.com/woodpecker-ci/woodpecker/pull/6381)] - Move skip pipeline by commit message into pipeline/frontend package [[#6437](https://github.com/woodpecker-ci/woodpecker/pull/6437)] - Init `server/scheduler` package and use it as proxy for queue & pubsub [[#6418](https://github.com/woodpecker-ci/woodpecker/pull/6418)] - Unify server API parameters to snake_case [[#6404](https://github.com/woodpecker-ci/woodpecker/pull/6404)] - Add netrc option for config/registry extension [[#6333](https://github.com/woodpecker-ci/woodpecker/pull/6333)] - Docker backend: replace docker SDK with moby SDK [[#6357](https://github.com/woodpecker-ci/woodpecker/pull/6357)] - Deprecate commit avatar envs [[#6356](ht _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0]_ ### v3.14.0-rc.2 — 3.14.0-rc.2 - Date: 2026-04-27 - Version: v3.14.0-rc.2 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.2 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.14.0-rc.2 - Labels: Pre-release - **security** — Bump follow-redirects dependency - **changed** — Remove Auth() from Forge interface - **changed** — Move wait for log uploads logic out of logger and tracer into pipeline runtime - **added** — Make agent reconnect retry timeout configurable - **changed** — Handle re-created forge repos gracefully - **changed** — Cleanup server store step interface - **added** — Add config for stop timeout in Docker and Kubernetes backends - **fixed** — Docker backend should retry to delete volume on in use error - **fixed** — Fix trusted flags copy-paste bug and server nil pointer panic - **fixed** — Add refname to bitbucket commit status - **fixed** — Fix send on closed channel panic in SSE stream handlers - **added** — Add WOODPECKER_FORCE_IGNORE_SERVICE_FAILURE config to preserve non-breaking behavior by default - **fixed** — Fix race in pipeline runtime - **fixed** — Fix race in server LogEntry logger - **fixed** — Detached steps are no services in Kubernetes ##### [3.14.0-rc.2](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.2) - 2026-04-27 ###### ❤️ Thanks to all contributors! ❤️ @6543, @LoricAndre, @bclermont, @hhamalai, @lephuongbg, @njaaazi, @rhafer ###### 🔒 Security - docs: bump follow-redirects [[#6441](https://github.com/woodpecker-ci/woodpecker/pull/6441)] ###### 📈 Enhancement - Refactor: remove Auth() from Forge interface [[#6505](https://github.com/woodpecker-ci/woodpecker/pull/6505)] - Move wait for log uploads logic out of logger and tracer into pipeline runtime [[#6471](https://github.com/woodpecker-ci/woodpecker/pull/6471)] - Make agent reconnect retry timeout configurable [[#6470](https://github.com/woodpecker-ci/woodpecker/pull/6470)] - Handle re-created forge repos gracefully [[#6370](https://github.com/woodpecker-ci/woodpecker/pull/6370)] - Cleanup server store step interface [[#6476](https://github.com/woodpecker-ci/woodpecker/pull/6476)] - Docker/K8s: add config for stop timeout [[#6445](https://github.com/woodpecker-ci/woodpecker/pull/6445)] - Docker backend should retry to delete volume on "in use" error [[#6381](https://github.com/woodpecker-ci/woodpecker/pull/6381)] ###### 🐛 Bug Fixes - fix(cli,server): fix trusted flags copy-paste bug and server nil pointer panic [[#6501](https://github.com/woodpecker-ci/woodpecker/pull/6501)] - Add refname to bitbucket commit status [[#6482](https://github.com/woodpecker-ci/woodpecker/pull/6482)] - Fix send on closed channel panic in SSE stream handlers [[#6456](https://github.com/woodpecker-ci/woodpecker/pull/6456)] - Add `WOODPECKER_FORCE_IGNORE_SERVICE_FAILURE` config to preserve non-breaking behavior by default [[#6448](https://github.com/woodpecker-ci/woodpecker/pull/6448)] - Fix race in pipeline runtime [[#6451](https://github.com/woodpecker-ci/woodpecker/pull/6451)] - Fix race in server LogEntry logger [[#6449](https://github.com/woodpecker-ci/woodpecker/pull/6449)] - Kubernetes: detached steps are no services [[#6435](https://github.com/woodpecker-ci/woodpecker/pull/6435)] ###### 🧪 Tests - e2e test wait for grpc server teardown and stop agents [[#6479](https://github.com/woodpecker-ci/woodpecker/pull/6479)] - Add more test cases for rpc label filter [[#6483](https://github.com/woodpecker-ci/woodpecker/pull/6483)] - Fix flaky TestJWTManager [[#6478](https://github.com/woodpecker-ci/woodpecker/pull/6478)] - Add e2e pipeline restart test [[#6469](https://github.com/woodpecker-ci/woodpecker/pull/6469)] - Init minimal e2e tests [[#6391](https://github.com/woodpecker-ci/woodpecker/pull/6391)] - Enhance datastore DB test setup [[#6450](https://github.com/woodpecker-ci/woodpecker/pull/6450)] ###### 📚 Documentation - Lock file maintenance [[#6508](https://github.com/woodpecker-ci/woodpecker/pull/6508)] - Update docs npm deps non-major [[#6496](https://github.com/woodpecker-ci/woodpecker/pull/6496)] - Add Laravel Forge plugin [[#6491](https://github.com/woodpecker-ci/woodpecker/pull/6491)] - Add 'entrypoint' property to service in schema [[#6487](https://github.com/woodpecker-ci/woodpecker/pull/6487)] - Lock file maintenance [[#6472](https://github.com/woodpecker-ci/woodpecker/pull/6472)] - Update dependency axios to v1.15.1 [[#6468](https://github.com/woodpecker-ci/woodpecker/pull/6468)] - Update dependency marked to v18.0.2 [[#6465](https://github.com/woodpecker-ci/woodpecker/pull/6465)] - Update docs npm deps non-major [[#6463](https://github.com/woodpecker-ci/woodpecker/pull/6463)] ###### 📦️ Dependency - Update module github.com/google/go-github/v84 to v85 [[#6500](https://github.com/woodpecker-ci/woodpecker/pull/6500)] - Update module github.com/getkin/kin-openapi to v0.136.0 [[#6503](https://github.com/woodpecker-ci/woodpecker/pull/6503)] - Update woodpeckerci/plugin-git Docker tag to v2.9.0 [[#6499](https://github.com/woodpecker-ci/woodpecker/pull/6499)] - Update docker.io/mysql Docker tag to v9.7.0 [[#6498](https://github.com/woodpecker-ci/woodpecker/pull/6498)] - Update docke _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.2]_ ### v3.14.0-rc.1 — 3.14.0-rc.1 - Date: 2026-04-15 - Version: v3.14.0-rc.1 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.1 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.14.0-rc.1 - Labels: Pre-release - **security** — Update dependency axios to v1.15.0 - **security** — Update go.opentelemetry.io/otel to v1.43.0 - **security** — Remove lodash dependency from WebUI - **security** — Sanitize agent introduced pipeline/workflow/step state changes and log streaming - **added** — Initialize server/scheduler package and use it as proxy for queue and pubsub - **changed** — Move skip pipeline by commit message into pipeline/frontend package - **changed** — Unify API parameters to snake case - **fixed** — Support dots in image names - **fixed** — Fix erroneous linter error for plugin privileges - **fixed** — Add connection timeout and graceful shutdown to agent RPC client - **fixed** — Fix Windows container exit code handling and error checks - **fixed** — Remove usage of deprecated /user/permissions/repositories endpoint in Bitbucket integration - **fixed** — Fix parsing /user/workspaces response in Bitbucket integration - **fixed** — Fix CLI exec with workflow matrix feature where variables are not substituted - **fixed** — Fix enable repo with same name and owner on second forge ##### [3.14.0-rc.1](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.1) - 2026-04-15 ###### ❤️ Thanks to all contributors! ❤️ @6543, @AhmadNajiKam, @M31ancholy, @lephuongbg, @packrat386, @qwerty287, @utafrali ###### 🔒 Security - chore(deps): update dependency axios to v1.15.0 [security] [[#6417](https://github.com/woodpecker-ci/woodpecker/pull/6417)] - fix(deps): update go.opentelemetry.io/otel to v1.43.0 [[#6416](https://github.com/woodpecker-ci/woodpecker/pull/6416)] - WebUI: remove "lodash" dep [[#6369](https://github.com/woodpecker-ci/woodpecker/pull/6369)] - Sanitize agent introduced pipeline/workflow/step state changes and log streaming [[#6308](https://github.com/woodpecker-ci/woodpecker/pull/6308)] ###### 📈 Enhancement - Move skip pipeline by commit message into pipeline/frontend package [[#6437](https://github.com/woodpecker-ci/woodpecker/pull/6437)] - Init server/scheduler package and use it as proxy for queue&pubsub [[#6418](https://github.com/woodpecker-ci/woodpecker/pull/6418)] - refactor(server): unify api parameters to snake case [[#6404](https://github.com/woodpecker-ci/woodpecker/pull/6404)] ###### 🐛 Bug Fixes - Support dots in image names [[#6431](https://github.com/woodpecker-ci/woodpecker/pull/6431)] - Fix erroneous linter error for plugin privileges [[#6424](https://github.com/woodpecker-ci/woodpecker/pull/6424)] - fix: add connection timeout and graceful shutdown to agent RPC client [[#6414](https://github.com/woodpecker-ci/woodpecker/pull/6414)] - Fix Windows container exit code handling and error checks [[#6411](https://github.com/woodpecker-ci/woodpecker/pull/6411)] - Bitbucket: Remove usage of deprecated /user/permissions/repositories [[#6401](https://github.com/woodpecker-ci/woodpecker/pull/6401)] - Bitbucket: Fix parsing /user/workspaces response [[#6396](https://github.com/woodpecker-ci/woodpecker/pull/6396)] - Fix CLI exec with workflow matrix feature, where variables are not substituted. [[#6162](https://github.com/woodpecker-ci/woodpecker/pull/6162)] - Fix enable repo with same name and owner on second forge [[#6375](https://github.com/woodpecker-ci/woodpecker/pull/6375)] ###### 🧪 Tests - Dummy backend support cancel [[#6390](https://github.com/woodpecker-ci/woodpecker/pull/6390)] ###### 📚 Documentation - Update dependency marked to v18 [[#6425](https://github.com/woodpecker-ci/woodpecker/pull/6425)] - Update docs npm deps non-major [[#6422](https://github.com/woodpecker-ci/woodpecker/pull/6422)] - chore(deps): update dependency marked to v17.0.6 [[#6386](https://github.com/woodpecker-ci/woodpecker/pull/6386)] - chore(deps): update dependency fuse.js to v7.3.0 [[#6382](https://github.com/woodpecker-ci/woodpecker/pull/6382)] - chore(deps): update docs npm deps non-major [[#6376](https://github.com/woodpecker-ci/woodpecker/pull/6376)] ###### 📦️ Dependency - Update docker.io/woodpeckerci/plugin-ready-release-go Docker tag to v4.1.1 [[#6440](https://github.com/woodpecker-ci/woodpecker/pull/6440)] - Update module gitlab.com/gitlab-org/api/client-go/v2 to v2.18.0 [[#6439](https://github.com/woodpecker-ci/woodpecker/pull/6439)] - Update docker.io/woodpeckerci/plugin-codecov Docker tag to v2.3.1 [[#6438](https://github.com/woodpecker-ci/woodpecker/pull/6438)] - Lock file maintenance [[#6430](https://github.com/woodpecker-ci/woodpecker/pull/6430)] - Update dependency dotenv to v17.4.2 [[#6428](https://github.com/woodpecker-ci/woodpecker/pull/6428)] - Update dependency simple-icons to v16.16.0 [[#6427](https://github.com/woodpecker-ci/woodpecker/pull/6427)] - Update web npm deps non-major [[#6423](https://github.com/woodpecker-ci/woodpecker/pull/6423)] - Update pre-commit hook rbubley/mirrors-prettier to v3.8.2 [[#6421](https://github.com/woodpecker-ci/woodpecker/pull/6421)] - Update dependency golang to v1.26.2 [[#6420](https://github.com/woodpecker-ci/woodpecker/pull/6420)] - fix(deps): update module github.com/docker/cli to v29.4.0+incompatible [[#6403](https://gi _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.1]_ ### v3.14.0-rc.0 — 3.14.0-rc.0 - Date: 2026-04-01 - Version: v3.14.0-rc.0 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.0 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.14.0-rc.0 - Labels: Pre-release - **security** — Send 404 if logs are not allowed to access - **security** — Prevent registering as arbitrary agents with system token - **security** — Update fast-xml-parser - **security** — Update dompurify and svgo - **security** — Update edwards25519 - **security** — Update dependency lodash to v4.17.23 - **added** — Support one-shot agent execution mode - **added** — Add external secret extension implementation - **added** — Add Container Registry credential extension - **added** — Support exclusive config extensions - **added** — Add netrc option for config/registry extension - **changed** — Migrate to moby - **deprecated** — Deprecate commit avatar envs - **changed** — Separate cron field - **changed** — Show Woodpecker version on pipeline details - **changed** — Show global/org registries in org/repo registries tab - **changed** — Compare admins case-insensitively - **added** — Allow to cancel on failure - **added** — Configure the max number of lines loaded in log webview - **added** — Add Load more pagination to pipeline list ##### [3.14.0-rc.0](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.0) - 2026-04-01 ###### ❤️ Thanks to all contributors! ❤️ @6543, @CrimsonFez, @LUKIEYF, @MartinSchmidt, @Pnkcaht, @Sim-hu, @TumbleOwlee, @api2062, @brainbaking, @cliffmccarthy, @confusedsushi, @dccdis, @hhamalai, @hnb2, @mehrdadbn9, @mofr93, @myers, @myselfghost, @paulovitorbal, @qwerty287, @samoli, @savv, @stardothosting ###### 🔒 Security - Send 404 if logs are not allowed to access [[#6349](https://github.com/woodpecker-ci/woodpecker/pull/6349)] - Prevent registering as arbitrary agents with system token [[#6283](https://github.com/woodpecker-ci/woodpecker/pull/6283)] - Update `fast-xml-parser` [[#6258](https://github.com/woodpecker-ci/woodpecker/pull/6258)] - Update `dompurify` and `svgo` [[#6198](https://github.com/woodpecker-ci/woodpecker/pull/6198)] - Update edwards25519 [[#6143](https://github.com/woodpecker-ci/woodpecker/pull/6143)] - chore(deps): update dependency lodash to v4.17.23 [security] [[#5997](https://github.com/woodpecker-ci/woodpecker/pull/5997)] ###### ✨ Features - Support one-shot agent execution mode [[#6150](https://github.com/woodpecker-ci/woodpecker/pull/6150)] - Add external secret extension implementation [[#6252](https://github.com/woodpecker-ci/woodpecker/pull/6252)] - make it possible to disable the isolated home for local agents [[#6251](https://github.com/woodpecker-ci/woodpecker/pull/6251)] - Add Container Registry credential extension [[#5993](https://github.com/woodpecker-ci/woodpecker/pull/5993)] - Support exclusive config extensions [[#5978](https://github.com/woodpecker-ci/woodpecker/pull/5978)] ###### 📈 Enhancement - Add netrc option for config/registry extension [[#6333](https://github.com/woodpecker-ci/woodpecker/pull/6333)] - Migrate to moby [[#6357](https://github.com/woodpecker-ci/woodpecker/pull/6357)] - Deprecate commit avatar envs [[#6356](https://github.com/woodpecker-ci/woodpecker/pull/6356)] - Refactor server/pubsub into interface [[#6318](https://github.com/woodpecker-ci/woodpecker/pull/6318)] - Separate cron field [[#6346](https://github.com/woodpecker-ci/woodpecker/pull/6346)] - Refactor pipeline runtime code [[#6166](https://github.com/woodpecker-ci/woodpecker/pull/6166)] - Show Woodpecker version on pipeline details [[#6316](https://github.com/woodpecker-ci/woodpecker/pull/6316)] - Unify import aliases [[#6328](https://github.com/woodpecker-ci/woodpecker/pull/6328)] - Improve linter warning when step has no when block [[#6314](https://github.com/woodpecker-ci/woodpecker/pull/6314)] - Improve error message when no workflows for manual were found [[#6313](https://github.com/woodpecker-ci/woodpecker/pull/6313)] - Server return conflict status when stale repo causes duplicate insert [[#6276](https://github.com/woodpecker-ci/woodpecker/pull/6276)] - Show global/org registries in org/repo registries tab [[#6291](https://github.com/woodpecker-ci/woodpecker/pull/6291)] - Forward skipped step state once it's known [[#6295](https://github.com/woodpecker-ci/woodpecker/pull/6295)] - Only add compatibility environment variables for drone-ci to plugins [[#6271](https://github.com/woodpecker-ci/woodpecker/pull/6271)] - Creating new engine runtime now requires backend as argument [[#6268](https://github.com/woodpecker-ci/woodpecker/pull/6268)] - Compare admins case-insensitively [[#6261](https://github.com/woodpecker-ci/woodpecker/pull/6261)] - Allow to cancel on failure [[#6158](https://github.com/woodpecker-ci/woodpecker/pull/6158)] - Refactor so storage detects if Insert fails because of unique constraint [[#6259](https://github.com/woodpecker-ci/woodpecker/pull/6259)] - Add configure the max number of lines loaded in log webview [[#6250](https://github.com/woodpecker-ci/woodpecker/pull/6250)] - Add "Load more" pagination to pipeline list [[#6200](https://github.com/woodpecker-ci/woodpecker/pull/6200)] - refactor: pipeline runtime add description and prevent race [[#6167](https://github.co _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.14.0-rc.0]_ ### v3.13.0 — 3.13.0 - Date: 2026-01-14 - Version: v3.13.0 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.13.0 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.13.0 - **security** — Update quic-go/qpack & quic-go/quic-go - **security** — Fix updateRepoPermissions to cleanup old permissions - **added** — Add CLI contexts - **added** — Allow to add a note to secrets - **added** — Add support for pod affinity and anti-affinity configurations in Kubernetes - **added** — Add public key endpoint - **added** — Add support for headless Kubernetes services - **added** — Include CI_COMMIT_TAG env in deployment events - **changed** — Log addon errors - **changed** — Allow custom variables for crons - **changed** — Allow to disable a cron - **changed** — Add background to status icons - **changed** — Allow untrusted repo to still drop network for steps - **changed** — Add events query parameter to badge URL - **fixed** — Use repo-user for API call of cron - **fixed** — Close opened file on LogFind - **fixed** — Delete/Deactivate repo ignores missing repo at forge - **fixed** — Correctly update repo permissions - **fixed** — Revert repos pagination for GitHub and Bitbucket - **fixed** — Do not run crons for disabled repos ##### [3.13.0](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.13.0) - 2026-01-14 ###### ❤️ Thanks to all contributors! ❤️ @6543, @Javex, @KhalidAlansary, @MartinSchmidt, @abhiyerra, @anbraten, @bentasker, @gjuoun, @gsaslis, @henkka, @jolheiser, @mogsie, @qwerty287, @sloonz, @sugar700, @tuxmainy, @xoxys ###### 🔒 Security - Update quic-go/qpack & quic-go/quic-go [[#5885](https://github.com/woodpecker-ci/woodpecker/pull/5885)] - fix: updateRepoPermissions to cleanup old permissions [[#5790](https://github.com/woodpecker-ci/woodpecker/pull/5790)] ###### ✨ Features - Add cli contexts [[#5929](https://github.com/woodpecker-ci/woodpecker/pull/5929)] ###### 📈 Enhancement - Allow to add a note to secrets [[#5898](https://github.com/woodpecker-ci/woodpecker/pull/5898)] - Log addon errors [[#5923](https://github.com/woodpecker-ci/woodpecker/pull/5923)] - Custom vars for crons [[#5897](https://github.com/woodpecker-ci/woodpecker/pull/5897)] - Allow to disable a cron [[#5896](https://github.com/woodpecker-ci/woodpecker/pull/5896)] - Add background to status icons [[#5880](https://github.com/woodpecker-ci/woodpecker/pull/5880)] - Fix dead page and cleanup router [[#5519](https://github.com/woodpecker-ci/woodpecker/pull/5519)] - feat(kubernetes): add support for pod affinity and anti-affinity configurations [[#5854](https://github.com/woodpecker-ci/woodpecker/pull/5854)] - Public key endpoint [[#5860](https://github.com/woodpecker-ci/woodpecker/pull/5860)] - Allow untrusted repo to still drop network for steps [[#5820](https://github.com/woodpecker-ci/woodpecker/pull/5820)] - Add support for headless Kubernetes services [[#5764](https://github.com/woodpecker-ci/woodpecker/pull/5764)] - server/forge: rename var to be more descriptive and test value [[#5806](https://github.com/woodpecker-ci/woodpecker/pull/5806)] - add events query parameter to badge url [[#5728](https://github.com/woodpecker-ci/woodpecker/pull/5728)] - Extract default step-builder options into server [[#5785](https://github.com/woodpecker-ci/woodpecker/pull/5785)] - feat: include CI_COMMIT_TAG env in deployment events [[#5773](https://github.com/woodpecker-ci/woodpecker/pull/5773)] ###### 🐛 Bug Fixes - Use repo-user for api call of cron [[#5967](https://github.com/woodpecker-ci/woodpecker/pull/5967)] - Close opened file on LogFind [[#5961](https://github.com/woodpecker-ci/woodpecker/pull/5961)] - Delete/Deactivate repo ignores missing repo at forge [[#5953](https://github.com/woodpecker-ci/woodpecker/pull/5953)] - Correctly update repo permissions [[#5928](https://github.com/woodpecker-ci/woodpecker/pull/5928)] - Revert repos pagination for GH and BB [[#5924](https://github.com/woodpecker-ci/woodpecker/pull/5924)] - fix: send correct argument to rpc call for name/url [[#5922](https://github.com/woodpecker-ci/woodpecker/pull/5922)] - fix: secrets-file flag [[#5909](https://github.com/woodpecker-ci/woodpecker/pull/5909)] - Do not run crons for disabled repos [[#5884](https://github.com/woodpecker-ci/woodpecker/pull/5884)] - Show warning if there is no workflow to run [[#5883](https://github.com/woodpecker-ci/woodpecker/pull/5883)] - fix(datastore): fix pagination bug in workflowsDelete skipping records [[#5881](https://github.com/woodpecker-ci/woodpecker/pull/5881)] - Remove rounded corners in fullscreen log view [[#5879](https://github.com/woodpecker-ci/woodpecker/pull/5879)] - Fix some ListItems and Queue view background in dark mode [[#5878](https://github.com/woodpecker-ci/woodpecker/pull/5878)] - Make disabled checkboxes match overall style [[#5869](https://github.com/woodpecker-ci/woodpecker/pull/5869)] - Fix CLI trusted updating [[#5861](https://github.com/woodpecker-ci/woodpecker/pull/5861)] - Send configuration as part of the request for external configuration [[#5831](https://github.com/woodpecker-ci/woodpecker/pull/5831)] - fix(bitbucketdatacenter): fix CI_COMMIT_PULL_REQUEST [[#5769](https://github.com/woodpecker-ci/woodpecker/pull/5769)] - _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.13.0]_ ### v3.12.0 — 3.12.0 - Date: 2025-11-18 - Version: v3.12.0 - Original notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0 - Permalink: https://whatsnew.fyi/product/woodpecker-ci/releases/v3.12.0 - **security** — Update dependency vite to v7.1.11 - **added** — Get changes from all commits in a single push event for Bitbucket Server - **added** — Support file changes in Bitbucket Cloud - **added** — Log agent version on startup - **added** — Add Header User-Agent for request client - **added** — Make local backend work with cli exec - **added** — Make pipeline/frontend/yaml/* types able to be marshaled back to YAML - **added** — Add log service addon - **added** — Support multiple users with same login name but different forges - **added** — Release linux/riscv64 binaries - **changed** — Switch from BoolTrue to optional.Option[bool] - **changed** — Enhance log stream reading and writing and handle new lines and max-size - **fixed** — Fix crash when a HTTP/2 client goes away on SSE streams - **fixed** — Fix badge label padding - **fixed** — Fix workflow path filter for GitHub - **fixed** — Fix secret on new forge - **fixed** — Revert to forge internal implementation of pagination for Repos() and Teams() for gitea/forgejo - **fixed** — Fix panic due to invalid memory address when injectSecretRecursive encounters nil values - **fixed** — Fix agents not needing to specify a required label twice - **fixed** — Fix nil pointer dereference during GitHub Hook parsing ##### [3.12.0](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0) - 2025-11-18 ###### ❤️ Thanks to all contributors! ❤️ @1001Josias, @6543, @JohnWalkerx, @LUKIEYF, @MeurillonGuillaume, @Utkarsh9571, @Xuxe, @anbraten, @chamburr, @henkka, @hhamalai, @marcusramberg, @pixelateapotato, @qwerty287, @yyewolf ###### 🔒 Security - chore(deps): update dependency vite to v7.1.11 [security] [[#5660](https://github.com/woodpecker-ci/woodpecker/pull/5660)] ###### 📈 Enhancement - feat(bitbucketserver): get changes from all commits in a single push event [[#5748](https://github.com/woodpecker-ci/woodpecker/pull/5748)] - Support for file changes in Bitbucket Cloud [[#5730](https://github.com/woodpecker-ci/woodpecker/pull/5730)] - feat(agent): log agent version on startup [[#5724](https://github.com/woodpecker-ci/woodpecker/pull/5724)] - Add Header User-Agent for request client [[#5664](https://github.com/woodpecker-ci/woodpecker/pull/5664)] - Switch from BoolTrue to optional.Option[bool] [[#5693](https://github.com/woodpecker-ci/woodpecker/pull/5693)] - Enhancement log stream reading and writing and handle new lines and max-size [[#5683](https://github.com/woodpecker-ci/woodpecker/pull/5683)] - Make local backend work with `cli exec` [[#4102](https://github.com/woodpecker-ci/woodpecker/pull/4102)] - Make pipeline/frontend/yaml/* types able to be marshaled back to YAML [[#1835](https://github.com/woodpecker-ci/woodpecker/pull/1835)] - Add log service addon [[#5507](https://github.com/woodpecker-ci/woodpecker/pull/5507)] - Support multiple users with same login name but different forges [[#5612](https://github.com/woodpecker-ci/woodpecker/pull/5612)] - Release linux/riscv64 binaries [[#5663](https://github.com/woodpecker-ci/woodpecker/pull/5663)] ###### 🐛 Bug Fixes - Fix crash when a HTTP/2 client goes away on SSE streams [[#5738](https://github.com/woodpecker-ci/woodpecker/pull/5738)] - Add created icon [[#5747](https://github.com/woodpecker-ci/woodpecker/pull/5747)] - Fix badge label padding [[#5725](https://github.com/woodpecker-ci/woodpecker/pull/5725)] - Fix workflow path filter for GitHub [[#5721](https://github.com/woodpecker-ci/woodpecker/pull/5721)] - Fix secret on new forge [[#5715](https://github.com/woodpecker-ci/woodpecker/pull/5715)] - Revert to forge internal implementation of pagination for `Repos()` and `Teams()` for gitea/forgejo [[#5679](https://github.com/woodpecker-ci/woodpecker/pull/5679)] - fix: panic due to an invalid memory address when injectSecretRecursive encounters nil values [[#5699](https://github.com/woodpecker-ci/woodpecker/pull/5699)] - Fix so agents don't need to specify a required label twice [[#5684](https://github.com/woodpecker-ci/woodpecker/pull/5684)] - Fix nil pointer dereference during GitHub Hook parsing [[#5681](https://github.com/woodpecker-ci/woodpecker/pull/5681)] - Allow username to be used with multiple forges [[#5676](https://github.com/woodpecker-ci/woodpecker/pull/5676)] - Create GitHub forge via WebUI fails to be loaded [[#5675](https://github.com/woodpecker-ci/woodpecker/pull/5675)] - Bitbucket: ignore push hooks with no changes propperly [[#5672](https://github.com/woodpecker-ci/woodpecker/pull/5672)] - fix(bitbucketdatacenter): prevent adding new repos with empty branch [[#5669](https://github.com/woodpecker-ci/woodpecker/pull/5669)] - cli: show description of default value for `--backend-local-temp-dir` instead of value [[#5656](https://github.com/woodpecker-ci/woodpecker/pull/5656)] ###### 📚 Documentation - Add docs for 3.12 [[#5763](https://github.com/woodpecker-ci/woodpecker/pull/5763)] - chore(deps): lock file maintenance [[#5760](https://github.com/woodpecker-ci/woodpecker/pull/5760)] - chore(deps): update docs npm deps non-major [[#5752](https://github.com/woodpecker-ci/woodpecker/pull/5752)] - chore(deps): update docs npm deps non-major [[#5733](https://github.com/woodpecker-ci/woodpecker/pull/5733)] - Fix typo in about.md [[#5716](https://github.com/woo _[Truncated at 4000 characters — full notes: https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0]_