Cache GitHub pull requests to improve performance #329
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds caching of GitHub pull requests to improve performance during updating a stack.
Details
The logic to update a stack got moved around in #328. A result of this is that we now get the status of a stack, including PRs multiple times, when syncing a stack (not updating) - once when we show the output and once to perform the update itself. This is to make the interface simpler for updating a stack.
I'm planning to change the way the underlying update works soon to not need to get a full status as we don't need the ahead/behind between branches to perform the update, we just need details like remote tracking branch and whether it exists, as well as the GitHub PR for cases when the remote branch doesn't get deleted. We'll probably still load the data multiple times but won't use the full status.
To avoid multiple requests to GitHub for pull requests, have added a caching implementation that decorates the inner one.
Background