UNPKG

semantic-release-gh

Version:

The official GitHub plugin, modified to accept repositoryUrl as a parameter

43 lines 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AddChannelGitHub = void 0; const tslib_1 = require("tslib"); const debug_1 = tslib_1.__importDefault(require("debug")); const constants_1 = require("./definitions/constants"); const get_client_1 = require("./get-client"); const is_prerelease_1 = require("./is-prerelease"); const parse_github_url_1 = require("./parse-github-url"); const resolve_config_1 = require("./resolve-config"); const debug = (0, debug_1.default)('semantic-release:github'); const AddChannelGitHub = async (pluginConfig, context) => { const { options, branch, nextRelease: { name, gitTag, notes }, logger } = context; debug('options: %O', options); const { githubToken, githubUrl, githubApiPathPrefix, proxy, repositoryUrl } = (0, resolve_config_1.ResolveConfig)(pluginConfig, context); const { owner, repo } = (0, parse_github_url_1.ParseGitHubURL)(repositoryUrl); const github = (0, get_client_1.GetClient)({ githubApiPathPrefix, githubToken, githubUrl, proxy }); let releaseId = ''; const release = { name, owner, prerelease: (0, is_prerelease_1.IsPrerelease)(branch.name), repo, tag_name: gitTag }; debug('release object: %O', release); try { ; ({ data: { id: releaseId } } = await github.repos.getReleaseByTag({ owner, repo, tag: gitTag })); } catch (error) { const HTTP_STATUS_404 = 404; if (error.status === HTTP_STATUS_404) { logger.log('There is no release for tag %s, creating a new one', gitTag); const { data: { html_url: url } } = await github.repos.createRelease(Object.assign(Object.assign({}, release), { body: notes })); logger.log('Published GitHub release: %s', url); return { name: constants_1.RELEASE_NAME, url }; } throw error; } debug('release release_id: %o', releaseId); const { data: { html_url: url } } = await github.repos.updateRelease(Object.assign(Object.assign({}, release), { release_id: releaseId })); logger.log('Updated GitHub release: %s', url); return { name: constants_1.RELEASE_NAME, url }; }; exports.AddChannelGitHub = AddChannelGitHub; //# sourceMappingURL=add-channel.js.map