|
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