bug(mirror-drift-check): the DRIFT comment links its run at http://forgejo:3000, the runner's internal host #1521
Labels
No labels
bump
major
bump
minor
bump
patch
kind
bug
kind
chore
kind
docs
kind
epic
kind
feature
loop/paused
mirror-drift
priority
critical
priority
high
priority
low
priority
medium
size
L
size
M
size
S
size
XL
status
blocked
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
frankenbit/release-toolkit#1521
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
mirror-drift-check's DRIFT comment on #1348 links its run ashttp://forgejo:3000/frankenbit/release-toolkit/actions/runs/<n>.forgejo:3000is the hostname the runner reaches Forgejo by, and a reader's browser cannot resolve it. 26 of the 27 links in #1348's comments are dead this way.Measured
At
origin/mainaa6f603(2026-10-02):.forgejo/workflows/mirror-drift-check.yml:215RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_number }}mirror-drift-check.yml:231[run](%s)http://forgejo:3000× 26 (every DRIFT comment from 2026-09-08 on),https://git.frankenbit.de× 1:169,:252,:259,:272)github.server_url, and work, because the runner resolvesforgejo:3000. Only the human-facing link is wrong.target_urlis relative (/frankenbit/release-toolkit/actions/runs/19185/jobs/0), and that opens correctly in a browsergit grep 'github.server_url }}/${{ github.repository }}' -- .forgejo/workflowsfinds only line 1, so no other workflow builds a link for people this way.Why it matters
The comment exists so a person can act on it (#1348). The remedy it names is a dispatch, and the first thing a reader does is open the run to read the log. That link is dead on every comment. It is a small defect on the same delivery path that #1520 measures failing.
Decision tree
/<repo>/actions/runs/<n>), the shape the commit statuses already use, is right when the comment is only read on this instance. Forgejo renders it against whatever host the reader is on.html_urlfromGET /repos/{owner}/{repo}, which follows the instance'sROOT_URL, is right if the comment text may be copied off-instance and needs an absolute URL.Lean: relative. It matches the status
target_urland needs no extra request.Acceptance criteria
tests/workflows.batsfails if a human-facing link in a posted body is built fromgithub.server_urlagain.