gitforge/services
Brandon Rothweiler 63b630e21e fix: only expand recognized variables when generating repo (#12917)
I noticed that when generating a repo from a template repo, if a file in the template repo contains an unrecognized variable reference (not part of the set of variables that Forgejo replaces), it attempts to expand it anyway, and ultimately replaces it with just the variable name, stripping off the `$` or `${}`. For example, if a file contains `Authorization: Bearer ${ACCESS_TOKEN}`, in the generated repo this will be changed to `Authorization: Bearer ACCESS_TOKEN` which is unexpected and undesired.

I considered whether it would be possible to fix this by simply making the function passed to `os.Expand()` return `${VARIABLE_NAME}` instead of just `VARIABLE_NAME` for unrecognized keys, but this wouldn't work because it's not possible to distinguish between `$VARIABLE_NAME` and `${VARIABLE_NAME}` syntax, so some variable references would get mangled anyway. Instead, I fixed it by adding a simple regex and using that to perform the replacements instead of `os.Expand()`. I added unit tests and updated one of the generated repo integration tests to validate the functionality.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/12917
Reviewed-by: limiting-factor <limiting-factor@noreply.codeberg.org>
2026-07-09 22:11:03 +02:00
..
actions fix: detect schedules after merge if merged branch remains (#13338) 2026-07-07 22:38:41 +02:00
agit
asymkey fix: cleanup data before migration retry (#12370) 2026-05-05 12:41:42 +02:00
attachment
auth chore: add more error output for an invalid JWT key identifier (#12903) 2026-06-02 23:39:51 +02:00
authz feat: enable auth to git LFS via authorized integrations (#12725) 2026-05-28 23:20:58 +02:00
automerge fix: apply signed-merge checks by merge style (#11403) 2026-04-09 20:26:27 +02:00
context feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
contexttest chore(refactor): add getter/setter to APIContext data members (#13143) 2026-06-27 02:53:45 +02:00
convert chore(refactor): add getter/setter to APIContext data members (#13143) 2026-06-27 02:53:45 +02:00
cron fix: cleanup data before migration retry (#12370) 2026-05-05 12:41:42 +02:00
doctor fix(doctor): ensure the doctor runs with the same settings.AppPath as Forgejo (#12901) 2026-06-06 03:23:06 +02:00
externalaccount
f3
federation federation: protect against SSRF attacks (#11795) 2026-07-08 02:03:17 +02:00
feed
forgejo
forms fix(ui): fall back to default theme from non-existent (#13110) 2026-06-17 19:18:09 +02:00
gitdiff chore: bump golangci-lint version (#13211) 2026-06-27 00:35:03 +02:00
indexer
issue feat: add internal APIs for reactions notifications (#13017) 2026-06-29 03:59:39 +02:00
lfs 2026-06-10 security patches (#13001) 2026-06-10 06:05:01 +02:00
mailer feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
markup
migrations fix: ensure migrations allow/deny host lists are applied to onedev, pagure, and codebase migrators (#13184) 2026-06-25 14:11:36 +02:00
mirror fix: compliance with [migrations].ALLOWED_DOMAINS, ...BLOCKED_DOMAINS, and ....ALLOW_LOCALNETWORKS for git & LFS ops (#13129) 2026-06-23 23:40:25 +02:00
moderation
notify feat: add internal APIs for reactions notifications (#13017) 2026-06-29 03:59:39 +02:00
org feat: make delete repository transcation READ COMMITTED (#12856) 2026-07-07 21:56:18 +02:00
packages chore: move determinePackageAccessMode from context packages 2026-06-20 06:24:07 +02:00
pull fix: ignore migrated commit without a patch (#13257) 2026-07-03 03:38:52 +02:00
redirect
release fix: don't trip deleting attachment with missing permission error (#11642) 2026-03-12 20:29:10 +01:00
remote
repository fix: only expand recognized variables when generating repo (#12917) 2026-07-09 22:11:03 +02:00
secrets feat: allow renaming and replacing secrets (#11732) 2026-03-23 03:30:02 +01:00
shared/automerge
stats chore: upgrade to https://code.forgejo.org/xorm/xorm v1.4.0 (#12639) 2026-05-20 20:20:08 +02:00
task fix: cleanup data before migration retry (#12370) 2026-05-05 12:41:42 +02:00
uinotification feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
user feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
webhook feat: Update Microsoft Teams webhook to use AdaptiveCard (#11704) 2026-05-26 16:10:55 +02:00
wiki feat: replace repo based server-side hooks with centralised hooks (#10397) 2026-04-27 22:34:46 +02:00