I'm trying to build reporting around branches' relative histories, so that we can:
- See what branches have been merged to the upstream branch and can be removed
- See what branches have commits that need to be merged to the upstream branch
- See what branches need to be merged from upstream in order to avoid conflicts when merging to upstream
Basically I want the same ahead/behind info that's shown in the Web UI's Branches page for a repo, but I need to automate reporting on it for multiple repositories at once.
Right now I have a working process via:
- Get list of repos
- For each repo, get list of branches
- For each branch, get list of commits on that branch with ?exclude=<upstream> to see how many commits ahead it is
- For each branch, get list of commits on the upstream branch with ?exclude=<branch> to see how many commits behind it is
This works, but rapidly hits the 1k/hr rate limit on calls to the commits route, and it's horribly slow with more than a handful of repos & branches, and worse yet with multiple pages of commits as the paginated commits API does not provide a full result set count. I understand the rate limits, and for the performance on both ends I would much rather a cleaner way of doing this, but I can't find any other option anywhere in the SDK docs. Have I missed something?