semantic-release-gh
Version:
The official GitHub plugin, modified to accept repositoryUrl as a parameter
43 lines • 2.26 kB
JavaScript
;
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