gruntwork-io / git-xargs

git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.
https://blog.gruntwork.io/introducing-git-xargs-an-open-source-tool-to-update-multiple-github-repos-753f9f3675ec
Apache License 2.0
933 stars 63 forks source link

Implement buffered channel for pull requests #67

Closed zackproser closed 2 years ago

zackproser commented 2 years ago

Description

Fixes #59

This PR addresses #59 by implementing several new features and flags to help us respect GitHub's API rate limits when using git-xargs:

In addition, three new flags to assist with configuring your git-xargs jobs so that they do not trip GitHub rate limits:

TODOs

Please ensure all of these TODOs are completed before asking for a review.

Related Issues

rhoboat commented 2 years ago

Amazing that you have time to do this as well as everything else you're doing. I won't be able to test this locally, as I currently have no discretionary time, but the code looks good to me, as far as readability, naming, logic, etc.

zackproser commented 2 years ago

Thanks for the thorough review, @rhoboat! I'll get your changes in.

rhoboat commented 2 years ago

GitHub seems to have completely lost my review comments. I said something like:

LGTM! The addition of PRChan and processing using throttling makes a lot of sense!

One suggestion: it took me a little while to understand the overall logic flow. Maybe it makes sense to make a line diagram of how the processing works, where the delays, retries, and concurrency happen. Could help future-you too.

rhoboat commented 2 years ago

I left a review comment that again disappeared (thanks GH, ❤️). I said:

I left nits and some suggestions for code organization, which are up to you. This looks great! I'd love to see this merged.

zackproser commented 2 years ago

Thanks so much for the reviews! Going to merge this in now.

mkowaliszyn-coursera commented 2 years ago

Thanks so much for this!