arnaucube
arnaucube/mirror-to-giteaPublic Self-hosted repository
send max 4 requests to Gitea concurrently
Jannis R mail@jannisr.de
Sun, 25 Oct 2020 21:11:35 +0100
commit

463c1967b462b6f27b9a95e6f15cd85fa3b5f32a

parent

8330f93a3da60c31aa086e9b67423f85127f50c5

2 files changed, 8 insertions(+), 5 deletions(-)

jump to
M package.json → package.json

@@ -19,6 +19,7 @@ },

"homepage": "https://github.com/jaedle/mirror-to-gitea#readme", "dependencies": { "@octokit/rest": "^16.2.0", + "p-queue": "^6.6.2", "superagent": "^4.0.0" } }
M src/index.js → src/index.js

@@ -1,5 +1,6 @@

const {Octokit} = require('@octokit/rest'); const request = require('superagent'); +const {default: PQueue} = require('p-queue'); async function getGithubRepositories(username, token) {

@@ -90,13 +91,14 @@ const gitea = {

url: giteaUrl, token: giteaToken, }; - const giteaUser = await getGiteaUser(gitea); - githubRepositories.forEach( - async repository => { + + const queue = new PQueue({ concurrency: 4 }); + await queue.addAll(githubRepositories.map(repository => { + return async () => { await mirror(repository, gitea, giteaUser); - } - ); + }; + })); } main();