Skip to content

Run the merge gate and reconciler as simtabi-bot, scoped per job - #7

Merged
imanimanyara merged 2 commits into
mainfrom
feat/simtabi-bot
Oct 19, 2026
Merged

imanimanyara merged 2 commits into
mainfrom
feat/simtabi-bot

Conversation

@imanimanyara

Copy link
Copy Markdown
Member

Moves this control repository to simtabi-bot (defined in imanimanyara/github-apps feat/simtabi-bot).

  • bot/policy.json: each job's permissions, owners and repositories. Owners * means the orgs in dependabot/policy.json; client accounts are refused whatever the policy says.
  • .github/actions/bot-token: resolves the job with bot/resolve.py and passes exactly those permissions to actions/create-github-app-token. Unknown jobs and owners are refused. A job with no permissions fails to load, because no permission inputs would mean every permission the app holds.
  • dependabot-merge.yml: runs as simtabi-bot in the simtabi-bot environment; still skips with a notice until the app's credentials exist.
  • dependabot-reconcile.yml: uses simtabi-bot once SIMTABI_BOT_CLIENT_ID is set, and Refresh Bot until then, choosing both halves of the credential pair on that one condition. It keeps running in between.
  • Docs: bot/README.md, and the Dependabot README's credentials section.

Safe to merge before the app exists: the merge gate skips, and the reconciler falls back.

Checks run locally: bot/tests (13 pass) and dependabot/tests (13 pass); actionlint 1.7.12 clean. Both new guards were broken on purpose and went red: the action/ceiling match and the workflow-job-exists check.

bot/policy.json names each job's permissions, owners and repositories;
the bot-token action refuses anything it does not name and passes the
rest to create-github-app-token. A job with no permissions is a load
error, because no permission inputs would mean every permission the app
holds. The key is an environment secret here only.

The reconciler keeps Refresh Bot's credentials until the bot's client ID
is set, so it does not stop in between. The merge gate still skips with
a notice until the app exists.
Copilot AI balanced review requested due to automatic review settings October 19, 2026 15:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@imanimanyara
imanimanyara merged commit db7d94b into main Oct 19, 2026
6 checks passed
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.

2 participants