forgejo/modules/setting
Mario Minardi c84cbd56a1 feat: add OIDC workload identity federation support (#10481)
Add support for OIDC workload identity federation.

Add ID_TOKEN_SIGNING_ALGORITHM, ID_TOKEN_SIGNING_PRIVATE_KEY_FILE, and
ID_TOKEN_EXPIRATION_TIME settings to settings.actions to allow for admin
configuration of this functionality.

Add OIDC endpoints (/.well-known/openid-configuration and /.well-known/keys)
underneath the "/api/actions" route.

Add a token generation endpoint (/_apis/pipelines/workflows/{run_id}/idtoken)
underneath the "/api/actions" route.

Depends on: https://code.forgejo.org/forgejo/runner/pulls/1232
Docs PR: https://codeberg.org/forgejo/docs/pulls/1667

Signed-off-by: Mario Minardi <mminardi@shaw.ca>

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests

- I added test coverage for Go changes...
  - [x] in their respective `*_test.go` for unit tests.
  - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
  - [ ] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

### Documentation

- [x] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [ ] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [ ] I do not want this change to show in the release notes.
- [ ] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10481
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org>
Co-authored-by: Mario Minardi <mminardi@shaw.ca>
Co-committed-by: Mario Minardi <mminardi@shaw.ca>
2026-01-15 03:39:00 +01:00
..
config chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
actions.go feat: add OIDC workload identity federation support (#10481) 2026-01-15 03:39:00 +01:00
actions_test.go feat: add OIDC workload identity federation support (#10481) 2026-01-15 03:39:00 +01:00
admin.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
admin_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
api.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
asset_dynamic.go Use a general approach to access custom/static/builtin assets (#24022) 2023-04-12 18:16:45 +08:00
asset_static.go Use a general approach to access custom/static/builtin assets (#24022) 2023-04-12 18:16:45 +08:00
attachment.go feat: Make AVIF Images work with Forgejo 2024-11-13 19:09:40 +01:00
attachment_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
badges.go [GITEA] Add support for shields.io-based badges 2024-02-05 16:09:42 +01:00
cache.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
camo.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
config.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
config_env.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
config_env_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
config_provider.go fix: [quota.default].TOTAL config setting supports unit suffixes (#9252) 2025-09-12 00:44:09 +02:00
config_provider_test.go fix: [quota.default].TOTAL config setting supports unit suffixes (#9252) 2025-09-12 00:44:09 +02:00
cors.go Fix settings not being loaded at CLI (#26402) 2025-01-05 12:13:48 +00:00
cron.go Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
cron_test.go fix: LFS GC is never running because of a bug in the parsing of the INI file (#9202) 2025-09-09 22:32:49 +02:00
database.go config: Lower default [database].MAX_OPEN_CONNS (#10821) 2026-01-14 10:10:02 +01:00
database_sqlite.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
database_test.go feat: Add support for loading db password from file via PASSD_URI (#10421) 2025-12-18 20:55:56 +01:00
disposable_email_domain_data.go feat: add setting to block disposable emails 2024-11-20 23:17:37 -06:00
f3.go chore: update gof3/v3 v3.11.15 (#10673) 2026-01-13 16:59:56 +01:00
f3_test.go chore: update gof3/v3 v3.11.15 (#10673) 2026-01-13 16:59:56 +01:00
federation.go feat(activitiypub): enable HTTP signatures on all ActivityPub endpoints (#7035) 2025-04-03 15:24:15 +00:00
forgejo_storage_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
git.go chore: remove two Git settings (#9815) 2025-10-23 00:38:47 +02:00
git_test.go chore: QoL improvements to tests (#7917) 2025-05-21 15:45:56 +02:00
highlight.go Refactor the setting to make unit test easier (#22405) 2023-02-20 00:12:01 +08:00
i18n.go fix(UI): i18n: improve naming (#7539) 2025-04-15 05:48:19 +00:00
incoming_email.go feat: add _URI entries for mail config (#8116) 2025-07-09 23:15:26 +02:00
incoming_email_test.go feat: add _URI entries for mail config (#8116) 2025-07-09 23:15:26 +02:00
indexer.go feat: add support to opt-in for fuzzy search (#10378) 2025-12-17 13:51:48 +01:00
indexer_test.go Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.5.0 (forgejo) (#9563) 2025-10-08 13:15:33 +02:00
lfs.go chore(sec): unify usage of crypto/rand.Read (#7453) 2025-04-04 03:31:37 +00:00
lfs_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
log.go feat(log): better parseable and configurable ssh-logs (#9056) 2025-09-11 18:59:24 +02:00
log_test.go feat(log): better parseable and configurable ssh-logs (#9056) 2025-09-11 18:59:24 +02:00
mailer.go feat: add _URI entries for mail config (#8116) 2025-07-09 23:15:26 +02:00
mailer_test.go feat: add _URI entries for mail config (#8116) 2025-07-09 23:15:26 +02:00
markup.go Set MERMAID_MAX_SOURCE_CHARACTERS to 50000 (#34152) 2025-04-14 15:47:37 +02:00
metrics.go Refactor the setting to make unit test easier (#22405) 2023-02-20 00:12:01 +08:00
migrations.go Refactor the setting to make unit test easier (#22405) 2023-02-20 00:12:01 +08:00
mime_type_map.go Refactor the setting to make unit test easier (#22405) 2023-02-20 00:12:01 +08:00
mirror.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
moderation.go feat: add configurable timeout for automatically removing resolved reports (#7940) 2025-07-28 14:52:13 +02:00
oauth2.go chore(sec): unify usage of crypto/rand.Read (#7453) 2025-04-04 03:31:37 +00:00
oauth2_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
other.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
packages.go fix: [quota.default].TOTAL config setting supports unit suffixes (#9252) 2025-09-12 00:44:09 +02:00
packages_test.go fix: [quota.default].TOTAL config setting supports unit suffixes (#9252) 2025-09-12 00:44:09 +02:00
path.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
path_test.go [BRANDING] alias {FORGEJO,GITEA}_{CUSTOM,WORK_DIR} 2024-02-05 16:05:01 +01:00
picture.go Fix all possible setting error related storages and added some tests (#23911) 2023-06-14 11:42:38 +08:00
project.go Refactor the setting to make unit test easier (#22405) 2023-02-20 00:12:01 +08:00
proxy.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
pwa.go Move web app manifest to a own cache-able route and add a setting to set "display": "standalone"; Closes #2638 (#5384) 2026-01-09 17:49:29 +01:00
queue.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
quota.go fix: [quota.default].TOTAL config setting supports unit suffixes (#9252) 2025-09-12 00:44:09 +02:00
quota_test.go fix: [quota.default].TOTAL config setting supports unit suffixes (#9252) 2025-09-12 00:44:09 +02:00
repository.go feat: configurable default units for mirrors (#7902) 2025-06-03 08:12:29 +02:00
repository_archive.go Fix all possible setting error related storages and added some tests (#23911) 2023-06-14 11:42:38 +08:00
repository_archive_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
repository_test.go feat(sec): Add SSH signing support for instances (#6897) 2025-04-11 13:25:35 +00:00
security.go feat: replace cross origin protection (#9830) 2025-10-29 22:43:22 +01:00
server.go Move web app manifest to a own cache-able route and add a setting to set "display": "standalone"; Closes #2638 (#5384) 2026-01-09 17:49:29 +01:00
server_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
service.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
service_test.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
session.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
setting.go Move web app manifest to a own cache-able route and add a setting to set "display": "standalone"; Closes #2638 (#5384) 2026-01-09 17:49:29 +01:00
setting_test.go Move web app manifest to a own cache-able route and add a setting to set "display": "standalone"; Closes #2638 (#5384) 2026-01-09 17:49:29 +01:00
ssh.go feat: ensure only expected ssh public keys are in authorized_keys file (#10010) 2025-11-09 01:06:04 +01:00
storage.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
storage_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
task.go handle deprecated settings (#22992) 2023-02-20 16:18:26 -06:00
time.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
ui.go chore: remove not working PREFERRED_TIMESTAMP_TENSE setting (#9490) 2025-10-01 15:16:01 +02:00
webhook.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00