in desktop/scripts/lca/generate-third-party.ts [123:146]
async function loadLicense(dependency: Dependency, anonymous = false):
Promise<License> {
const { repoUrl = null } = dependency;
const repoName = getRepoName(repoUrl);
const licenseUrl = `https://api.github.com/repos/${repoName}/license`;
const headers: HeadersInit = anonymous ? {} :
{ Authorization: `token ${process.env.GH_TOKEN}` };
return fetch(licenseUrl, { headers }).then(async (res) => {
/** Will look up default license if cannot find a license */
if (!anonymous && res.status === 403) {
console.warn(`Access denied, retrying request anonymously. Url: ${licenseUrl}`);
return loadLicense(dependency, anonymous = true);
} else if (res.status >= 300 && res.status != 404) {
throw new Error(`Response status ${res.status} ${res.statusText} with url: ${licenseUrl}`);
} else if (res.status === 404) {
console.warn(`No license found for ${repoName}. Using default license ${dependency.licenseType} instead.`);
}
return await res.json();
}).catch((error) => {
console.error(`Error loading license for ${repoName}`, error);
process.exit(1);
});
}