alfresco-ng2-components/scripts/github/update/useme-to-test-restokit.js
2024-07-23 10:26:26 +02:00

130 lines
3.5 KiB
JavaScript
Executable File

const { Octokit } = require('@octokit/rest');
const octokit = new Octokit({
auth: '',
userAgent: 'myApp v1.2.3',
baseUrl: 'https://api.github.com',
log: {
debug: () => {},
info: () => {},
warn: console.warn,
error: console.error
},
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);
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);
break;
} else {
level = 'minor';
packagesAffected.add(packageName);
}
}
if (level !== 'major') {
if (linesChanged > 100) {
level = 'major';
} else if (linesChanged > 50) {
level = 'medium';
}
}
if (level !== 'major') {
if (filesChanged > 10) {
level = 'major';
} else if (filesChanged > 5) {
level = 'medium';
}
}
return {
filesChanged,
linesChanged,
level: level,
packagesAffected: Array.from(packagesAffected)
};
}
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
// });
// // console.log(availablePakages[0])
// 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 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('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
// });
// 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();