[ACS-12108] Adapt fetching latest packages to new tokens (#5282)

This commit is contained in:
Michal Kinas
2026-07-10 14:42:49 +02:00
committed by GitHub
parent b9677ec6b6
commit 318a6ea43c
2 changed files with 14 additions and 35 deletions
-1
View File
@@ -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
+13 -33
View File
@@ -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 };
}; };