|
1 | 1 | /* eslint require-atomic-updates: off */
|
2 | 2 |
|
3 |
| -const {defaultTo, castArray} = require('lodash'); |
4 |
| -const verifyGitHub = require('./lib/verify'); |
5 |
| -const addChannelGitHub = require('./lib/add-channel'); |
6 |
| -const publishGitHub = require('./lib/publish'); |
7 |
| -const successGitHub = require('./lib/success'); |
8 |
| -const failGitHub = require('./lib/fail'); |
| 3 | +import { defaultTo, castArray } from "lodash-es"; |
| 4 | + |
| 5 | +import verifyGitHub from "./lib/verify.js"; |
| 6 | +import addChannelGitHub from "./lib/add-channel.js"; |
| 7 | +import publishGitHub from "./lib/publish.js"; |
| 8 | +import successGitHub from "./lib/success.js"; |
| 9 | +import failGitHub from "./lib/fail.js"; |
| 10 | +import { SemanticReleaseOctokit } from "./lib/octokit.js"; |
9 | 11 |
|
10 | 12 | let verified;
|
11 | 13 |
|
12 |
| -async function verifyConditions(pluginConfig, context) { |
13 |
| - const {options} = context; |
| 14 | +export async function verifyConditions( |
| 15 | + pluginConfig, |
| 16 | + context, |
| 17 | + { Octokit = SemanticReleaseOctokit } = {} |
| 18 | +) { |
| 19 | + const { options } = context; |
14 | 20 | // If the GitHub publish plugin is used and has `assets`, `successComment`, `failComment`, `failTitle`, `labels` or `assignees` configured, validate it now in order to prevent any release if the configuration is wrong
|
15 | 21 | if (options.publish) {
|
16 | 22 | const publishPlugin =
|
17 |
| - castArray(options.publish).find((config) => config.path && config.path === '@semantic-release/github') || {}; |
| 23 | + castArray(options.publish).find( |
| 24 | + (config) => config.path && config.path === "@semantic-release/github" |
| 25 | + ) || {}; |
18 | 26 |
|
19 | 27 | pluginConfig.assets = defaultTo(pluginConfig.assets, publishPlugin.assets);
|
20 |
| - pluginConfig.successComment = defaultTo(pluginConfig.successComment, publishPlugin.successComment); |
21 |
| - pluginConfig.failComment = defaultTo(pluginConfig.failComment, publishPlugin.failComment); |
22 |
| - pluginConfig.failTitle = defaultTo(pluginConfig.failTitle, publishPlugin.failTitle); |
| 28 | + pluginConfig.successComment = defaultTo( |
| 29 | + pluginConfig.successComment, |
| 30 | + publishPlugin.successComment |
| 31 | + ); |
| 32 | + pluginConfig.failComment = defaultTo( |
| 33 | + pluginConfig.failComment, |
| 34 | + publishPlugin.failComment |
| 35 | + ); |
| 36 | + pluginConfig.failTitle = defaultTo( |
| 37 | + pluginConfig.failTitle, |
| 38 | + publishPlugin.failTitle |
| 39 | + ); |
23 | 40 | pluginConfig.labels = defaultTo(pluginConfig.labels, publishPlugin.labels);
|
24 |
| - pluginConfig.assignees = defaultTo(pluginConfig.assignees, publishPlugin.assignees); |
| 41 | + pluginConfig.assignees = defaultTo( |
| 42 | + pluginConfig.assignees, |
| 43 | + publishPlugin.assignees |
| 44 | + ); |
25 | 45 | }
|
26 | 46 |
|
27 |
| - await verifyGitHub(pluginConfig, context); |
| 47 | + await verifyGitHub(pluginConfig, context, { Octokit }); |
28 | 48 | verified = true;
|
29 | 49 | }
|
30 | 50 |
|
31 |
| -async function publish(pluginConfig, context) { |
| 51 | +export async function publish( |
| 52 | + pluginConfig, |
| 53 | + context, |
| 54 | + { Octokit = SemanticReleaseOctokit } = {} |
| 55 | +) { |
32 | 56 | if (!verified) {
|
33 |
| - await verifyGitHub(pluginConfig, context); |
| 57 | + await verifyGitHub(pluginConfig, context, { Octokit }); |
34 | 58 | verified = true;
|
35 | 59 | }
|
36 | 60 |
|
37 |
| - return publishGitHub(pluginConfig, context); |
| 61 | + return publishGitHub(pluginConfig, context, { Octokit }); |
38 | 62 | }
|
39 | 63 |
|
40 |
| -async function addChannel(pluginConfig, context) { |
| 64 | +export async function addChannel( |
| 65 | + pluginConfig, |
| 66 | + context, |
| 67 | + { Octokit = SemanticReleaseOctokit } = {} |
| 68 | +) { |
41 | 69 | if (!verified) {
|
42 |
| - await verifyGitHub(pluginConfig, context); |
| 70 | + await verifyGitHub(pluginConfig, context, { Octokit }); |
43 | 71 | verified = true;
|
44 | 72 | }
|
45 | 73 |
|
46 |
| - return addChannelGitHub(pluginConfig, context); |
| 74 | + return addChannelGitHub(pluginConfig, context, { Octokit }); |
47 | 75 | }
|
48 | 76 |
|
49 |
| -async function success(pluginConfig, context) { |
| 77 | +export async function success( |
| 78 | + pluginConfig, |
| 79 | + context, |
| 80 | + { Octokit = SemanticReleaseOctokit } = {} |
| 81 | +) { |
50 | 82 | if (!verified) {
|
51 |
| - await verifyGitHub(pluginConfig, context); |
| 83 | + await verifyGitHub(pluginConfig, context, { Octokit }); |
52 | 84 | verified = true;
|
53 | 85 | }
|
54 | 86 |
|
55 |
| - await successGitHub(pluginConfig, context); |
| 87 | + await successGitHub(pluginConfig, context, { Octokit }); |
56 | 88 | }
|
57 | 89 |
|
58 |
| -async function fail(pluginConfig, context) { |
| 90 | +export async function fail( |
| 91 | + pluginConfig, |
| 92 | + context, |
| 93 | + { Octokit = SemanticReleaseOctokit } = {} |
| 94 | +) { |
59 | 95 | if (!verified) {
|
60 |
| - await verifyGitHub(pluginConfig, context); |
| 96 | + await verifyGitHub(pluginConfig, context, { Octokit }); |
61 | 97 | verified = true;
|
62 | 98 | }
|
63 | 99 |
|
64 |
| - await failGitHub(pluginConfig, context); |
| 100 | + await failGitHub(pluginConfig, context, { Octokit }); |
65 | 101 | }
|
66 |
| - |
67 |
| -module.exports = {verifyConditions, addChannel, publish, success, fail}; |
|
0 commit comments