Repository navigation
Move issues across the backlog board automatically as their pull requests progress #937
Copy link
Copy link
Open
Open
Copy link
Milestone
Description
Summary
Issues on the MaveDB Backlog board only change status when someone moves them by hand, so the board drifts from what the pull requests show. Every release PR also has to list the issues it closes by hand. This adds a GitHub Actions workflow to mavedb-api, mavedb-ui and dcd_mapping2 that moves linked issues forward on the board as their PRs open and merge, and writes the "Closes" list into each release PR.
Problem
- The board's built-in "Pull request linked to issue" workflow can't stay on: a release PR links every issue in the release, which pulls issues already in ⏳ Pending release back to 👀 In review.
- The built-in "Pull request merged" workflow moves the PR's own card, not the issues it links.
Closes #Nonly closes an issue when the PR merges into the default branch. Work merges into release branches first, so each release PR has to collect its issues by hand. Release 2026.3.0 #907 listed 11 and missed Methods source and threshold source can't search the external source normally #865.
Scope
- A workflow (
.github/workflows/issue-status.yml,.yamlin dcd_mapping2) and script (.github/scripts/issue-status.js), identical in all three repos:- A PR into any branch except the default moves its linked issues to 👀 In review, or 🏗 In progress while it's a draft.
- A PR merged into a release branch moves them to ⏳ Pending release once no other open PR links them. Release branches are
release-*in api and ui, andmavedb-devin dcd_mapping2. - A release branch's PR into the default branch gets a generated "Issues closed by this release" section. It lists the open issues linked from PRs merged into that branch since its last release, and is rewritten on every push.
- Issues only ever move forward on the board.
- An hourly run picks up issues linked from a PR's Development sidebar, which fires no Actions event.
- A pull request template in each repo with a
Closes #line and a short checklist. - A GitHub App for the workflow's token, since the default
GITHUB_TOKENcan't write to org projects. Setup steps are in the PR descriptions.
Out of scope: adding issues that aren't on the board, and moving issues back when a PR closes without merging.
Acceptance criteria
- The GitHub App is installed on mavedb-api, mavedb-ui and dcd_mapping2, and the variable
PROJECT_AUTOMATION_APP_IDand the secretPROJECT_AUTOMATION_PRIVATE_KEYare available to all three. - Opening a PR that links a Backlog issue moves the issue to In review.
- Merging that PR into a release branch moves the issue to Pending release.
- A release PR that links an issue already in Pending release leaves it there.
- A release PR into the default branch lists every open issue linked from its branch's merged PRs, and merging it closes them.
- Opening a new PR in any of the three repos shows the template.
Background
- PRs: ci: move linked issues across the backlog board from PR events #936 (into
release-2026.3.2), ci: move linked issues across the backlog board from PR events mavedb-ui#749 (intorelease-2026.3.1), ci: move linked issues across the backlog board from PR events dcd_mapping2#116 (intomavedb-dev). - The workflow runs from the PR's target branch, so coverage spreads as the file does. Each patch branch is covered once its PR merges.
release-2026.4.0is covered after it's rebased ontomain, once the patch ships. The release list and the hourly run start once the file reaches each default branch. - The release list was checked against real history. For
release-2026.3.0it matches the 11 issues in Release 2026.3.0 #907, except that it adds Methods source and threshold source can't search the external source normally #865 and drops Redesign stuck-RUNNING-job detection: progress-heartbeat + abort-first recovery #788, which no PR linked. For dcd_mapping2's Release 2026.3.0 dcd_mapping2#111 it picks up exactly the three PRs merged since the previous release. - A personal access token was considered instead of an app. It's quicker to set up, but it acts as one person and expires silently.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity