Skip to content

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

Description

@akolson

Overview

This repo copies one caller workflow from learningequality/.github, call-pull-request-target.yml.
learningequality/.github#88 deletes the reusable workflow behind it, so that caller must be replaced
with the new shared template. The template also switches on ten automations this repo does not run
today, so please confirm that you want them before merging.

Complexity: Low
Target branch: release-v0.9.x

Context

call-pull-request-target.yml calls pull-request-target.yml in learningequality/.github, which
routes three automations: review-requested, pull-request-label and dependabot-reviewer.

learningequality/.github#88 flattens that dispatcher into a central reusable automation.yml and
deletes pull-request-target.yml. Once that merges, this repo's caller breaks, so the two changes
must land together.

The replacement is one template that every consumer copies. Its on: block is generated as the
union of every enabled automation, so it is the same file everywhere. There is no per-repo subset:
learningequality/.github#86 chose central control, with automations enabled or disabled for the
whole org in a registry.

The Change

Replace call-pull-request-target.yml with one copy of automation-template.yml from
learningequality/.github, saved as .github/workflows/automation.yml. Do not edit the copy.

This repo keeps the three automations it runs today and gains ten more:

Automation Trigger
contributor-pr-reply Pull request opened by a contributor
holiday-message Pull request opened, issue comment created
issue-open Issue opened or reopened
issue-label-header Issue labeled or unlabeled help wanted
good-first-issue-comment Issue labeled good first issue or help wanted
update-pr-spreadsheet Pull request assigned, opened, closed, edited, and more
community-contribution-label Issue assigned or unassigned
contributor-issue-comment Issue comment created
resolve-bot-pr-threads Pull request review comment created
unassign-inactive-issues Weekly schedule and manual dispatch

Most of these act on community contribution flows. If this repo receives no community issues or
pull requests, they stay quiet.

Out of Scope

  • Changing what any automation does.
  • Editing the copied template to remove automations. The 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. 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.
  • call-pull-request-target.yml is deleted.
  • This pull request is merged only after 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.
  • The four optional secrets are confirmed present or accepted as absent. They are
    SLACK_WEBHOOK_URL, SLACK_COMMUNITY_NOTIFICATIONS_WEBHOOK_URL,
    CONTRIBUTIONS_SPREADSHEET_ID, CONTRIBUTIONS_SHEET_NAME and
    GH_UPLOADER_GCP_SA_CREDENTIALS. An absent secret does not disable its automation. The
    automation runs and its step fails.
  • After merge, requesting a review, labeling a pull request, and opening a dependabot pull
    request each behave as they did before.

Testing

  1. Request a review on a test pull request. Confirm that the reviewer routing still runs.
  2. Add a label to a test pull request. Confirm that the label handling still runs.
  3. Open a test issue and label it help wanted. Confirm that the header is added.
  4. Check the Actions tab after the first weekly run. Confirm that unassign-inactive-issues
    either succeeds or fails only on the Slack step.

References

AI usage

I used Claude Code to inspect the caller workflows in this repo and to draft this issue. I verified
the automation list and the secret names against learningequality/.github 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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions