Kevin Web
894ba77d94
Fix OAuth token refresh in webhook handling for Bitbucket and GitHub ( #6059 )
...
## Summary
Fixes #5590
Fixes #5713
This PR fixes an issue where webhook handling fails with "failure to parse hook" error when the user's OAuth access token has expired. The root cause is that the Bitbucket and GitHub forge implementations make API calls during webhook processing without first refreshing the OAuth token.
## Problem
When a webhook arrives from Bitbucket or GitHub, the `Hook()` function (and its helper functions) make API calls to fetch additional data (changed files, repo info, etc.). These API calls use the stored OAuth access token, which may have expired.
**Before this fix:**
1. Webhook arrives
2. `Hook()` makes API calls with potentially expired token
3. API call fails with "OAuth2 access token expired"
4. Error bubbles up as HTTP 400 "failure to parse hook"
5. `forge.Refresh()` is called later in `PostHook()` - but it's too late
**Example error from logs:**
`failure to parse hook error="OAuth2 access token expired. Use your refresh token to obtain a new access token."`
## Solution
Add `forge.Refresh()` calls before making API calls in the webhook handling code paths. This follows the same pattern already used by:
- Bitbucket Data Center forge (`server/forge/bitbucketdatacenter/bitbucketdatacenter.go`)
- Other code paths like `pipeline.Create()`, `cron.go`, etc.
### Changes
**Bitbucket** (`server/forge/bitbucket/bitbucket.go`):
- Added `forge.Refresh()` in `Hook()` before API calls
**GitHub** (`server/forge/github/github.go`):
- Added `forge.Refresh()` in `loadChangedFilesFromPullRequest()`
- Added `forge.Refresh()` in `getTagCommitSHA()`
- Added `forge.Refresh()` in `loadChangedFilesFromCommits()`
## Testing
- All existing Bitbucket and GitHub forge tests pass
- Tested in production environment with Bitbucket (waited for token expiry, webhook succeeded after fix)
2026-02-03 13:34:01 +01:00
renovate[bot]
57b2449bb1
fix(deps): update golang-packages ( #6058 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de >
2026-02-03 08:26:49 +01:00
Anbool
a1c89071f3
Translated using Weblate (Chinese (Simplified Han script))
...
Currently translated at 100.0% (429 of 429 strings)
Translation: Woodpecker CI/UI
Translate-URL: https://translate.woodpecker-ci.org/projects/woodpecker-ci/ui/zh_Hans/
2026-02-02 18:25:36 +00:00
Kirill Isakov
2b2abdbb65
Translated using Weblate (Russian)
...
Currently translated at 100.0% (429 of 429 strings)
Translation: Woodpecker CI/UI
Translate-URL: https://translate.woodpecker-ci.org/projects/woodpecker-ci/ui/ru/
2026-02-02 18:25:36 +00:00
qwerty287
040f27bf87
Dynamic log following ( #6036 )
2026-02-02 19:25:30 +01:00
6543
25f10985f4
Update fast-xml-parser ( #6057 )
2026-02-02 17:47:01 +01:00
renovate[bot]
b22770adf3
fix(deps): update module gitlab.com/gitlab-org/api/client-go to v1.25.0 ( #6053 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-02 03:09:47 +01:00
renovate[bot]
33ae17e7f2
chore(deps): lock file maintenance ( #6054 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-02 03:09:32 +01:00
qwerty287
7c1e99ecee
Translated using Weblate (German)
...
Currently translated at 100.0% (427 of 427 strings)
Translation: Woodpecker CI/UI
Translate-URL: https://translate.woodpecker-ci.org/projects/woodpecker-ci/ui/de/
2026-02-01 15:44:15 +00:00
David Loewe
e2270ae95c
Per-Workflow and Per-Workflow-Step badge generation ( #5977 )
...
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de >
Co-authored-by: qwerty287 <qwerty287@posteo.de >
2026-02-01 16:44:09 +01:00
renovate[bot]
df8dc5de33
chore(deps): update dependency simple-icons to v16.7.0 ( #6051 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-01 09:19:24 +01:00
CrimsonFez
43272455ae
Add Buildah plugin link ( #6050 )
2026-02-01 09:08:40 +01:00
Anbool
bfadce790d
Translated using Weblate (Chinese (Simplified Han script))
...
Currently translated at 100.0% (427 of 427 strings)
Translation: Woodpecker CI/UI
Translate-URL: https://translate.woodpecker-ci.org/projects/woodpecker-ci/ui/zh_Hans/
2026-01-31 17:04:32 +00:00
renovate[bot]
6a33483647
fix(deps): update module github.com/google/go-github/v81 to v82 ( #6047 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de >
2026-01-31 08:52:23 +01:00
renovate[bot]
dfb77fb4c2
chore(deps): update docs npm deps non-major ( #6045 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de >
2026-01-31 08:47:12 +01:00
qwerty287
b52291ef46
Refresh token before forge calls ( #6035 )
2026-01-31 08:27:27 +01:00
renovate[bot]
aa783e1afb
chore(deps): update dependency @vueuse/core to v14.2.0 ( #6048 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-31 08:09:32 +01:00
renovate[bot]
a721feb262
fix(deps): update dependency vue-router to v5 ( #6046 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-31 08:02:44 +01:00
renovate[bot]
30a3bb1d08
chore(deps): update dependency vue-tsc to v3.2.4 ( #6044 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-31 02:27:56 +01:00
renovate[bot]
40e5c700e6
fix(deps): update golang-packages ( #6042 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-30 01:36:57 +01:00
qwerty287
39acb2a4be
Render MD in pipeline titles ( #5999 )
...
Co-authored-by: 6543 <6543@obermui.de >
2026-01-29 14:27:55 +01:00
renovate[bot]
c8966b734d
fix(deps): update golang-packages ( #6040 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-29 03:40:27 +01:00
qwerty287
f462f787dd
Add Homebrew package ( #6037 )
2026-01-28 18:32:00 +01:00
6543
8c4dc5b419
Translated using Weblate (Bavarian)
...
Currently translated at 100.0% (427 of 427 strings)
Translation: Woodpecker CI/UI
Translate-URL: https://translate.woodpecker-ci.org/projects/woodpecker-ci/ui/bar/
2026-01-28 10:53:27 +00:00
6543
4ac907d3c2
Translated using Weblate (Bavarian)
...
Currently translated at 99.7% (426 of 427 strings)
Translation: Woodpecker CI/UI
Translate-URL: https://translate.woodpecker-ci.org/projects/woodpecker-ci/ui/bar/
2026-01-28 10:23:38 +00:00
Kirill Isakov
7cb318c483
Translated using Weblate (Russian)
...
Currently translated at 100.0% (427 of 427 strings)
Translation: Woodpecker CI/UI
Translate-URL: https://translate.woodpecker-ci.org/projects/woodpecker-ci/ui/ru/
2026-01-28 09:24:21 +00:00
qwerty287
f6f63194f6
Translated using Weblate (German)
...
Currently translated at 100.0% (427 of 427 strings)
Translation: Woodpecker CI/UI
Translate-URL: https://translate.woodpecker-ci.org/projects/woodpecker-ci/ui/de/
2026-01-28 09:24:21 +00:00
6543
cd62ab5f3e
Local backend: cleanup generated script for cmd.exe shell ( #6029 )
2026-01-28 07:10:29 +01:00
renovate[bot]
8b6c814666
fix(deps): update module gitlab.com/gitlab-org/api/client-go to v1.21.0 ( #6028 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-28 07:06:51 +01:00
6543
47ffb3209e
Local backend: setup clone step respects context ( #6030 )
2026-01-28 06:47:18 +01:00
6543
6a76851884
fifo test cleanup changed value ( #6031 )
2026-01-28 06:46:58 +01:00
6543
4edfefe5d6
Simplify and Fix server task queue ( #6017 )
2026-01-27 15:27:03 +02:00
Sam Richard
f202470c7d
fix(agent): workflow runner use shutdown context ( #6021 )
...
Co-authored-by: 6543 <6543@obermui.de >
2026-01-27 02:42:35 +01:00
renovate[bot]
d7e2a576dc
fix(deps): update golang-packages ( #6026 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-27 02:28:14 +01:00
Sam Richard
b1cbd961b2
Fix/docker kill container on cancel ( #6018 )
...
## Fix: kill docker container on pipeline cancellation
### What was happening
When a pipeline step was canceled (e.g. manual cancel or agent shutdown), the Docker backend would stop waiting for the container but **would not actively terminate it**.
This caused containers running long-lived commands (like `sleep`, `tail -f`, servers, etc.) to continue running in the background.
## Related Issue
Closes #6016
### What this PR changes
This PR ensures that **when the step context is canceled**, the running Docker container is **immediately killed**.
- Listens to `ctx.Done()` in `WaitStep`
- Sends a `ContainerKill` using a non-cancelable context
- Preserves existing behavior for normal container exit
- Prevents orphaned containers after pipeline cancellation
### Why this approach
Docker containers do not automatically stop when the caller context is canceled.
Explicitly killing the container on `ctx.Done()` guarantees correct cleanup and matches expected CI behavior.
2026-01-27 00:19:44 +01:00
6543
3786077c07
Update Architecture: move pipeline/rpc => rpc & server/{grpc => rpc} ( #6012 )
2026-01-26 21:25:38 +01:00
qwerty287
ff6895308a
Support exclusive extensions ( #5978 )
...
Co-authored-by: 6543 <6543@obermui.de >
2026-01-26 16:13:00 +01:00
renovate[bot]
e332da9f3b
chore(deps): lock file maintenance ( #6014 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-26 01:48:59 +01:00
renovate[bot]
a08e8f3095
fix(deps): update golang-packages ( #6013 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-26 01:48:34 +01:00
6543
9d21e09c46
Local backend handle canceled steps case ( #6008 )
2026-01-25 17:26:56 +01:00
renovate[bot]
2d770b329e
chore(deps): update dependency axios to v1.13.3 ( #6010 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-25 17:12:03 +01:00
6543
c663941166
docs: update dependencies ( #6009 )
2026-01-25 17:06:25 +01:00
renovate[bot]
60bd7e303b
chore(deps): update woodpeckerci/plugin-git docker tag to v2.8.1 ( #6006 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-25 10:25:23 +01:00
renovate[bot]
33348eb8e0
fix(deps): update module gitlab.com/gitlab-org/api/client-go to v1.17.0 ( #6005 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-25 03:10:00 +01:00
renovate[bot]
f1469b12e0
chore(deps): update dependency simple-icons to v16.6.1 ( #6004 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-25 03:09:42 +01:00
renovate[bot]
bb1f01632c
chore(deps): update web npm deps non-major ( #6003 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 07:10:23 +01:00
renovate[bot]
0534cd7336
chore(deps): update docker.io/mysql docker tag to v9.6.0 ( #6002 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 07:08:30 +01:00
renovate[bot]
ad31b59518
chore(deps): update docs npm deps non-major ( #6000 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 01:52:18 +01:00
renovate[bot]
54e1194817
chore(deps): update pre-commit hook rbubley/mirrors-prettier to v3.8.1 ( #6001 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 01:44:34 +01:00
qwerty287
bd8e2f350e
Use require to exit tests ( #5998 )
2026-01-22 09:41:20 +01:00