Merge branch 'bugfix/8'

This commit is contained in:
Tiara Rodney 2026-03-20 20:57:42 +01:00
commit fd2c8ba640
No known key found for this signature in database
GPG key ID: 5CD8EC1D46106723
2 changed files with 20 additions and 1 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "@byteb4rb1e/mime-todo", "name": "@byteb4rb1e/mime-todo",
"version": "0.3.3", "version": "0.3.4",
"description": "CLI for the MIME TODO issue tracker specification with Bugzilla integration", "description": "CLI for the MIME TODO issue tracker specification with Bugzilla integration",
"author": "Tiara Rodney <me@tiararodney.com>", "author": "Tiara Rodney <me@tiararodney.com>",
"license": "CC-BY-ND-4.0", "license": "CC-BY-ND-4.0",

View file

@ -277,6 +277,7 @@ export class PushCommand extends CLICommand {
const payload = issueToBugzillaCreate(issue, product, component, originUrl) const payload = issueToBugzillaCreate(issue, product, component, originUrl)
const bugId = await client.createBug(payload) const bugId = await client.createBug(payload)
console.log(`Created bug #${bugId} for issue #${issue.id}`) console.log(`Created bug #${bugId} for issue #${issue.id}`)
await this.reconcileBugStatus(client, bugId, issue)
return bugId return bugId
} catch (err: any) { } catch (err: any) {
console.error(`Error creating bug for issue #${issue.id}: ${err.message}`) console.error(`Error creating bug for issue #${issue.id}: ${err.message}`)
@ -330,6 +331,7 @@ export class PushCommand extends CLICommand {
const bugId = await client.createBug(payload) const bugId = await client.createBug(payload)
bugMap.set(issue.id, bugId) bugMap.set(issue.id, bugId)
console.log(`Created bug #${bugId} for issue #${issue.id}`) console.log(`Created bug #${bugId} for issue #${issue.id}`)
await this.reconcileBugStatus(client, bugId, issue)
} catch (err: any) { } catch (err: any) {
console.error(`Error creating bug for issue #${issue.id}: ${err.message}`) console.error(`Error creating bug for issue #${issue.id}: ${err.message}`)
} }
@ -379,6 +381,23 @@ export class PushCommand extends CLICommand {
await client.tagComment(commentId, [`git-${shortHash(commitHash)}`]) await client.tagComment(commentId, [`git-${shortHash(commitHash)}`])
} }
// Reconcile bug status after creation if issue is not open
private async reconcileBugStatus(
client: BugzillaClient,
bugId: number,
issue: import("../issue.js").Issue
): Promise<void> {
if (issue.status === "open") return
try {
const bz = statusToBugzilla(issue.status)
const update: Record<string, string> = { status: bz.status }
if (bz.resolution) update.resolution = bz.resolution
await client.updateBug(bugId, update)
} catch (err: any) {
console.error(`Error reconciling status for bug #${bugId}: ${err.message}`)
}
}
// Format a commit as a markdown Bugzilla comment // Format a commit as a markdown Bugzilla comment
private formatComment(commit: GitCommit, commitUrl: string): string { private formatComment(commit: GitCommit, commitUrl: string): string {
const lines: string[] = [] const lines: string[] = []