Simulate breaking change 4

This commit is contained in:
mauriziovitale
2024-07-17 15:06:15 +02:00
parent ec62de3ea0
commit ad3ced0bed
4 changed files with 405 additions and 50 deletions

View File

@@ -1,7 +1,6 @@
const { Octokit } = require("@octokit/rest");
const { Octokit } = require('@octokit/rest');
const octokit = new Octokit({
auth: "",
auth: '',
userAgent: 'myApp v1.2.3',
baseUrl: 'https://api.github.com',
log: {
@@ -9,64 +8,122 @@ const octokit = new Octokit({
info: () => {},
warn: console.warn,
error: console.error
},
request: {
},
request: {
agent: undefined,
fetch: undefined,
timeout: 0
}
}
});
async function getPRDetails(owner, repo, pull_number) {
const { data: files } = await octokit.pulls.listFiles({
owner,
repo,
pull_number
});
let filesChanged = files.length;
let linesChanged = files.reduce((total, file) => total + file.additions + file.deletions, 0);
async function asyncCall() {
const organization = 'alfresco';
let level = 'unknown';
let packageName = 'unknown';
let packagesAffected = new Set();
for (let file of files) {
if (file.filename.startsWith('lib/core/')) {
if (file.filename.startsWith('lib/core/auth/')) {
level = 'extreme';
}
level = 'major';
packageName = 'core';
packagesAffected.add(packageName);
break;
} else if (file.filename.startsWith('lib/extensions/')) {
level = 'major';
packageName = 'extensions';
packagesAffected.add(packageName);
const { data: availablePakages } = await octokit.rest.packages.getAllPackageVersionsForPackageOwnedByOrg({
package_type: 'npm',
package_name: 'adf-core',
org: organization
});
break;
} else {
level = 'minor';
packagesAffected.add(packageName);
}
}
// console.log(availablePakages[0])
if (level !== 'major') {
if (linesChanged > 100) {
level = 'major';
} else if (linesChanged > 50) {
level = 'medium';
}
}
availablePakages.push({
id: 123,
name: '6.0.0-A.3',
metadata: { package_type: 'npm' }
})
availablePakages.push({
id: 222,
name: '6.0.1',
metadata: { package_type: 'npm' }
})
if (level !== 'major') {
if (filesChanged > 10) {
level = 'major';
} else if (filesChanged > 5) {
level = 'medium';
}
}
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]*$') )
console.log(filteredReleasePkgs)
return {
filesChanged,
linesChanged,
level: level,
packagesAffected: Array.from(packagesAffected)
};
}
// console.log('alpha')
// const filteredAlphaPkgs = availablePakages.filter( (item) => item.name.match('^[0-9]*\.[0-9]*\.[0-9]*.A\.[0-9]\.[0-9]*$') )
// console.log(filteredAlphaPkgs)
async function asyncCall() {
const organization = 'alfresco';
const owner = 'Alfresco';
const repo = 'alfresco-ng2-components';
const pull_number = '9957';
const changes = await getPRDetails(owner, repo, pull_number);
// const { data: availablePakages } = await octokit.rest.packages.getAllPackageVersionsForPackageOwnedByOrg({
// package_type: 'npm',
// package_name: 'adf-core',
// org: organization
// });
// const { data: info } = await octokit.rest.packages.getPackageForOrganization({
// package_type: 'npm',
// package_name: 'adf-core',
// org: organization
// });
// // console.log(availablePakages[0])
// console.log(info)
// availablePakages.push({
// id: 123,
// name: '6.0.0-A.3',
// metadata: { package_type: 'npm' }
// })
// availablePakages.push({
// id: 222,
// name: '6.0.1',
// metadata: { package_type: 'npm' }
// })
// const { data: infos } = await octokit.rest.packages.getPackageVersionForOrganization({
// package_type: 'npm',
// package_name: 'adf-core',
// org: organization,
// package_version_id: 85591610
// });
// 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]*$') )
// console.log(filteredReleasePkgs)
// console.log(infos)
}
// console.log('alpha')
// const filteredAlphaPkgs = availablePakages.filter( (item) => item.name.match('^[0-9]*\.[0-9]*\.[0-9]*.A\.[0-9]\.[0-9]*$') )
// console.log(filteredAlphaPkgs)
// const { data: info } = await octokit.rest.packages.getPackageForOrganization({
// package_type: 'npm',
// package_name: 'adf-core',
// org: organization
// });
asyncCall();
// console.log(info)
// const { data: infos } = await octokit.rest.packages.getPackageVersionForOrganization({
// package_type: 'npm',
// package_name: 'adf-core',
// org: organization,
// package_version_id: 85591610
// });
// console.log(infos)
}
asyncCall();