You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repo copies seven caller workflows from learningequality/.github, one per automation. learningequality/.github#88 replaces all of them with one file. Swap the seven callers for that one file.
Complexity: Low Target branch: unstable
Context
Each call-*.yml file in .github/workflows/ carries its own on: block and its own exhaustive types: list. Adding, removing or toggling an automation therefore means a change in every consumer
repo. The hand-maintained types: lists also drift, because a default pull_request_target trigger
fires only on opened, synchronize and reopened, and silently misses labeled, review_requested and assigned.
learningequality/.github#88 moves all routing into a central reusable automation.yml. Consumers
copy one template, whose on: block is generated as the union of every enabled automation.
These are the caller workflows in this repo today:
call-pull-request-target.yml
call-contributor-issue-comment.yml
call-contributor-pr-reply.yml
call-manage-issue-header.yml
call-update-pr-spreadsheet.yml
community-contribution-labeling.yml
unassign-inactive.yaml
Together they run 11 of the 13 automations in the registry.
The Change
Replace those caller workflows with one copy of automation-template.yml from learningequality/.github, saved as .github/workflows/automation.yml. Do not edit the copy.
This repo gains two automations it does not run today:
good-first-issue-comment posts contributor guidance when an issue is labeled good first issue
or help wanted.
resolve-bot-pr-threads resolves a review thread when the bot marks its comment as addressed.
Nothing else changes. No leaf workflow's internal logic is different.
Out of Scope
Changing what any automation does. This is a routing change only.
Editing the copied template. Its on: block is generated, and a local edit will drift from learningequality/.github.
Coordination
learningequality/.github#88 is the source of truth for this migration. Read it for the design, the
full consumer list, and the current state.
Do not merge this repo's pull request on its own. The order is fixed:
Every migration pull request, across all eight consumer repos, is approved and left unmerged.
The eight migration pull requests merge in succession, straight after. Each merge restores its
own repo.
Merging this repo's pull request first does not work either. The copied template calls automation.yml@main, and that file does not exist until learningequality/.github#88 lands.
Acceptance Criteria
.github/workflows/automation.yml is an unedited copy of automation-template.yml from learningequality/.github@main.
LE_BOT_APP_ID and LE_BOT_PRIVATE_KEY resolve in a workflow run in this repo.
After merge, each of these fires the automation it fired before: opening a pull request,
labeling a pull request, requesting a review, opening an issue, labeling an issue help wanted, assigning an issue, and commenting on an issue.
The weekly unassign-inactive-issues run still fires on Mondays at 00:01 UTC.
Testing
Open a draft pull request. Confirm that the contributor reply and the spreadsheet update run.
Add and remove the help wanted label on a test issue. Confirm that the header updates both times.
Assign and unassign a test issue. Confirm that the community contribution label follows.
Comment on a test issue as a contributor account. Confirm that the Slack notification is sent.
Run the Automation workflow manually from the Actions tab. Confirm that only unassign-inactive-issues runs.
docs/automation.md in learningequality/.github describes the entry point and the secrets.
AI usage
I used Claude Code to inspect the caller workflows in this repo and to draft this issue. I verified
the file list and the automation counts against the repo myself, and I edited the wording.
Overview
This repo copies seven caller workflows from
learningequality/.github, one per automation.learningequality/.github#88 replaces all of them with one file. Swap the seven callers for that one file.
Complexity: Low
Target branch: unstable
Context
Each
call-*.ymlfile in.github/workflows/carries its ownon:block and its own exhaustivetypes:list. Adding, removing or toggling an automation therefore means a change in every consumerrepo. The hand-maintained
types:lists also drift, because a defaultpull_request_targettriggerfires only on
opened,synchronizeandreopened, and silently misseslabeled,review_requestedandassigned.learningequality/.github#88 moves all routing into a central reusable
automation.yml. Consumerscopy one template, whose
on:block is generated as the union of every enabled automation.These are the caller workflows in this repo today:
call-pull-request-target.ymlcall-contributor-issue-comment.ymlcall-contributor-pr-reply.ymlcall-manage-issue-header.ymlcall-update-pr-spreadsheet.ymlcommunity-contribution-labeling.ymlunassign-inactive.yamlTogether they run 11 of the 13 automations in the registry.
The Change
Replace those caller workflows with one copy of
automation-template.ymlfromlearningequality/.github, saved as.github/workflows/automation.yml. Do not edit the copy.This repo gains two automations it does not run today:
good-first-issue-commentposts contributor guidance when an issue is labeledgood first issueor
help wanted.resolve-bot-pr-threadsresolves a review thread when the bot marks its comment as addressed.Nothing else changes. No leaf workflow's internal logic is different.
Out of Scope
on:block is generated, and a local edit will drift fromlearningequality/.github.Coordination
learningequality/.github#88 is the source of truth for this migration. Read it for the design, the
full consumer list, and the current state.
Do not merge this repo's pull request on its own. The order is fixed:
review-requested,pull-request-labelanddependabot-reviewer, because that pull requestdeletes the
pull-request-target.ymlthat the old caller uses.own repo.
Merging this repo's pull request first does not work either. The copied template calls
automation.yml@main, and that file does not exist until learningequality/.github#88 lands.Acceptance Criteria
.github/workflows/automation.ymlis an unedited copy ofautomation-template.ymlfromlearningequality/.github@main.LE_BOT_APP_IDandLE_BOT_PRIVATE_KEYresolve in a workflow run in this repo.labeling a pull request, requesting a review, opening an issue, labeling an issue
help wanted, assigning an issue, and commenting on an issue.unassign-inactive-issuesrun still fires on Mondays at 00:01 UTC.Testing
help wantedlabel on a test issue. Confirm that the header updates both times.Automationworkflow manually from the Actions tab. Confirm that onlyunassign-inactive-issuesruns.References
migrations land.
docs/automation.mdinlearningequality/.githubdescribes the entry point and the secrets.AI usage
I used Claude Code to inspect the caller workflows in this repo and to draft this issue. I verified
the file list and the automation counts against the repo myself, and I edited the wording.