mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2026-09-09 18:02:54 +00:00
[ACS-12108] Adapt fetching latest packages to new tokens (#5282)
This commit is contained in:
@@ -33,7 +33,6 @@ jobs:
|
|||||||
client-id: ${{ vars.GH_APP_ENGINEERING_RO_CLIENT_ID }}
|
client-id: ${{ vars.GH_APP_ENGINEERING_RO_CLIENT_ID }}
|
||||||
private-key: ${{ secrets.GH_APP_ENGINEERING_RO_PRIVATE_KEY }}
|
private-key: ${{ secrets.GH_APP_ENGINEERING_RO_PRIVATE_KEY }}
|
||||||
permission-contents: read
|
permission-contents: read
|
||||||
permission-packages: read
|
|
||||||
permission-pull-requests: read
|
permission-pull-requests: read
|
||||||
- id: fetchLatestPkg
|
- id: fetchLatestPkg
|
||||||
name: Fetch the latest package version
|
name: Fetch the latest package version
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ function inDays(d1, d2) {
|
|||||||
return Math.floor((d2.getTime() - d1.getTime()) / (24 * 3600 * 1000));
|
return Math.floor((d2.getTime() - d1.getTime()) / (24 * 3600 * 1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = async ({ exec, github, dependencyName, tag }) => {
|
module.exports = async ({ dependencyName, tag }) => {
|
||||||
tag = tag || 'alpha';
|
tag = tag || 'alpha';
|
||||||
const organization = 'alfresco';
|
const organization = 'alfresco';
|
||||||
const dependencyFullName = `@${organization}/${dependencyName}`;
|
const dependencyFullName = `@${organization}/${dependencyName}`;
|
||||||
@@ -10,42 +10,22 @@ module.exports = async ({ exec, github, dependencyName, tag }) => {
|
|||||||
|
|
||||||
const localVersion = pkg.dependencies[dependencyFullName];
|
const localVersion = pkg.dependencies[dependencyFullName];
|
||||||
|
|
||||||
const { data: availablePackages } = await github.rest.packages.getAllPackageVersionsForPackageOwnedByOrg({
|
const response = await fetch(`https://registry.npmjs.org/${dependencyFullName}`);
|
||||||
package_type: 'npm',
|
if (!response.ok) {
|
||||||
package_name: dependencyName,
|
throw new Error(`Failed to fetch ${dependencyFullName} from npm registry: ${response.status}`);
|
||||||
org: organization
|
|
||||||
});
|
|
||||||
|
|
||||||
const options = {};
|
|
||||||
let packageDistTag = '';
|
|
||||||
options.listeners = {
|
|
||||||
stdout: (data) => {
|
|
||||||
packageDistTag += data.toString();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
await exec.exec(`npm dist-tag ls @alfresco/${dependencyName}`, [], options);
|
|
||||||
let matchedPkgVersion = '';
|
|
||||||
const tagsType = packageDistTag.split('\n');
|
|
||||||
for (const tagType of tagsType) {
|
|
||||||
const tagSplit = tagType.split(':');
|
|
||||||
if (tagSplit[0].trim() === tag) {
|
|
||||||
matchedPkgVersion = tagSplit[1].trim();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
const metadata = await response.json();
|
||||||
|
|
||||||
const latestPkgToUpdate = availablePackages.find((pkg) => pkg.name === matchedPkgVersion);
|
const matchedPkgVersion = metadata['dist-tags']?.[tag];
|
||||||
|
const times = metadata.time || {};
|
||||||
|
|
||||||
if (localVersion === latestPkgToUpdate?.name) {
|
if (!matchedPkgVersion || localVersion === matchedPkgVersion) {
|
||||||
return { hasNewVersion: 'false' };
|
return { hasNewVersion: 'false' };
|
||||||
} else {
|
}
|
||||||
const findLocalVersionOnRemote = availablePackages.find((pkg) => pkg.name === localVersion);
|
|
||||||
let rangeInDays = 'N/A';
|
let rangeInDays = 'N/A';
|
||||||
if (findLocalVersionOnRemote !== undefined) {
|
if (times[localVersion] && times[matchedPkgVersion]) {
|
||||||
const creationLocal = new Date(findLocalVersionOnRemote.created_at);
|
rangeInDays = inDays(new Date(times[localVersion]), new Date(times[matchedPkgVersion]));
|
||||||
const creationLatest = new Date(latestPkgToUpdate.created_at);
|
|
||||||
rangeInDays = inDays(creationLocal, creationLatest);
|
|
||||||
}
|
|
||||||
return { hasNewVersion: 'true', remoteVersion: { name: latestPkgToUpdate?.name, rangeInDays }, localVersion };
|
|
||||||
}
|
}
|
||||||
|
return { hasNewVersion: 'true', remoteVersion: { name: matchedPkgVersion, rangeInDays }, localVersion };
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user