Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
readmeContent = readmeContent.replace(/(https:\/\/github.com\/laurent22\/joplin-android\/releases\/download\/android-v\d+\.\d+\.\d+\/joplin-v\d+\.\d+\.\d+\.apk)/, releaseFiles['main'].downloadUrl);
readmeContent = readmeContent.replace(/(https:\/\/github.com\/laurent22\/joplin-android\/releases\/download\/android-v\d+\.\d+\.\d+\/joplin-v\d+\.\d+\.\d+-32bit\.apk)/, releaseFiles['32bit'].downloadUrl);
await fs.writeFile('README.md', readmeContent);
console.info(await execCommand('git pull'));
console.info(await execCommand('git add -A'));
console.info(await execCommand(`git commit -m "Android release v${version}"`));
console.info(await execCommand(`git tag ${tagName}`));
console.info(await execCommand('git push'));
console.info(await execCommand('git push --tags'));
console.info(`Creating GitHub release ${tagName}...`);
const oauthToken = await githubOauthToken();
const release = await githubRelease(projectName, tagName);
const uploadUrlTemplate = uriTemplate.parse(release.upload_url);
for (const releaseFilename in releaseFiles) {
const releaseFile = releaseFiles[releaseFilename];
const uploadUrl = uploadUrlTemplate.expand({ name: releaseFile.apkFilename });
const binaryBody = await fs.readFile(releaseFile.apkFilePath);
console.info(`Uploading ${releaseFile.apkFilename} to ${uploadUrl}`);
const uploadResponse = await fetch(uploadUrl, {
method: 'POST',
body: binaryBody,
headers: {
'Content-Type': 'application/vnd.android.package-archive',
'Authorization': `token ${oauthToken}`,
'Content-Length': binaryBody.length,
internals.get = function (params, opts, cb) {
if ('function' === typeof params) {
cb = params;
params = {};
opts = {};
} else if ('function' === typeof opts) {
cb = opts;
opts = {};
} else if (!opts) {
opts = {};
}
params = params || {};
var tpl = uriTemplate.parse('/applications');
var pathParams = {};
var req = {
method: 'GET',
headers: {},
params: { _actions: false, _links: true, _embedded: true }
};
if ('undefined' !== typeof params.sortField) { req.params.sortField = params.sortField; }
if ('undefined' !== typeof params.sortDirection) { req.params.sortDirection = params.sortDirection; }
if ('undefined' !== typeof params.page) { req.params.page = params.page; }
if ('undefined' !== typeof params.perPage) { req.params.perPage = params.perPage; }
if ('undefined' !== typeof params.filterField) { req.params.filterField = params.filterField; }
if ('undefined' !== typeof params.filter) { req.params.filter = params.filter; }
if ('undefined' !== typeof params.orgId) { req.params.orgId = params.orgId; }
if ('undefined' !== typeof params.summaryExclude) { req.params.summaryExclude = params.summaryExclude; }
if ('undefined' !== typeof params.summaryInclude) { req.params.summaryInclude = params.summaryInclude; }
if ('undefined' !== typeof params.losantdomain) { req.headers.losantdomain = params.losantdomain; }
function getUploadReleaseAssetUrl(release, binaryName) {
const template = uritemplate.parse(release.uploadUrl);
return template.expand({ name: binaryName, label: binaryName});
}
.map(({ href, ...link }) => ({
...link,
href: uriTemplate
.parse(decodeURI(href))
.expand({ rel: rest }),
}))[0] || { href: rel, rel };
};
internals.delete = function (params, opts, cb) {
if ('function' === typeof params) {
cb = params;
params = {};
opts = {};
} else if ('function' === typeof opts) {
cb = opts;
opts = {};
} else if (!opts) {
opts = {};
}
params = params || {};
var tpl = uriTemplate.parse('/applications/{applicationId}/experience/groups/{experienceGroupId}');
var pathParams = {};
var req = {
method: 'DELETE',
data: {},
headers: {},
params: { _actions: false, _links: true, _embedded: true }
};
if ('undefined' !== typeof params.applicationId) { pathParams.applicationId = params.applicationId; }
if ('undefined' !== typeof params.experienceGroupId) { pathParams.experienceGroupId = params.experienceGroupId; }
if ('undefined' !== typeof params.losantdomain) { req.headers.losantdomain = params.losantdomain; }
if ('undefined' !== typeof params._actions) { req.params._actions = params._actions; }
if ('undefined' !== typeof params._links) { req.params._links = params._links; }
if ('undefined' !== typeof params._embedded) { req.params._embedded = params._embedded; }
req.url = tpl.expand(pathParams);
return client.request(req, opts, cb);
};
internals.get = function (params, opts, cb) {
if ('function' === typeof params) {
cb = params;
params = {};
opts = {};
} else if ('function' === typeof opts) {
cb = opts;
opts = {};
} else if (!opts) {
opts = {};
}
params = params || {};
var tpl = uriTemplate.parse('/applications/{applicationId}/webhooks/{webhookId}');
var pathParams = {};
var req = {
method: 'GET',
headers: {},
params: { _actions: false, _links: true, _embedded: true }
};
if ('undefined' !== typeof params.applicationId) { pathParams.applicationId = params.applicationId; }
if ('undefined' !== typeof params.webhookId) { pathParams.webhookId = params.webhookId; }
if ('undefined' !== typeof params.losantdomain) { req.headers.losantdomain = params.losantdomain; }
if ('undefined' !== typeof params._actions) { req.params._actions = params._actions; }
if ('undefined' !== typeof params._links) { req.params._links = params._links; }
if ('undefined' !== typeof params._embedded) { req.params._embedded = params._embedded; }
req.url = tpl.expand(pathParams);
return client.request(req, opts, cb);
};
internals.archiveData = function (params, opts, cb) {
if ('function' === typeof params) {
cb = params;
params = {};
opts = {};
} else if ('function' === typeof opts) {
cb = opts;
opts = {};
} else if (!opts) {
opts = {};
}
params = params || {};
var tpl = uriTemplate.parse('/applications/{applicationId}/archiveData');
var pathParams = {};
var req = {
method: 'GET',
headers: {},
params: { _actions: false, _links: true, _embedded: true }
};
if ('undefined' !== typeof params.applicationId) { pathParams.applicationId = params.applicationId; }
if ('undefined' !== typeof params.date) { req.params.date = params.date; }
if ('undefined' !== typeof params.losantdomain) { req.headers.losantdomain = params.losantdomain; }
if ('undefined' !== typeof params._actions) { req.params._actions = params._actions; }
if ('undefined' !== typeof params._links) { req.params._links = params._links; }
if ('undefined' !== typeof params._embedded) { req.params._embedded = params._embedded; }
req.url = tpl.expand(pathParams);
return client.request(req, opts, cb);
};
internals.import = function (params, opts, cb) {
if ('function' === typeof params) {
cb = params;
params = {};
opts = {};
} else if ('function' === typeof opts) {
cb = opts;
opts = {};
} else if (!opts) {
opts = {};
}
opts.multipart = true;
params = params || {};
var tpl = uriTemplate.parse('/applications/import');
var pathParams = {};
var req = {
method: 'POST',
data: {},
headers: {},
params: { _actions: false, _links: true, _embedded: true }
};
if ('undefined' !== typeof params.importBundle) { req.data.importBundle = params.importBundle; }
if ('undefined' !== typeof params.ownerId) { req.data.ownerId = params.ownerId; }
if ('undefined' !== typeof params.ownerType) { req.data.ownerType = params.ownerType; }
if ('undefined' !== typeof params.includeDevices) { req.data.includeDevices = params.includeDevices; }
if ('undefined' !== typeof params.includeDataTableRows) { req.data.includeDataTableRows = params.includeDataTableRows; }
if ('undefined' !== typeof params.includeFiles) { req.data.includeFiles = params.includeFiles; }
if ('undefined' !== typeof params.email) { req.data.email = params.email; }
if ('undefined' !== typeof params.losantdomain) { req.headers.losantdomain = params.losantdomain; }
if ('undefined' !== typeof params._actions) { req.params._actions = params._actions; }
internals.get = function (params, opts, cb) {
if ('function' === typeof params) {
cb = params;
params = {};
opts = {};
} else if ('function' === typeof opts) {
cb = opts;
opts = {};
} else if (!opts) {
opts = {};
}
params = params || {};
var tpl = uriTemplate.parse('/applications/{applicationId}/experience/versions');
var pathParams = {};
var req = {
method: 'GET',
headers: {},
params: { _actions: false, _links: true, _embedded: true }
};
if ('undefined' !== typeof params.applicationId) { pathParams.applicationId = params.applicationId; }
if ('undefined' !== typeof params.sortField) { req.params.sortField = params.sortField; }
if ('undefined' !== typeof params.sortDirection) { req.params.sortDirection = params.sortDirection; }
if ('undefined' !== typeof params.page) { req.params.page = params.page; }
if ('undefined' !== typeof params.perPage) { req.params.perPage = params.perPage; }
if ('undefined' !== typeof params.filterField) { req.params.filterField = params.filterField; }
if ('undefined' !== typeof params.filter) { req.params.filter = params.filter; }
if ('undefined' !== typeof params.losantdomain) { req.headers.losantdomain = params.losantdomain; }
if ('undefined' !== typeof params._actions) { req.params._actions = params._actions; }
if ('undefined' !== typeof params._links) { req.params._links = params._links; }
internals.getState = function (params, opts, cb) {
if ('function' === typeof params) {
cb = params;
params = {};
opts = {};
} else if ('function' === typeof opts) {
cb = opts;
opts = {};
} else if (!opts) {
opts = {};
}
params = params || {};
var tpl = uriTemplate.parse('/applications/{applicationId}/devices/{deviceId}/state');
var pathParams = {};
var req = {
method: 'GET',
headers: {},
params: { _actions: false, _links: true, _embedded: true }
};
if ('undefined' !== typeof params.applicationId) { pathParams.applicationId = params.applicationId; }
if ('undefined' !== typeof params.deviceId) { pathParams.deviceId = params.deviceId; }
if ('undefined' !== typeof params.limit) { req.params.limit = params.limit; }
if ('undefined' !== typeof params.since) { req.params.since = params.since; }
if ('undefined' !== typeof params.losantdomain) { req.headers.losantdomain = params.losantdomain; }
if ('undefined' !== typeof params._actions) { req.params._actions = params._actions; }
if ('undefined' !== typeof params._links) { req.params._links = params._links; }
if ('undefined' !== typeof params._embedded) { req.params._embedded = params._embedded; }
req.url = tpl.expand(pathParams);
return client.request(req, opts, cb);