Private repositories can now be fetched and mirrored
parent
09ef6f9c85
commit
d8d7c88496
12
src/index.js
12
src/index.js
|
@ -7,7 +7,8 @@ async function getGithubRepositories(username, token) {
|
||||||
const octokit = new Octokit({
|
const octokit = new Octokit({
|
||||||
auth: token || null,
|
auth: token || null,
|
||||||
});
|
});
|
||||||
return octokit.paginate('GET /users/:username/repos', { username: username })
|
|
||||||
|
return octokit.paginate('GET /search/repositories?q=user:{username}', { username : username })
|
||||||
.then(repositories => toRepositoryList(repositories));
|
.then(repositories => toRepositoryList(repositories));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,10 +36,11 @@ function isAlreadyMirroredOnGitea(repository, gitea, giteaUser) {
|
||||||
.catch(() => false);
|
.catch(() => false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function mirrorOnGitea(repository, gitea, giteaUser) {
|
function mirrorOnGitea(repository, gitea, giteaUser, githubToken) {
|
||||||
request.post(`${gitea.url}/api/v1/repos/migrate`)
|
request.post(`${gitea.url}/api/v1/repos/migrate`)
|
||||||
.set('Authorization', 'token ' + gitea.token)
|
.set('Authorization', 'token ' + gitea.token)
|
||||||
.send({
|
.send({
|
||||||
|
auth_token: githubToken,
|
||||||
clone_addr: repository.url,
|
clone_addr: repository.url,
|
||||||
mirror: true,
|
mirror: true,
|
||||||
repo_name: repository.name,
|
repo_name: repository.name,
|
||||||
|
@ -53,7 +55,7 @@ function mirrorOnGitea(repository, gitea, giteaUser) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function mirror(repository, gitea, giteaUser) {
|
async function mirror(repository, gitea, giteaUser, githubToken) {
|
||||||
if (await isAlreadyMirroredOnGitea(repository.name,
|
if (await isAlreadyMirroredOnGitea(repository.name,
|
||||||
gitea,
|
gitea,
|
||||||
giteaUser)) {
|
giteaUser)) {
|
||||||
|
@ -61,7 +63,7 @@ async function mirror(repository, gitea, giteaUser) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.log('Mirroring repository to gitea: ', repository.name);
|
console.log('Mirroring repository to gitea: ', repository.name);
|
||||||
await mirrorOnGitea(repository, gitea, giteaUser);
|
await mirrorOnGitea(repository, gitea, giteaUser, githubToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
@ -96,7 +98,7 @@ async function main() {
|
||||||
const queue = new PQueue({ concurrency: 4 });
|
const queue = new PQueue({ concurrency: 4 });
|
||||||
await queue.addAll(githubRepositories.map(repository => {
|
await queue.addAll(githubRepositories.map(repository => {
|
||||||
return async () => {
|
return async () => {
|
||||||
await mirror(repository, gitea, giteaUser);
|
await mirror(repository, gitea, giteaUser, githubToken);
|
||||||
};
|
};
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue