Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function publishFiles(filelist) {
var CancellationToken = require('electron-builder-http/out/CancellationToken').CancellationToken;
var GitHubPublisher = require('electron-publish/out/gitHubPublisher').GitHubPublisher;
var publishConfig = replacePublishEnvironmentVars(require('./scripts/config/publish.json'));
const context = {
cancellationToken: new CancellationToken(),
progress: null
};
const publisher = new GitHubPublisher(
context,
publishConfig,
pjson.version, {
publish: "always",
draft: true,
prerelease: false
});
const errorlist = [];
const uploads = filelist.map(file => {
return publisher.upload({ file })
.catch((err) => {
errorlist.push(err.response ? `Failed to upload ${file}, http status code ${err.response.statusCode}` : err);
return Promise.resolve();
});
});
export function createPublisher(context: PublishContext, version: string, publishConfig: PublishConfiguration, options: PublishOptions, packager: Packager): Publisher | null {
if (debug.enabled) {
debug(`Create publisher: ${safeStringifyJson(publishConfig)}`)
}
const provider = publishConfig.provider
switch (provider) {
case "github":
return new GitHubPublisher(context, publishConfig as GithubOptions, version, options)
case "bintray":
return new BintrayPublisher(context, publishConfig as BintrayOptions, version, options)
case "generic":
return null
case "snapStore":
return new SnapStorePublisher(context, publishConfig as SnapStoreOptions)
default:
const clazz = requireProviderClass(provider, packager)
return clazz == null ? null : new clazz(context, publishConfig)
}
}
function publishFiles(filelist) {
var CancellationToken = require('electron-builder-http/out/CancellationToken').CancellationToken;
var GitHubPublisher = require('electron-publish/out/gitHubPublisher').GitHubPublisher;
var publishConfig = replacePublishEnvironmentVars(require('./scripts/config/publish.json'));
const context = {
cancellationToken: new CancellationToken(),
progress: null
};
const publisher = new GitHubPublisher(
context,
publishConfig,
pjson.version, {
publish: "always",
draft: true,
prerelease: false
});
const errorlist = [];
const uploads = filelist.map(file => {
return publisher.upload({ file })
.catch((err) => {
errorlist.push(err.response ? `Failed to upload ${file}, http status code ${err.response.statusCode}` : err);
return Promise.resolve();
});
});
if (publishConfig.provider === "generic") {
return
}
const publisher = this.getOrCreatePublisher(publishConfig, appInfo)
if (publisher == null) {
log.debug({
file: event.file,
reason: "publisher is null",
publishConfig: safeStringifyJson(publishConfig),
}, "not published")
return
}
const providerName = publisher.providerName
if (this.publishOptions.publish === "onTagOrDraft" && getCiTag() == null && !(providerName === "GitHub" || providerName === "Bintray")) {
log.info({file: event.file, reason: "current build is not for a git tag", publishPolicy: "onTagOrDraft"}, `not published to ${providerName}`)
return
}
this.taskManager.addTask(publisher.upload(event))
}
}
else {
const tag = getCiTag()
if (tag != null) {
log.info({reason: "tag is defined", tag}, "artifacts will be published")
publishOptions.publish = "onTag"
}
else if (isCi) {
log.info({reason: "CI detected"}, "artifacts will be published if draft release exists")
publishOptions.publish = "onTagOrDraft"
}
}
}
const publishPolicy = publishOptions.publish
this.isPublish = publishPolicy != null && publishOptions.publish !== "never" && (publishPolicy !== "onTag" || getCiTag() != null)
if (this.isPublish && forcePublishForPr) {
log.warn(publishForPrWarning)
}
}
else if (publishOptions.publish !== "never") {
log.info({
reason: "current build is a part of pull request",
solution: `set env PUBLISH_FOR_PULL_REQUEST to true to force code signing\n${publishForPrWarning}`,
}, "publishing will be skipped")
}
packager.addAfterPackHandler(async event => {
const packager = event.packager
if (event.electronPlatformName === "darwin") {
if (!event.targets.some(it => it.name === "dmg" || it.name === "zip")) {
return
constructor(private readonly packager: Packager, private readonly publishOptions: PublishOptions, readonly cancellationToken: CancellationToken = packager.cancellationToken) {
checkOptions(publishOptions.publish)
this.taskManager = new AsyncTaskManager(cancellationToken)
const forcePublishForPr = process.env.PUBLISH_FOR_PULL_REQUEST === "true"
if (!isPullRequest() || forcePublishForPr) {
if (publishOptions.publish === undefined) {
if (process.env.npm_lifecycle_event === "release") {
publishOptions.publish = "always"
}
else {
const tag = getCiTag()
if (tag != null) {
log.info({reason: "tag is defined", tag}, "artifacts will be published")
publishOptions.publish = "onTag"
}
else if (isCi) {
log.info({reason: "CI detected"}, "artifacts will be published if draft release exists")
publishOptions.publish = "onTagOrDraft"
}
}
}
const publishPolicy = publishOptions.publish
this.isPublish = publishPolicy != null && publishOptions.publish !== "never" && (publishPolicy !== "onTag" || getCiTag() != null)
if (this.isPublish && forcePublishForPr) {
log.warn(publishForPrWarning)
}