Maurizio Vitale 79a196a381
[AAE-13775] Upstream Js API (#8482)
* Be able to upstream on tag alpha|latest

* fix codeQL
2023-04-17 15:32:23 +01:00

45 lines
1.8 KiB
JavaScript
Executable File

module.exports = async ({github, context, dependencyName, tagVersion = 'alpha' }) => {
console.log('owner', context.repo.owner)
const organization = 'alfresco';
const dependencyFullName = `@${organization}/${dependencyName}`;
console.log('Looking versions for: ', dependencyFullName);
const pjson = require('../../../package.json');
const currentDependency = pjson?.dependencies[dependencyFullName];
console.log('current from package.json:', currentDependency);
const { data: availablePakages } = await github.rest.packages.getAllPackageVersionsForPackageOwnedByOrg({
package_type: 'npm',
package_name: dependencyName,
org: organization
});
let latestPkgToUpdate = null;
if (tagVersion === 'alpha') {
console.log('alpha: taking most recent')
const filteredAlphaPkgs = availablePakages.filter( (item) => item.name.match('^[0-9]*.[0-9]*.[0-9]*.A.[0-9].[0-9]*$') )
latestPkgToUpdate = filteredAlphaPkgs[0];
} else {
console.log('release: taking most recent')
const filteredReleasePkgs = availablePakages.filter( (item) => item.name.match('^[0-9]*.[0-9]*.[0-9]*.A.[0-9]*$') || item.name.match('^[0-9]*.[0-9]*.[0-9]*$') )
latestPkgToUpdate = filteredReleasePkgs[0];
}
if (latestPkgToUpdate === null) {
console.log(`Something went wrong. Not able to find any version.`);
return { hasVersionNew: 'false' };
} else {
console.log(`latest tag:${tagVersion} from NPM: `, latestPkgToUpdate.name);
if (currentDependency === latestPkgToUpdate?.name) {
console.log(`There is no new version published for ${dependencyFullName}.`);
return { hasVersionNew: 'false' };
} else {
return { hasVersionNew: 'true', latestVersion: latestPkgToUpdate?.name };
}
}
}