Skip to content

Commit

Permalink
Add support to ignore pre-releases
Browse files Browse the repository at this point in the history
  • Loading branch information
chrgernoe committed Mar 1, 2022
1 parent d8ca1fa commit 90b0567
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -118,6 +118,7 @@ You can configure Release Drafter using the following key in your `.github/relea
| `change-template` | Optional | The template to use for each merged pull request. Use [change template variables](#change-template-variables) to insert values. Default: `"* $TITLE (#$NUMBER) @$AUTHOR"`. |
| `change-title-escapes` | Optional | Characters to escape in `$TITLE` when inserting into `change-template` so that they are not interpreted as Markdown format characters. Default: `""` |
| `no-changes-template` | Optional | The template to use for when there’s no changes. Default: `"* No changes"`. |
| `use-latest-public` | Optional | If `true`, compile a list since the latest public release and ignore pre-release. Default: `true`. |
| `references` | Optional | The references to listen for configuration updates to `.github/release-drafter.yml`. Refer to [References](#references) to learn more about this |
| `categories` | Optional | Categorize pull requests using labels. Refer to [Categorize Pull Requests](#categorize-pull-requests) to learn more about this option. |
| `exclude-labels` | Optional | Exclude pull requests using labels. Refer to [Exclude Pull Requests](#exclude-pull-requests) to learn more about this option. |
Expand Down
1 change: 1 addition & 0 deletions index.js
Expand Up @@ -165,6 +165,7 @@ module.exports = (app, { getRouter }) => {
context,
targetCommitish,
filterByCommitish,
config,
})

const { commits, pullRequests: mergedPullRequests } =
Expand Down
1 change: 1 addition & 0 deletions lib/default-config.js
Expand Up @@ -6,6 +6,7 @@ const DEFAULT_CONFIG = Object.freeze({
'change-template': `* $TITLE (#$NUMBER) @$AUTHOR`,
'change-title-escapes': '',
'no-changes-template': `* No changes`,
'use-latest-public': true,
'version-template': `$MAJOR.$MINOR.$PATCH`,
'version-resolver': {
major: { labels: [] },
Expand Down
14 changes: 13 additions & 1 deletion lib/releases.js
Expand Up @@ -24,6 +24,7 @@ const findReleases = async ({
context,
targetCommitish,
filterByCommitish,
config,
}) => {
let releaseCount = 0
let releases = await context.octokit.paginate(
Expand All @@ -47,9 +48,12 @@ const findReleases = async ({
? releases.filter((r) => targetCommitish.match(`/${r.target_commitish}$`))
: releases
const sortedPublishedReleases = sortReleases(
filteredReleases.filter((r) => !r.draft)
filteredReleases.filter(
(r) => !r.draft && !(config['use-latest-public'] && r.prerelease)
)
)
const draftRelease = filteredReleases.find((r) => r.draft)
const preRelease = filteredReleases.find((r) => r.prerelease)
const lastRelease =
sortedPublishedReleases[sortedPublishedReleases.length - 1]

Expand All @@ -59,6 +63,14 @@ const findReleases = async ({
log({ context, message: `No draft release found` })
}

if (config['use-latest-public']) {
if (preRelease) {
log({ context, message: `Pre-release: ${preRelease.tag_name}` })
} else {
log({ context, message: `No pre-release found` })
}
}

if (lastRelease) {
log({ context, message: `Last release: ${lastRelease.tag_name}` })
} else {
Expand Down
4 changes: 4 additions & 0 deletions lib/schema.js
Expand Up @@ -31,6 +31,10 @@ const schema = (context) => {
DEFAULT_CONFIG['no-changes-template']
),

'use-latest-public': Joi.boolean().default(
DEFAULT_CONFIG['use-latest-public']
),

'version-template': Joi.string().default(
DEFAULT_CONFIG['version-template']
),
Expand Down

0 comments on commit 90b0567

Please sign in to comment.