HACKER Q&A
📣 patrickdevivo

How do you find the best contributors to help in a Git codebase?


I've been thinking recently about how to find the "experts" in a given git repository, in the form of this project: https://github.com/augmentable-dev/gitpert which has had some okay outputs in codebases I'm familiar with.

I'm wondering what others think of the underlying question (and the project too!)

Say you're new to a codebase but have identified an area you want to change, is there a way to use git history to figure out who's best to ask about it? Does the question matter all that much?

GitHub uses git-blame to figure out "suggested reviewers" for Pull Requests, which is a pretty awesome feature, and basically what I'm going for. I wonder if more detail/resolution is at all useful.


  👤 RossBencina Accepted Answer ✓
Your "answer" sounds like it has value, but I'm not sure your "question" is well framed.

I would expect actively maintained repos to have a preferred channel for seeking help and/or discussing changes (ticket system, mailing list, gitter chat, IRC, etc). I think you'd do best to use that channel even if your "expert" is not there. If the expert isn't making themselves available there's probably a reason. For example if people contact me privately about my FOSS projects I almost always direct them to use the preferred channel. Perhaps it's still useful to identify who those people are, even if you don't contact them (e.g. to read their commits, their blog, etc.)

On the other hand, if we're talking about forensic work on an inactive repo perhaps it makes sense to understand "who is who". Another use-case would be understanding who-is-who on a repo you have no intention of working on (think, investigating some algorithm details in Chromium).


👤 Jugurtha
>Say you're new to a codebase but have identified an area you want to change, is there a way to use git history to figure out who's best to ask about it? Does the question matter all that much?

Not really, because I'll discover it either on GitHub or GitLab and I'll open an issue, and the go to people tend to either manifest, or be tagged by curators.

I guess relevant indicators to look at for an individual:

Number of issues of a certain label.

Number of comments on issues of a certain label.

Most tagged persons for a certain tag (i.e: based on other contributors action of tagging, this is the go to person for X label).

Change of issue state (who closed an issue, what label was on that issue, is there a pattern).