mirror of
https://github.com/morluto/rea.git
synced 2026-10-26 17:35:11 +00:00
fix(release): exclude Codex automation from contributor thanks
This commit is contained in:
1 parent
a32b4b6ac5
commit
efe0923914
3 files changed
+20
-7
No files matched your search
@@ -68,9 +68,9 @@ closing-issue reporters. Grouping preserves all those credits in one line.
|
||||
When Highlights, detailed entries or migrations reference the same work,
|
||||
put its thanks in one of those entries, not all of them. Include issue links.
|
||||
Direct-commit bullets carry the commit link and known human credit.
|
||||
Exclude GitHub bots and known agent accounts. REA's observed Anthropic and
|
||||
Cursor co-author trailers resolve to `@claude` and `@cursoragent` with GitHub
|
||||
type `User`; the credit policy excludes them while retaining their metadata.
|
||||
Exclude GitHub bots and known agent accounts. REA's observed Anthropic, Cursor
|
||||
and Codex co-author trailers resolve to `@claude`, `@cursoragent` and `@codex`
|
||||
with GitHub type `User`; the credit policy excludes them while retaining their metadata.
|
||||
At the REA maintainer's request, omit `@morluto` self-thanks while preserving
|
||||
authorship in the inventory. Other human contributors remain eligible.
|
||||
Use explicit GitHub links for cross-repository references to avoid ambiguous
|
||||
|
||||
@@ -98,9 +98,9 @@ export async function readReleaseHistory(run, base, target) {
|
||||
return { base: baseSha, target: targetSha, commits };
|
||||
}
|
||||
|
||||
// REA history maps Anthropic and Cursor's agent trailers to ordinary User actors.
|
||||
// GitHub maps these coding-agent trailers to ordinary User actors.
|
||||
// Keep those source identities in the inventory while excluding automation credit.
|
||||
const AGENT_ACCOUNTS = new Set(["claude", "cursoragent"]);
|
||||
const AGENT_ACCOUNTS = new Set(["claude", "cursoragent", "codex"]);
|
||||
// REA's maintainer requested external-contributor thanks without self-credit.
|
||||
const MAINTAINER_ACCOUNTS = new Set(["morluto"]);
|
||||
const human = (value) =>
|
||||
|
||||
@@ -106,6 +106,7 @@ beforeAll(async () => {
|
||||
author("platformbot", "Bot"),
|
||||
author("claude"),
|
||||
author("cursoragent"),
|
||||
author("codex"),
|
||||
author("morluto"),
|
||||
]),
|
||||
associatedPullRequests: page([]),
|
||||
@@ -218,18 +219,30 @@ it("inventories side branches and paginated credits, then checks and renders syn
|
||||
const f = await fixture();
|
||||
const inventory = z
|
||||
.object({
|
||||
commits: z.array(z.object({ sha: z.string() })),
|
||||
commits: z.array(
|
||||
z.object({
|
||||
sha: z.string(),
|
||||
authors: z.array(
|
||||
z.object({ user: z.object({ login: z.string() }).nullable() }),
|
||||
),
|
||||
}),
|
||||
),
|
||||
pullRequests: z.array(z.object({ number: z.number() })),
|
||||
})
|
||||
.parse(JSON.parse(await readFile(f.manifest, "utf8")));
|
||||
expect(inventory.commits).toHaveLength(3);
|
||||
expect(
|
||||
inventory.commits.flatMap(({ authors }) =>
|
||||
authors.map(({ user }) => user?.login),
|
||||
),
|
||||
).toEqual(expect.arrayContaining(["claude", "cursoragent", "codex"]));
|
||||
expect(inventory.pullRequests.map((pr) => pr.number)).toEqual([101]);
|
||||
expect(f.record).toContain(
|
||||
"Thanks @alice, @bob, @reporter, @second-reporter.",
|
||||
);
|
||||
expect(f.record).toContain("Thanks @dana.");
|
||||
expect(f.record).not.toMatch(
|
||||
/@(?:merger|automation|platformbot|claude|cursoragent|morluto)/u,
|
||||
/@(?:merger|automation|platformbot|claude|cursoragent|codex|morluto)/u,
|
||||
);
|
||||
const body = join(f.directory, "body.md");
|
||||
await writeFile(
|
||||
|
||||
Reference in new issue
Block a user