Skip to content

Migrate to the shared automation-template.yml entry point #6135

Description

@akolson

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-*.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:

  1. Every migration pull request, across all eight consumer repos, is approved and left unmerged.
  2. [DO NOT MERGE] Consolidate shared workflows into a single generated automation.yml entry point .github#88 merges first. From that point, any repo that has not merged yet loses
    review-requested, pull-request-label and dependabot-reviewer, because that pull request
    deletes the pull-request-target.yml that the old caller uses.
  3. 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.
  • Every caller workflow listed above is deleted.
  • This pull request is merged only after [DO NOT MERGE] Consolidate shared workflows into a single generated automation.yml entry point .github#88.
  • 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

  1. Open a draft pull request. Confirm that the contributor reply and the spreadsheet update run.
  2. Add and remove the help wanted label on a test issue. Confirm that the header updates both times.
  3. Assign and unassign a test issue. Confirm that the community contribution label follows.
  4. Comment on a test issue as a contributor account. Confirm that the Slack notification is sent.
  5. Run the Automation workflow manually from the Actions tab. Confirm that only
    unassign-inactive-issues runs.

References

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions