The board gains an "A tester" column for the checks that need a person: the project-board hook now reads it, so a commit that mentions one of its cards moves the card instead of adding it to a second column. A test that runs only with MAKE_TEST_SAVES=1 writes the backup those checks import, built from the local ROM and kept out of git. [no-card] Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a7aceda089
commit
ee55d344af
3 files changed
+99
-1
No files matched your search
@@ -5,7 +5,8 @@
|
||||
//
|
||||
// A commit message mentioning "Closes #N" (also close/closed, fix/fixes/fixed,
|
||||
// resolve/resolves/resolved) moves card N to Fait and closes the issue. Any
|
||||
// other "#N" moves card N to En cours. A commit on the default branch with no
|
||||
// other "#N" moves card N to En cours, including from the optional "A tester"
|
||||
// column of manual test cards. A commit on the default branch with no
|
||||
// reference creates a closed card in Fait from the commit message. Merges,
|
||||
// amends, rebases and messages containing [no-card] are skipped. On other
|
||||
// branches only referenced cards move, and only to En cours.
|
||||
@@ -21,6 +22,8 @@ import { execFileSync } from "node:child_process";
|
||||
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
||||
|
||||
const COLUMNS = { todo: "A faire", doing: "En cours", done: "Fait" };
|
||||
// Columns whose cards commits may move, but which the board may lack.
|
||||
const OPTIONAL_COLUMNS = { test: "A tester" };
|
||||
const CLOSING = /\b(?:close[sd]?|fix(?:e[sd])?|resolve[sd]?)\s*:?\s+#(\d+)\b/gi;
|
||||
const REFERENCE = /(?<![\w/])#(\d+)\b/g;
|
||||
|
||||
@@ -86,6 +89,10 @@ async function board(api) {
|
||||
if (!column) throw new Error(`Project ${project} has no "${title}" column`);
|
||||
id[key] = column.id;
|
||||
}
|
||||
for (const [key, title] of Object.entries(OPTIONAL_COLUMNS)) {
|
||||
const column = columns.find((c) => c.title === title);
|
||||
if (column) id[key] = column.id;
|
||||
}
|
||||
const membership = new Map();
|
||||
for (const [key, columnId] of Object.entries(id))
|
||||
for (let page = 1; ; page++) {
|
||||
|
||||
Reference in new issue
Block a user