grimoirelab icon indicating copy to clipboard operation
grimoirelab copied to clipboard

Analysis by GitHub Teams

Open GeorgLink opened this issue 6 years ago • 10 comments
trafficstars

Is there a way in GrimoireLab to filter contributors based on the GitHub teams they are a member of?

Relevant API call: https://developer.github.com/v3/teams/members/#get-team-membership

For example, I want to analyze and compare metrics by maintainers (team members) vs. non-maintainers.

Alternatively, I may have several teams in the GitHub organization because they have different permissions for different repositories (e.g., the D&I WG and Evolution WG teams in CHAOSS)

GeorgLink avatar Aug 29 '19 21:08 GeorgLink

At the moment Perceval doesn't fetch this data. To get it, the token should have read:org scope (something that should be taken into account if we decide to include team data).

This API is only available to authenticated members of the team's organization. OAuth access tokens require the read:org scope.

Generally, organization info is handled via SortingHat*, so I'm not sure whether it could be useful to (i) extend SortingHat DB to include the concept of teams, or (ii) just fetch this info for GitHub data.

(i) will probably require more time than (ii). In any case the inclusion of this feature requires changes on the whole Grimoirelab chain, thus collection, enrichment and visualizations, and if (i) is selected also identities management.

Please @sduenas share your thoughts.

*An overview of SortingHat is available here

valeriocos avatar Aug 30 '19 08:08 valeriocos

If option (i) and (ii) both allow to filter by team membership, then I'm okay with either.

GeorgLink avatar Aug 30 '19 15:08 GeorgLink

I spoke with @sduenas about this feature request. He agrees with how the data could be integrated with the data model. His biggest concern is around obtaining the information:

  • GitHub Team information may be private or hidden.

More details around how a community is using GitHub Teams can help identify how to get the information.

GeorgLink avatar Sep 05 '19 22:09 GeorgLink

A usecase for us: we, as a company, run an open source project and have a team of paid developers. Our paid developers (in our view) do not "count" in community health stats. We want to be able to exclude our development team for this purpose.

Right now I can individually filter out all the users that we don't want to see, but that's a bit of a pain.

nul800sebastiaan avatar Sep 24 '20 11:09 nul800sebastiaan

A usecase for us: we, as a company, run an open source project and have a team of paid developers. Our paid developers (in our view) do not "count" in community health stats. We want to be able to exclude our development team for this purpose.

Right now I can individually filter out all the users that we don't want to see, but that's a bit of a pain.

Good use case! We kept this in mind.

sduenas avatar Sep 24 '20 11:09 sduenas

@nul800sebastiaan, would it work for you to affiliate the paid contributors to a dedicated organization (e.g., "paid contributors") and in the filters you exclude everyone in that organization? It's a workaround until GitHub group information becomes available in GrimoireLab.

GeorgLink avatar Sep 24 '20 13:09 GeorgLink

Maybe... :-)

Just not sure how organizations get detected yet...

image

nul800sebastiaan avatar Sep 24 '20 13:09 nul800sebastiaan

The module responsible for organizational affiliation is SortingHat. The GUI is called Hatstall. It may not be set-up to auto-guess affiliations based on contributors' email-address domains. Beyond this rudimentary automation, it would be a manual process but for a small team that shouldn't be too time consuming.

GeorgLink avatar Sep 24 '20 19:09 GeorgLink

With the new SortingHat this is something that we could do. I was thinking that SortingHat can gather this data from GitHub and include it as teams on the database.

sduenas avatar Oct 27 '23 14:10 sduenas

That would be great!

GeorgLink avatar Oct 28 '23 16:10 GeorgLink