1385: Automate GitHub Project Status updates on PR merge across yalesites-project, atomic, and component-library-twig - #505
Closed
dblanken-yale wants to merge 1 commit into
Closed
Conversation
Calls the shared workflow in yalesites-org/.github so this repo's pull requests keep their linked YaleSites-Internal ticket's Status current: the needs review label sets In review, a merge to develop sets Ready for Release (in dev), and a merge to main or master sets Done. All the logic lives in the shared workflow so the three code repos cannot drift apart. This file is configuration only. The workflow is dormant until the org secret PROJECT_TOKEN is shared with this repo; without it the run logs a warning and exits cleanly rather than failing every merge. References yalesites-org/YaleSites-Internal#1385
This was referenced Aug 16, 2026
Contributor
Author
|
Closing for now; I think we are going to try a different method, but will keep this branch here in case we need it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1385: Automate GitHub Project Status updates on PR merge across yalesites-project, atomic, and component-library-twig
Description of work
.github/workflows/project_status_sync.yml, which keeps this repo's PRs and the YaleSites Board in step so nobody has to move cards by hand:needs reviewlabel added → linked ticket goes to In reviewdevelop→ Ready for Release (in dev)main/master→ Doneyalesites-org/.github, and is called as a reusable workflow. This file is 12 lines of configuration and nothing else, so the three repos cannot drift apart. Full documentation: docs/project-status-sync.md.if:guard skips PRs from forks, where secrets are unavailable and the job could not do anything.Merge order:
yalesites-org/.githubmust merge first. This workflow referencesyalesites-org/.github/.github/workflows/project-status-sync.yml@main, which 404s until the shared half lands onmain.This ships dormant until an admin creates the token.
PROJECT_TOKEN(a PAT withrepo+project+read:org) needs to be an org-level secret shared with this repo; Project v2 fields cannot be written with the defaultGITHUB_TOKEN. Until it exists, the workflow logs a warning and exits 0 — deliberately, so this cannot put a red X on every merge.The ticket matching is by convention: the branch name (
1234-description), the PR title (1234: Title), or the body'sReferences yalesites-org/YaleSites-Internal#1234line. GitHub's ownclosingIssuesReferencesis not used, becauseReferencesis deliberately not a closing keyword and so GitHub never records the link. A PR that matches nothing — a dependency bump, an RC update — is logged and skipped, never failed.Functional testing steps:
yalesites-org/.githubPR — that is where the behavior lives.After the org secret
PROJECT_TOKENis created and shared with this repo:1385-something, add theneeds reviewlabel, and confirm ticket 1385 moves to In review on the board.developand confirm its ticket moves to Ready for Release (in dev).References yalesites-org/YaleSites-Internal#1385
Other work completed in
This is one work-unit across four repos, all on branch
1385-project-status-sync:@main.Scoping and Done semantics (updated in yalesites-org/.github
12016ef)Two corrections landed in the shared workflow after review; they change behavior for this repo, so they are worth knowing while reviewing:
yalesites-project,atomic,component-library-twig,tokens,YaleSites-Internal), and the org secret must be scoped to selected repositories rather than all of them.mainis the RC promotion — an intermediate release step, not "shipped" — so tickets carried by an RC Update stay at Ready for Release (in dev). This matches what the board already records for the 2026-08-14 component-library-twig RC (1529, 1532, 1536, 1537).Update: Done is now decided by a board sweep (yalesites-org/.github
256f778)Behavior change worth knowing while reviewing. Measured against the real v2.23.0 release, the original design would have marked only 9 of the 12 tickets that release shipped as Done — three (1239, 1266, 1311) were companion-only and would have been stranded at Ready for Release (in dev) forever.
Now, when yalesites-project merges to
master, the workflow sweeps every ticket at Ready for Release (in dev) and marks it Done once all of its merged PRs — across yalesites-project, atomic, component-library-twig, and tokens — have reached their repo's production branch. A ticket that is not already at Ready for Release (in dev) is never touched, so work landing on a ticket that is deliberately held open for more work cannot complete it early.Nothing changes in this file; the caller is unchanged.