Skip to content

Commit

Permalink
feat(danger): check that a changelog entry is not added to an already…
Browse files Browse the repository at this point in the history
… released section
  • Loading branch information
vaind committed Oct 17, 2022
1 parent d0390da commit ead7a61
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 9 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
### Features

- Updater - add `changelog-entry` option to disable adding a changelog entry ([#43](https://github.com/getsentry/github-workflows/pull/43))
- Danger - check a changelog entry is not added to an already released section ([#44](https://github.com/getsentry/github-workflows/pull/44))
- Danger - check that a changelog entry is not added to an already released section ([#44](https://github.com/getsentry/github-workflows/pull/44))

## 2.2.2

Expand Down
29 changes: 21 additions & 8 deletions danger/dangerfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,19 +79,32 @@ async function checkChangelog() {
changelogFile
);

const hasChangelogEntry = RegExp(`#${danger.github.pr.number}\\b`).test(
const changelogMatch = RegExp(`^(.*)\n[^\n]+#${danger.github.pr.number}\\b`, 's').exec(
changelogContents
);

if (hasChangelogEntry) {
return;
// check if a changelog entry exists
if (!changelogMatch) {
return reportMissingChangelog(changelogFile);
}

// Report missing changelog entry
fail(
"Please consider adding a changelog entry for the next release.",
changelogFile
);
// Check if the entry is added to an Unreleased section (or rather, check that it's not added to a released one)
const textBeforeEntry = changelogMatch[1]
const section = RegExp('^(## +v?[0-9.]+)([\-\n _]|$)', 'm').exec(textBeforeEntry)
if (section) {
const lineNr = 1 + textBeforeEntry.split(/\r\n|\r|\n/).length
fail(
`The changelog entry seems to be part of an already released section \`${section[1]}\`.
Consider moving the entry to the appropriate subsection of the \`## Unreleased\` section, please.`,
changelogFile,
lineNr
);
}
}

/// Report missing changelog entry
function reportMissingChangelog(changelogFile) {
fail("Please consider adding a changelog entry for the next release.", changelogFile);

const prTitleFormatted = danger.github.pr.title
.split(": ")
Expand Down

0 comments on commit ead7a61

Please sign in to comment.