RepoGraph makes use of the GitHub API to build a relationship graph over pull request and code review interactions. People who are frequently opening pull requests and people who are frequently providing pull request feedback are influential contributors to the codebase. When someone is requested for a code review, RepoGraph considers that signal that this person's insight and feedback is considered valuable.
RepoGraph helps you better understand these interactions that are happening in a GitHub repository. This is a tool built for technology enthusiasts that get a kick out of visualizing data.
With RepoGraph you can:
- Find silos of information
- Visualize team structures that have developed organically
- Find key contributors to a repository
- Quantify your own impact and influence over a repository
This tool is very much still in early stages of development. Please reach out to firstname.lastname@example.org if you have feature requests or general feedback!
To use repograph, you will need the following:
- The RepoGraph binary
- A GitHub Personal Access Token with the
- A GitHub repository that you'd like to visualize
Upon purchase of the product, you will receive an email that will allow you to download the RepoGraph binary.
Download the binary for your computer's operating system and architecture. On *nix based systems, you may need to add the execute permissions to the binary. For example:
chmod +x repograph_linux_amd64
Next, you can follow these instructions from GitHub to provision your personal access token. The only scope you need is
Once you have the binary and your token, you can now start to visualize repositories.
If you have the Paid Version of RepoGraph, you'll have access to the
-end-date flags as well that you can use to control exactly what time range you want to generate your graph with! You can pass these natural phrases to describe dates and RepoGraph will parse those and generate your graph accordingly. A few examples of valid inputs:
-start-date="2 weeks ago" -end-date="last monday"
-start-date="3 days ago" -end-date="4 hours ago"
-start-date="6 months ago"
-start-date="first week of february"
-start-date="first week of february" -end-date="second week of april"
-start-date="first week of march" -end-date="3 days ago"
Your browser will open to your new fully interactive RepoGraph visualization!
Frequently asked questions
Q: What was your goal in building this?
A: This was originally inspired by a peer of mine being worried that their type of work was not being valued highly in our organization. I hold this peer at the highest levels of respect and was curious about finding a way to visualize their level of influence in the organization, so that I could show them clearly that they were very influential and valuable to the organization.
Q: What data is actually being visualized?
A: RepoGraph uses the GitHub API to look at pull requests and their reviews, and building a directed graph with that information. RepoGraph uses the
PageRank algorithm (the original Google search engine algorithm) under the hood using the directed graph data to calculate levels of influence which is then visualized by the size of the spheres in the rendered graph. The free version of this application will cover the most recent 60 days worth of pull requests. The paid version will let you set arbitrary date ranges to visualize.
Q: What do the colors mean?
A: While the colors themselves will be mostly random, which color a node is does have significance. The color group that a sphere is in is dictated by its distance from the most influential member of the graph. The highest influence individual will be the only node of it's color. From there, there's an exponential decay function that colors nodes with influence scores differently based on how much decay there is from the highest influence node.
Q: What does the location for each node mean?
The rendered graph is a force graph that uses the different edge weights for placement. What this ultimately means is that individuals with high amounts of interactivity will actually be placed closely together in the 3D space. If you run this on a monorepo for an entire organization, you'll actually find that team structures will organically show up in the rendered graph. My teammates appear near me, and people I rarely interact with are further from my node. Sometimes you'll find that there are groups of people that work in their own entire island of nodes that don't connect to any of the major other contributors. This would identify silos of information, or people who only ever end up interacting among their own clique.
Q: Why is this a CLI tool? Why didn't you make it a website/GitHub app?
A: I specifically wanted the ownership of this tool to belong to the individuals. I'm not interested in trying to sell this to an organization, or have individuals convince their organization to install and potentially pay for this. This doubles as a deterrent for abuses of Goodhart's Law. This tool does not capture all the ways that someone can be considered influential. There are highly valuable people in organizations that may not be opening or reviewing many pull requests.
Q: Why don't you have a licensing model? Can I really just pay for this once and share it with friends?
A: Yep! It's a binary that I'm distributing. I don't pay for any hosting costs whatsoever. I think it's a useful tool that I've enjoyed seeing the results of. Buying the paid version is more just a way to gauge interest in the tool more than anything.
Lifetime, DRM-free access to the repograph CLI binaries and all future updates