Closed marco-c closed 2 years ago
The API is simple to use, https://bugzilla.mozilla.org/rest/config/component_teams to have the full list of teams, https://bugzilla.mozilla.org/rest/config/component_teams/TEAM_NAME to have the list of components belonging to a given team.
There's also the possibility of components.team_name
as include_fields, like we do here: https://github.com/mozilla/bugbug/blob/5e8b43d345b320d1e5344376c3cb26b6e11a9255/bugbug/bugzilla.py#L327.
The problem is then the association from a team to a manager.
The problem is then the association from a team to a manager.
Perhaps we can use the *_round_robin.json files to map team to managers (using the "fallback" as the manager).
The problem is then the association from a team to a manager.
Perhaps we can use the *_round_robin.json files to map team to managers (using the "fallback" as the manager).
The team names in the Bugzilla API (https://bugzilla.mozilla.org/rest/config/component_teams) don't correspond to the teams in the round-robin
files. However, the component names as better matching (need some processing); thus, I think mapping the components is more straightforward.
[
"Accessibility",
"Bugzilla",
"Build & Code Quality",
"Compiler and Development Tools",
"Crypto",
"DevTools",
"DOM Core",
"DOM LWS",
"Frontend",
"GFX",
"Internationalization",
"Javascript",
"Layout",
"Low Level",
"Media",
"Mobile",
"Mozilla",
"Networking",
"OS Integration",
"Other",
"Performance",
"Pocket and User Journey",
"Privacy and Security",
"RelEng",
"Relops",
"Search and New Tab",
"Security Engineering",
"Security Infrastructure",
"Services",
"Telemetry",
"Web Extensions"
]
Another point, not all components are listed in the round-robin
files. A solution to handle the missed components can be by looking for the manager of sibling components since they always have the same manager.
{
"GFX": {
"Core": [
"Image Blocking",
"ImageLib",
"Canvas: 2D",
"Graphics",
"GFX: Color Management",
"Canvas: WebGL",
"Graphics: Layers",
"Graphics: Text",
"Graphics: WebRender",
"Web Painting",
"WebVR",
"Graphics: WebGPU"
]
}
}
We can cache the component managers (e.g., component_managers.json
) and then reuse the mapping in all tools that need it?
@marco-c WDYT?
We could do something easier: define a team_managers.json file, where we have a mapping from teams to managers. When we find a component with inactive/disabled owner (or no owner), we find the team corresponding to the component, and then the manager corresponding to the team.
Then, in the future in a follow-up, we make round-robin files not use components but teams (#1174), and use the team_managers.json file to find the "fallback".
We could do something easier: define a team_managers.json file, where we have a mapping from teams to managers. When we find a component with inactive/disabled owner (or no owner), we find the team corresponding to the component, and then the manager corresponding to the team.
Then, in the future in a follow-up, we make round-robin files not use components but teams (#1174), and use the team_managers.json file to find the "fallback".
Yes, it will be cleaner. We can proceed to find the "fallback" in one of two ways :
I think 1 will be more consistent with the future plan about #1174.
@marco-c WDYT?
Yep, 1 sounds better.
We could use the Bugzilla team mapping to find the right manager to nag.