Skip to content

ci(llms-full): regenerate on push:main via apra-fleet-git app#278

Closed
kumaakh wants to merge 1 commit into
mainfrom
ci/llms-full-postmerge
Closed

ci(llms-full): regenerate on push:main via apra-fleet-git app#278
kumaakh wants to merge 1 commit into
mainfrom
ci/llms-full-postmerge

Conversation

@kumaakh
Copy link
Copy Markdown
Contributor

@kumaakh kumaakh commented May 28, 2026

Summary

Moves the llms-full.txt auto-regen from the PR path to a post-merge push:main path. Authenticates via the apra-fleet-git GitHub App which is configured as an Integration bypass actor in the new main-protection ruleset, so the regen commit can push directly to main without needing required status checks.

Why

The previous implementation auto-committed regenerated llms-full.txt back to PR branches as github-actions[bot]. That:

  • Advanced the PR head past the original commit
  • The new commit only touched llms-full.txt (in paths-ignore) so CI did not re-run
  • Required status checks never registered on the PR head, blocking merge

Result: every PR with a non-trivial change ended up requiring an empty-commit workaround or admin override to merge. Confirmed during the recent feat/agy-support merge.

What changed

  • update-llms-full job now triggers only on push:main (not pull_request)
  • Authenticates with the apra-fleet-git GitHub App (id 3001109) via actions/create-github-app-token
  • Pushes the regenerated file directly to main; bypass is granted by the new ruleset

One-time setup (needed before this PR is useful after merge)

  1. Repo variable: APRA_FLEET_GIT_APP_ID = 3001109
  2. Repo secret: APRA_FLEET_GIT_APP_PRIVATE_KEY = PEM private key downloaded from https://github.com/organizations/Apra-Labs/settings/apps/apra-fleet-git

The first push:main after merging this PR will exercise the new path. If the secret/var are missing the workflow fails visibly at the Mint app token step.

Test plan

  • CI build-and-test passes on this branch (will be a required check before merge)
  • After merge: confirm update-llms-full job runs and either no-ops (if llms-full.txt already current) or commits + pushes successfully

The previous PR-time auto-commit + push back to the PR branch caused
required status checks to land on a SHA the user could not see, and
forced PRs into a state where merge required CI re-runs that were
suppressed by paths-ignore.

Move regen to push:main only. Authenticate via the apra-fleet-git
GitHub App (id 3001109), which is configured as an Integration bypass
actor in the main-protection ruleset, so the regen commit lands on
main without needing required status checks.

Requires (one-time setup):
- repo variable APRA_FLEET_GIT_APP_ID = 3001109
- repo secret   APRA_FLEET_GIT_APP_PRIVATE_KEY = PEM private key
@kumaakh
Copy link
Copy Markdown
Contributor Author

kumaakh commented May 28, 2026

Superseded by the pre-commit-hook + CI-check approach. The bypass route added too much attack surface for the actual requirement.

@kumaakh kumaakh closed this May 28, 2026
@kumaakh kumaakh deleted the ci/llms-full-postmerge branch May 28, 2026 03:05
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