gitea/services/webhook
ChristopherHX cda90eca31
Add workflow_run api + webhook (#33964)
Implements 
- https://docs.github.com/en/rest/actions/workflow-jobs?apiVersion=2022-11-28#list-jobs-for-a-workflow-run--code-samples
- https://docs.github.com/en/rest/actions/workflow-jobs?apiVersion=2022-11-28#get-a-job-for-a-workflow-run--code-samples
- https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#list-workflow-runs-for-a-repository
- https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#get-a-workflow-run
  - `/actions/runs` for global + user + org (Gitea only)
  - `/actions/jobs` for global + user + org + repository (Gitea only)
  - workflow_run webhook + action trigger
    - limitations
- workflow id is assigned to a string, this may result into problems in
strongly typed clients

Fixes
- workflow_job webhook url to no longer contain the `runs/<run>` part to
align with api
- workflow instance does now use it's name inside the file instead of
filename if set

Refactoring
- Moved a lot of logic from workflows/workflow_job into a shared module
used by both webhook and api

TODO
- [x] Verify Keda Compatibility
- [x] Edit Webhook API bug is resolved
 
Closes https://github.com/go-gitea/gitea/issues/23670
Closes https://github.com/go-gitea/gitea/issues/23796
Closes https://github.com/go-gitea/gitea/issues/24898
Replaces https://github.com/go-gitea/gitea/pull/28047 and is much more
complete

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2025-06-20 20:14:00 +08:00
..
deliver.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +00:00
deliver_test.go Enable addtional linters (#34085) 2025-04-01 10:14:01 +00:00
dingtalk.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
dingtalk_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +00:00
discord.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
discord_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +00:00
feishu.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
feishu_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +00:00
general.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
general_test.go Add tests for webhook and fix some webhook bugs (#33396) 2025-01-30 03:09:48 +00:00
main_test.go
matrix.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
matrix_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +00:00
msteams.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
msteams_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 -04:00
notifier.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
packagist.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
packagist_test.go Enable testifylint rules (#34075) 2025-03-31 01:53:48 -04:00
payloader.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
slack.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
slack_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +00:00
telegram.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00
telegram_test.go Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +00:00
webhook.go Add tests for webhook and fix some webhook bugs (#33396) 2025-01-30 03:09:48 +00:00
webhook_test.go Refactor some tests (#34580) 2025-06-03 01:26:19 +00:00
wechatwork.go Add workflow_run api + webhook (#33964) 2025-06-20 20:14:00 +08:00