@semantic-release/github 9.0.7 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -93,6 +93,8 @@ When using the _GITHUB_TOKEN_, the **minimum required permissions** are:
93
93
  | `releasedLabels` | The [labels](https://help.github.com/articles/about-labels) to add to each issue and pull request resolved by the release. Set to `false` to not add any label. See [releasedLabels](#releasedlabels). | `['released<%= nextRelease.channel ? \` on @\${nextRelease.channel}\` : "" %>']- |
94
94
  | `addReleases` | Will add release links to the GitHub Release. Can be `false`, `"bottom"` or `"top"`. See [addReleases](#addReleases). | `false` |
95
95
  | `draftRelease` | A boolean indicating if a GitHub Draft Release should be created instead of publishing an actual GitHub Release. | `false` |
96
+ | `releaseNameTemplate` | A [Lodash template](https://lodash.com/docs#template) to customize the github release's name | `<%= nextverison.name %>` |
97
+ | `releaseBodyTemplate` | A [Lodash template](https://lodash.com/docs#template) to customize the github release's body | `<%= nextverison.notes %>` |
96
98
 
97
99
  #### proxy
98
100
 
@@ -195,3 +195,29 @@ export function ENOGHTOKEN({ owner, repo }) {
195
195
  Please make sure to create a [GitHub personal token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line) and to set it in the \`GH_TOKEN\` or \`GITHUB_TOKEN\` environment variable on your CI environment. The token must allow to push to the repository ${owner}/${repo}.`,
196
196
  };
197
197
  }
198
+
199
+ export function EINVALIDRELEASEBODYTEMPLATE({ releaseBodyTemplate }) {
200
+ return {
201
+ message: "Invalid `releaseBodyTemplate` option.",
202
+ details: `The [releaseBodyTemplate option](${linkify(
203
+ "README.md#releaseBodyTemplate",
204
+ )}) must be a non empty \`String\`.
205
+
206
+ Your configuration for the \`releaseBodyTemplate\` option is \`${stringify(
207
+ releaseBodyTemplate,
208
+ )}\`.`,
209
+ };
210
+ }
211
+
212
+ export function EINVALIDRELEASENAMETEMPLATE({ releaseNameTemplate }) {
213
+ return {
214
+ message: "Invalid `releaseNameTemplate` option.",
215
+ details: `The [releaseNameTemplate option](${linkify(
216
+ "README.md#releaseNameTemplate",
217
+ )}) must be a non empty \`String\`.
218
+
219
+ Your configuration for the \`releaseNameTemplate\` option is \`${stringify(
220
+ releaseNameTemplate,
221
+ )}\`.`,
222
+ };
223
+ }
package/lib/publish.js CHANGED
@@ -19,7 +19,7 @@ export default async function publish(pluginConfig, context, { Octokit }) {
19
19
  cwd,
20
20
  options: { repositoryUrl },
21
21
  branch,
22
- nextRelease: { name, gitTag, notes },
22
+ nextRelease: { gitTag },
23
23
  logger,
24
24
  } = context;
25
25
  const {
@@ -29,6 +29,8 @@ export default async function publish(pluginConfig, context, { Octokit }) {
29
29
  proxy,
30
30
  assets,
31
31
  draftRelease,
32
+ releaseNameTemplate,
33
+ releaseBodyTemplate,
32
34
  } = resolveConfig(pluginConfig, context);
33
35
  const { owner, repo } = parseGithubUrl(repositoryUrl);
34
36
  const octokit = new Octokit(
@@ -44,8 +46,8 @@ export default async function publish(pluginConfig, context, { Octokit }) {
44
46
  repo,
45
47
  tag_name: gitTag,
46
48
  target_commitish: branch.name,
47
- name,
48
- body: notes,
49
+ name: template(releaseNameTemplate)(context),
50
+ body: template(releaseBodyTemplate)(context),
49
51
  prerelease: isPrerelease(branch),
50
52
  };
51
53
 
@@ -14,6 +14,8 @@ export default function resolveConfig(
14
14
  releasedLabels,
15
15
  addReleases,
16
16
  draftRelease,
17
+ releaseNameTemplate,
18
+ releaseBodyTemplate,
17
19
  },
18
20
  { env },
19
21
  ) {
@@ -44,5 +46,11 @@ export default function resolveConfig(
44
46
  : castArray(releasedLabels),
45
47
  addReleases: isNil(addReleases) ? false : addReleases,
46
48
  draftRelease: isNil(draftRelease) ? false : draftRelease,
49
+ releaseBodyTemplate: !isNil(releaseBodyTemplate)
50
+ ? releaseBodyTemplate
51
+ : "<%= nextRelease.notes %>",
52
+ releaseNameTemplate: !isNil(releaseNameTemplate)
53
+ ? releaseNameTemplate
54
+ : "<%= nextRelease.name %>",
47
55
  };
48
56
  }
package/lib/verify.js CHANGED
@@ -45,6 +45,8 @@ const VALIDATORS = {
45
45
  releasedLabels: canBeDisabled(isArrayOf(isNonEmptyString)),
46
46
  addReleases: canBeDisabled(oneOf(["bottom", "top"])),
47
47
  draftRelease: isBoolean,
48
+ releaseBodyTemplate: isNonEmptyString,
49
+ releaseNameTemplate: isNonEmptyString,
48
50
  };
49
51
 
50
52
  export default async function verify(pluginConfig, context, { Octokit }) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semantic-release/github",
3
3
  "description": "semantic-release plugin to publish a GitHub release and comment on released Pull Requests/Issues",
4
- "version": "9.0.7",
4
+ "version": "9.1.0",
5
5
  "type": "module",
6
6
  "author": "Pierre Vanduynslager (https://twitter.com/@pvdlg_)",
7
7
  "ava": {
@@ -43,7 +43,7 @@
43
43
  "cpy": "10.1.0",
44
44
  "fetch-mock": "npm:@gr2m/fetch-mock@9.11.0-pull-request-644.1",
45
45
  "prettier": "3.0.3",
46
- "semantic-release": "22.0.4",
46
+ "semantic-release": "22.0.5",
47
47
  "sinon": "16.0.0",
48
48
  "tempy": "3.1.0"
49
49
  },