Gå til innholdet

no-todo-comments

Flagg TODO-, FIXME-, HACK- og XXX-kommentarer slik at de løses før sammenslåing.

TODO-kommentarer er nyttige under utvikling, men bør ikke hope seg opp i hovedgrenen. Denne regelen bruker ctx.grepFiles for å skanne alle kildefiler etter vanlige oppgavemarkerings-kommentarer. Den bruker warning-alvorlighetsgrad slik at den ikke blokkerer CI, men gjør kommentarene synlige i hver sjekk.

src/helpers/git.ts
// TODO: handle merge conflicts
// FIXME: this breaks on Windows
// HACK: workaround for upstream bug
// XXX: revisit this logic
src/helpers/git.ts
// Proper implementation with no deferred work
/// <reference path="../rules.d.ts" />
export default {
rules: {
"no-todo-comments": {
description: "TODO and FIXME comments should be resolved before merging",
severity: "warning",
async check(ctx) {
const matches = await ctx.grepFiles(
/\/\/\s*(TODO|FIXME|HACK|XXX):/i,
"src/**/*.ts"
);
for (const match of matches) {
ctx.report.warning({
message: `${match.content.trim()} — resolve before merging`,
file: match.file,
line: match.line,
});
}
},
},
},
} satisfies RuleSet;

Når du ønsker innsikt i utsatt arbeid og vil forhindre at TODO-kommentarer hoper seg opp over tid. Endre alvorlighetsgrad til "error" og bruk ctx.report.violation() for å gjøre den til en hard blokkering.

Når TODO-kommentarer er tilsiktet dokumentasjon (f.eks. sporet av et eget verktøy som oppretter saker fra TODO-kommentarer).