From f1d7330f2b395d30fc1c8d3b0556a9119f822e8d Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@keylocation.sg> Date: Tue, 1 Aug 2017 08:49:41 +0200 Subject: [PATCH] fix: Improve PR body fixes for scoped packages (#569) Escape all scoped package mentions Escape in group PR bodies too Remove empty repositoryUrl links --- lib/config/templates/default/pr-body.hbs | 2 +- lib/config/templates/group/pr-body.hbs | 2 +- lib/workers/package/index.js | 5 ++++- lib/workers/pr/index.js | 2 +- test/workers/package/__snapshots__/index.spec.js.snap | 6 +++--- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/config/templates/default/pr-body.hbs b/lib/config/templates/default/pr-body.hbs index e438988b59..87691a3566 100644 --- a/lib/config/templates/default/pr-body.hbs +++ b/lib/config/templates/default/pr-body.hbs @@ -1,4 +1,4 @@ -This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request {{#if isRollback}}rolls back{{else}}updates{{/if}} dependency {{#if repositoryUrl}}[{{depName}}]({{repositoryUrl}}){{else}}`depName`{{/if}} from version `{{currentVersion}}` to `{{newVersion}}`{{#if isRollback}}. This is necessary and important because version `{{currentVersion}}` cannot be found in the npm registry - probably because of it being unpublished.{{/if}} +This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request {{#if isRollback}}rolls back{{else}}updates{{/if}} dependency {{#if repositoryUrl}}[{{depName}}]({{repositoryUrl}}){{else}}`{{depName}}`{{/if}} from version `{{currentVersion}}` to `{{newVersion}}`{{#if isRollback}}. This is necessary and important because version `{{currentVersion}}` cannot be found in the npm registry - probably because of it being unpublished.{{/if}} {{#if releases.length}} {{#if schedule}} diff --git a/lib/config/templates/group/pr-body.hbs b/lib/config/templates/group/pr-body.hbs index c85ec6c522..8b519ead53 100644 --- a/lib/config/templates/group/pr-body.hbs +++ b/lib/config/templates/group/pr-body.hbs @@ -5,7 +5,7 @@ This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request renovates the package grou {{/if}} {{#each upgrades as |upgrade|}} -- [{{upgrade.depName}}]({{upgrade.repositoryUrl}}): from `{{upgrade.currentVersion}}` to `{{upgrade.newVersion}}` +- {{#if repositoryUrl}}[{{upgrade.depName}}]({{upgrade.repositoryUrl}}){{else}}`{{depName}}`{{/if}}: from `{{upgrade.currentVersion}}` to `{{upgrade.newVersion}}` {{/each}} {{#unless isPin}} diff --git a/lib/workers/package/index.js b/lib/workers/package/index.js index 526e220435..5494ba9500 100644 --- a/lib/workers/package/index.js +++ b/lib/workers/package/index.js @@ -50,7 +50,10 @@ async function renovatePackage(config) { // Flatten the result on top of config, add repositoryUrl return results.map(result => { const upg = configParser.mergeChildConfig(config, result); - upg.repositoryUrl = npmDep ? npmDep.repositoryUrl : ''; + upg.repositoryUrl = + npmDep && npmDep.repositoryUrl && npmDep.repositoryUrl.length + ? npmDep.repositoryUrl + : null; return configParser.filterConfig(upg, 'branch'); }); } diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js index c15c0ad228..b34a1a4fde 100644 --- a/lib/workers/pr/index.js +++ b/lib/workers/pr/index.js @@ -115,7 +115,7 @@ async function ensurePr(inputConfig, logger, errors, warnings) { const prTitle = handlebars.compile(config.prTitle)(config); let prBodyMarkdown = handlebars.compile(config.prBody)(config); - const atUserRe = /@([a-z]+\/[a-z]+)/; + const atUserRe = /[^`]@([a-z]+\/[a-z]+)/g; prBodyMarkdown = prBodyMarkdown.replace(atUserRe, '@​$1'); const prBody = converter.makeHtml(prBodyMarkdown); diff --git a/test/workers/package/__snapshots__/index.spec.js.snap b/test/workers/package/__snapshots__/index.spec.js.snap index 1eedc003f6..4160c5b53d 100644 --- a/test/workers/package/__snapshots__/index.spec.js.snap +++ b/test/workers/package/__snapshots__/index.spec.js.snap @@ -49,7 +49,7 @@ Array [ {{/if}} {{#each upgrades as |upgrade|}} -- [{{upgrade.depName}}]({{upgrade.repositoryUrl}}): from \`{{upgrade.currentVersion}}\` to \`{{upgrade.newVersion}}\` +- {{#if repositoryUrl}}[{{upgrade.depName}}]({{upgrade.repositoryUrl}}){{else}}\`{{depName}}\`{{/if}}: from \`{{upgrade.currentVersion}}\` to \`{{upgrade.newVersion}}\` {{/each}} {{#unless isPin}} @@ -110,7 +110,7 @@ This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](ht "labels": Array [], "lazyGrouping": true, "message": "Failed to look up dependency", - "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request {{#if isRollback}}rolls back{{else}}updates{{/if}} dependency {{#if repositoryUrl}}[{{depName}}]({{repositoryUrl}}){{else}}\`depName\`{{/if}} from version \`{{currentVersion}}\` to \`{{newVersion}}\`{{#if isRollback}}. This is necessary and important because version \`{{currentVersion}}\` cannot be found in the npm registry - probably because of it being unpublished.{{/if}} + "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request {{#if isRollback}}rolls back{{else}}updates{{/if}} dependency {{#if repositoryUrl}}[{{depName}}]({{repositoryUrl}}){{else}}\`{{depName}}\`{{/if}} from version \`{{currentVersion}}\` to \`{{newVersion}}\`{{#if isRollback}}. This is necessary and important because version \`{{currentVersion}}\` cannot be found in the npm registry - probably because of it being unpublished.{{/if}} {{#if releases.length}} {{#if schedule}} @@ -166,7 +166,7 @@ This {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](ht "rebaseStalePrs": false, "recreateClosed": false, "repoIsOnboarded": true, - "repositoryUrl": "", + "repositoryUrl": null, "requiredStatusChecks": Array [], "reviewers": Array [], "schedule": "some schedule", -- GitLab