Skip to content

ci: stabilize link-check + pin author on submodule auto-commits - #261

Merged
yshyn-iohk merged 1 commit into
mainfrom
ci/link-check-and-submodule-attribution
May 22, 2026
Merged

ci: stabilize link-check + pin author on submodule auto-commits#261
yshyn-iohk merged 1 commit into
mainfrom
ci/link-check-and-submodule-attribution

Conversation

@yshyn-iohk

Copy link
Copy Markdown
Contributor

Summary

Two CI fixes bundled together since they only touch CI:

  1. update-submodules.yml — pin commit_author so the author of the weekly auto-commit is the hyperledger-bot GPG identity instead of whoever last (re)activated the schedule. stefanzweifel/git-auto-commit-action defaults commit_author to github.actor, which on schedule events resolves to the user that triggered the cron — not the bot. Result: random committers (the user who last touched the workflow or re-enabled it) show up as authors on the contributor graph.

  2. .linkinatorrc.json — the Check Broken Links job has been failing on every push to main. Investigation of run 26278275914 showed 245 of 278 "broken" links were HTTP 429 rate-limits from github.com — false positives. Changes:

    • retry: true — respects Retry-After on 429
    • retryErrors: true + retryErrorsCount: 3 + retryErrorsJitter: 3000 — handle transient failures
    • concurrency: 16 → 8 — reduce 429s at the source
    • Skip known bot-blocking domains: w3.org/TR/*, mvnrepository.com/*, blog.cheqd.io/*, medium.com/*
    • Skip w3c-ccg.github.io/did-resolution/* — dead URL that keeps regenerating into documentation/reference/Cloud Agent API/*.api.mdx from the cloud-agent submodule's OpenAPI spec

Real broken links surfaced by linkinator (404 / dead-DNS) are fixed in a separate PR.

Test plan

  • Trigger the Check Broken Links workflow via workflow_dispatch on this branch and confirm it passes (or, at minimum, the broken count drops from 278 to ~10–15 real failures — which the link-fix PR addresses)
  • After merge, observe the next scheduled update-submodules run and confirm the commit author is the bot GPG identity, not a user

🤖 Generated with Claude Code

- Pin commit_author in update-submodules.yml so scheduled and
  manually-dispatched runs both attribute the commit to the
  hyperledger-bot GPG identity instead of github.actor. Previously
  stefanzweifel/git-auto-commit-action defaulted commit_author to
  github.actor, which resolved to whoever last (re)activated the
  workflow on schedule events.
- Make .linkinatorrc.json resilient against transient failures:
  enable retry (honors 429 Retry-After), retryErrors with 3 retries
  and jitter, and lower concurrency to 8 to reduce rate-limit
  pressure on github.com. Add skips for known bot-blocking and dead
  domains (w3.org/TR, mvnrepository, blog.cheqd.io, medium.com,
  w3c-ccg.github.io/did-resolution) so the link check surfaces real
  failures only.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Signed-off-by: Yurii Shynbuiev <yurii.shynbuiev@iohk.io>
@yshyn-iohk
yshyn-iohk requested a review from a team as a code owner May 22, 2026 19:29
@github-actions

Copy link
Copy Markdown

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time

See detailed report in MegaLinter reports
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security

@sonarqubecloud

Copy link
Copy Markdown

@yshyn-iohk
yshyn-iohk merged commit feafd85 into main May 22, 2026
9 checks passed
@yshyn-iohk
yshyn-iohk deleted the ci/link-check-and-submodule-attribution branch May 22, 2026 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant