fix: paginaton needs to be more generic

Not every API is the same.
This commit is contained in:
2025-12-17 18:54:50 -08:00
parent bd1caf06bd
commit ac3a9d9e58
2 changed files with 73 additions and 4 deletions
+16
View File
@@ -47,10 +47,17 @@ if (uploadPath === "") {
const orgs = [ "nhcarrigan", "nhcarrigan-private", "nhcarrigan-games" ];
let totalReposProcessed = 0;
let totalReposSucceeded = 0;
let totalReposFailed = 0;
for (const org of orgs) {
console.log(`\n=== Fetching repositories for org: ${org} ===`);
const repos = await paginatedFetch<Array<Repository>>(`${giteaUrl}/api/v1/orgs/${org}/repos`, 100, { headers: { authorization: `Bearer ${giteaToken}` } });
console.log(`Found ${repos.length.toString()} repositories in ${org}`);
for (const repo of repos) {
totalReposProcessed = totalReposProcessed + 1;
console.log(`Checking if file exists in ${org}/${repo.name}`);
const fileResponse = await fetch(`${giteaUrl}/api/v1/repos/${org}/${repo.name}/contents/${uploadPath}`, {
headers: {
@@ -77,10 +84,12 @@ for (const org of orgs) {
method: "PUT",
});
if (!response.ok) {
totalReposFailed = totalReposFailed + 1;
console.error(`Failed to update ${fileName} in ${org}/${repo.name}: ${response.statusText}`);
console.error(await response.text());
continue;
}
totalReposSucceeded = totalReposSucceeded + 1;
console.log(`Updated ${fileName} in ${org}/${repo.name}`);
continue;
}
@@ -99,10 +108,17 @@ for (const org of orgs) {
method: "POST",
});
if (!response.ok) {
totalReposFailed = totalReposFailed + 1;
console.error(`Failed to upload ${fileName} to ${org}/${repo.name}: ${response.statusText}`);
console.error(await response.text());
continue;
}
totalReposSucceeded = totalReposSucceeded + 1;
console.log(`Uploaded ${fileName} to ${org}/${repo.name}`);
}
}
console.log(`\n=== Summary ===`);
console.log(`Total repositories processed: ${totalReposProcessed.toString()}`);
console.log(`Successfully uploaded/updated: ${totalReposSucceeded.toString()}`);
console.log(`Failed: ${totalReposFailed.toString()}`);