tracking-issue: Turn the tracking issue inside out
Created by: efritz
This is a rewrite to properly support nested tracking issues. Closes https://github.com/sourcegraph/sourcegraph/issues/14205.
We needed to change a lot about the API request and graph traversal logic to support this. Our previous API requests did not return the correct set of issues, and the graph traversal logic assumes some properties that aren't there in real cases.
Instead of loading tracking issues looking for the exact set of tags (which will skip tracking issues with a differing milestone or team/*
label), we find all of the term sets we need to search by (labels and milestones), then retrieve all issues and pull requests that match any one of those term sets. Each assignee's work section is rendered with all issues and pull requests available in the pool (not just the ones that exactly match the top-level tracking issue).
Previously, we rendered 'top-down' by saying: this issue belongs to the tracking issue, we'll render it recursively. This excludes being able to render RFC tracking issues with no team/*
label in a team milestone tracking issue, as it's missing one of the parent tracking issue's label. Instead, we find all of the "leaf" issues or pull requests, then determine the set of other tracking issues that it could belong to. We render bottom-up rather than top-down.
Before
Note: RFC 214 does not have a team label as it tags both the cloud and security teams so it doesn't match the parent tracking issue.
After
Note: There is no tracking issue for RFC 167.