diff --git a/README.md b/README.md index 66d6b98fd..9cf7ae84f 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,9 @@ template: | $CHANGES ``` -As pull requests get merged to master, a draft release is kept up to date, ready for you to publish via GitHub when you're ready: +As pull requests are merged, a draft release is kept up to date listing the changes, ready to publish when you’re ready: + +![Screenshot of generated draft release](desgin/screenshot.png) ## Template variables diff --git a/design/screenshot.png b/design/screenshot.png new file mode 100644 index 000000000..3f850ebdd Binary files /dev/null and b/design/screenshot.png differ diff --git a/index.js b/index.js index b0266c568..ee0146ee0 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ const getConfig = require('probot-config') -const { isRelevantBranch } = require('./lib/branch') -const { findReleases, generateBody } = require('./lib/releases') +const { isTriggerableBranch } = require('./lib/triggerable-branch') +const { findReleases, generateReleaseBody } = require('./lib/releases') const { findMergedPullRequests } = require('./lib/pull-requests') const configName = 'release-drafter.yml' @@ -8,26 +8,26 @@ const configName = 'release-drafter.yml' module.exports = app => { app.on('push', async context => { const config = await getConfig(context, configName) || {} - const { body: template } = config const branch = context.payload.ref.replace(/^refs\/heads\//, '') - if (!template) { + if (!config.template) { app.log(`No valid config found`) return } - if (!isRelevantBranch({ branch, app, context, config })) { + if (!isTriggerableBranch({ branch, app, context, config })) { return } const { draftRelease, lastRelease } = await findReleases({ context }) const mergedPullRequests = await findMergedPullRequests({ app, context, branch, lastRelease }) - const body = generateBody({ template, lastRelease, mergedPullRequests }) + const body = generateReleaseBody({ config, lastRelease, mergedPullRequests }) if (!draftRelease) { app.log(`Creating new draft release`) await context.github.repos.createRelease(context.repo({ + tag_name: '', body: body, draft: true })) diff --git a/lib/releases.js b/lib/releases.js index 3275672ea..ed1606267 100644 --- a/lib/releases.js +++ b/lib/releases.js @@ -16,8 +16,8 @@ module.exports.findReleases = async ({ context }) => { } } -module.exports.generateBody = ({ template, lastRelease, mergedPullRequests }) => { - let body = template +module.exports.generateReleaseBody = ({ config, lastRelease, mergedPullRequests }) => { + let body = config.template if (lastRelease) { body = body.replace('$PREVIOUS_TAG', lastRelease.tag_name) diff --git a/lib/branch.js b/lib/triggerable-branch.js similarity index 77% rename from lib/branch.js rename to lib/triggerable-branch.js index 1830c5034..9ffad73c7 100644 --- a/lib/branch.js +++ b/lib/triggerable-branch.js @@ -1,4 +1,4 @@ -module.exports.isRelevantBranch = ({ app, context, branch, config }) => { +module.exports.isTriggerableBranch = ({ app, context, branch, config }) => { const validBranches = config.branches || [context.payload.repository.default_branch] const relevant = validBranches.indexOf(branch) !== -1 if (!relevant) {