π GitHub Stats Visualization π
Generate regularly updated visualizations of personalized GitHub statistics. Filter by owner/organisation, repository, type, language, and more. Secure and private GraphQL and REST API-fetching using Actions and Secrets. Create a template (top-right green button) and follow instructions below for authorizing API-fetched user statistics.
A modification of
jstrieb/github-stats
visualizations
My Avg contributions mostly include uni projects, and exclude non-collab, minor roles (open-source, lead), etc
GitHub Statistics Term | Description |
---|---|
All-time GitHub contributions | Count of all contributions (as defined by GitHub) to any and all repositories any time for a given user |
Lines of code changes* | Sum of all code additions and deletions to all repositories contributed to for a user, measured by lines |
Avg contributions [weighted]* | Average code changes per collaborative repository for a user [weighted relative to contributor count] |
Repos contributed [% collab]* | Count of all repositories contributed to by a user [including percent in collaboration with others] |
Repo views (as of YYYY-MM-DD)* | Sum of views to all repositories since created, if owned, or contributed to (from a given date) |
Repo collaborators* | Sum of collaborator and contributor counts for all repositories contributed to or owned for a user |
Repo forks* | Sum of all-time fork counts for all repositories contributed to or owned for a user |
Repo stars* | Sum of all-time star counts for all repositories contributed to or owned for a user |
# [+#] Implemented Languages* | Listed [and hidden] percentages of implemented languages relative to sizes of files contributed to |
* Customisable as instructed in the π Options section below
Click drop-down to view step-by-step instructions for generating your own GitHub statistics visualizations
- Click either link to start generating your own GitHub statistic visualizations:
- Generate your own copy of this repository without the commit history
- Note: the first GitHub Actions workflow initiated at creation of the copied repository is expected to fail
- Fork a copy of this repository with the commit history configured to sync changes
- Note: this copies all branches including the
action_branch
with statistics, but this can be overwritten
- Note: this copies all branches including the
- Generate your own copy of this repository without the commit history
- Generate a personal access token by following these steps:
- If you are logged in, click this link to: generate a new "classic" token
- Otherwise, to learn how to generate a personal access token: read these instructions
- Ensure it is a "classic" token being generated and not a "fine-grained" token
- Name the token
- Select your preferred 'Expiration' date
- Select
repo
for 'Full control of private repositories' - Select
read:user
to 'Read only ALL user profile data' - Click the 'Generate token' button
- Copy the generated token - there is only one opportunity provided for this
- If you are logged in, click this link to: generate a new "classic" token
- Create a repository secret for the personal access token by following these steps:
- If this is your copy of the repository, click this link to: create a new secret
- Otherwise, go to repository Settings, click the Secrets option, then click New repository secret
- Name the new secret:
ACCESS_TOKEN
- Enter the generated personal access token as the 'Value'
- If this is your copy of the repository, click this link to: create a new secret
- Manually generate GitHub statistics visualizations:
- This can be done using any of the following two GitHub Actions workflows:
- For the first time, or to reset stored statistics (although this is done with every push to the main):
- Click the link to: go to the Generate Git Stats Images GitHub Actions workflow
This is required if the
actions_branch
branch is not created, as it is created when run - Otherwise, for updating generated statistics visualizations (although this is automatically done ):
- Click the link to: go to the Auto Update Stats Images GitHub Actions workflow
This requires the
actions_branch
branch to first be created with generated statistics visualizations
- For the first time, or to reset stored statistics (although this is done with every push to the main):
- With the GitHub Actions page open, click the 'Run workflow' dropdown menu button
- Select
Branch: main
from the 'Use workflow from' dropdown list - Click the 'Run workflow' button
- Note: this could take some time
- This can be done using any of the following two GitHub Actions workflows:
- Following the successful completion of a workflow, generated statistics visualizations can be viewed:
- In the
generated_images
directory in theactions_branch
branch with the following image links:
- In the
- To display the generated statistics, static URLs can be used for images that are updated weekly:
- For generated language statistics visualizations (replacing
<username>
with your GitHub username):

- For generated overview statistic visualizations (replacing
<username>
with your GitHub username):

- For generated language statistics visualizations (replacing
Click drop-down to view optional repository Secrets for customizing GitHub statistic visualizations
-
For excluding repositories from the generated statistic visualizations.
Instructions:
- enter Value in the following format (separated by commas):
[owner/repo],[owner/repo],...,[owner/repo]
- example:
jstrieb/github-stats,rahul-jha98/github-stats-transparent,idiotWu/stats
- enter Value in the following format (separated by commas):
-
For excluding repositories associated with (user/organisation) owners from the generated statistic visualizations.
Instructions:
- enter Value in the following format (separated by commas):
[owner],[owner],...,[owner]
- example:
R055A,University-Project-Repos
- enter Value in the following format (separated by commas):
-
For ONLY including repositories in the generated statistic visualizations
- such as when there are fewer repositories to include than to exclude
Instructions:
- enter Value in the following format (separated by commas):
[owner/repo],[owner/repo],...,[owner/repo]
- example:
R055A/GitStats,R055A/R055A
-
For ONLY including repositories associated with (user/organisation) owners in the generated statistic visualizations
- such as when there are fewer owners to include than to exclude
Instructions:
- enter Value in the following format (separated by commas):
[owner],[owner],...,[owner]
- example:
R055A,University-Project-Repos
-
For excluding undesired languages from being included in the generated statistic visualizations
Instructions:
- enter Value in the following format (separated by commas):
[language],[language],...,[language]
- example:
HTML,Jupyter Notebook,Makefile,Dockerfile
- enter Value in the following format (separated by commas):
-
For excluding any/all language statistics specific to a repository from being included in the generated visualizations
Instructions:
- enter Value in the following format (separated by commas):
[owner/repo--language...--language],[owner/repo--language...--language],...,[owner/repo--language...--language]
--language
denotes a language in the repository to be excluded from stats or exclude this for all repo languages
- example:
jstrieb/github-stats--python,rahul-jha98/github-stats-transparent,idiotWu/stats--python--shell
- enter Value in the following format (separated by commas):
-
Boolean option for including forked repositories in the generated statistic visualizations. These could repeat statistical calculations
false
by default
Instructions:
- enter Value in the following format:
<boolean>
- examples:
true
-
Boolean option for excluding non-owned repositories contributed to in the generated statistic visualizations
false
by default
Instructions:
- enter Value in the following format:
<boolean>
- examples:
true
-
Boolean option for excluding archived repositories in the generated statistic visualizations
false
by default
Instructions:
- enter Value in the following format:
<boolean>
- examples:
true
-
Boolean option for excluding private repositories in the generated statistic visualizations
- for when you want to keep those secrets locked away from prying eyes
false
by default
Instructions:
- enter Value in the following format:
<boolean>
- examples:
true
-
Boolean option for excluding public repositories in the generated statistic visualizations
false
by default
Instructions:
- enter Value in the following format:
<boolean>
- examples:
true
-
For including repositories that are otherwise not included in generated statistic visualizations when scraping by username
- such as repositories imported from, say, GitLab - hint: add emails used in imported repo commits to profile settings
Instructions:
- enter Value in the following format (separated by commas):
[owner/repo],[owner/repo],...,[owner/repo]
- example:
R055A/GitStats,R055A/R055A
-
For adding a constant value to the generated repository collaborators statistic
- such as for collaborators that are otherwise not represented
Instructions:
- enter Value in the following format:
<int>
- example:
4
-
For ONLY including collaborative repositories in the generated average contribution statistics calculations
- such as when there are fewer collaborative repositories to include than to exclude
Instructions:
- enter Value in the following format (separated by commas):
[owner/repo],[owner/repo],...,[owner/repo]
- example:
R055A/UniversityProject-A,R055A/UniversityProject-B
-
For ONLY including collaborative repositories associated with owner(s) in the generated average contribution statistics calculations
- such as when there are fewer collaborative repository owners to include than to exclude
Instructions:
- enter Value in the following format (separated by commas):
[owner],[owner],...,[owner]
- example:
R055A,University-Project-Repos
-
For excluding collaborative repositories from being included in the average contribution statistics calculations
- for example, such as for when
- contributions are made to a collaborative repo, but it is not one of your projects (open-source typo fix, etc)
- someone deletes and re-adds the entire codebase a few times too many
- your or someone else's performance is not fairly represented - missing data bias
- pirates, ninjas, etc.
Instructions:
- enter Value in the following format (separated by commas):
[owner/repo],[owner/repo],...,[owner/repo]
- example:
tera_open_source/bit_typo_fix,peer_repo/missing_or_no_git_co_author_credit,dude_collab/email_not_reg_on_github,dog_ate/my_repo,mars/attacks
- for example, such as for when
-
For excluding collaborative repositories associated with owner(s) from being included in the average contribution statistics calculations
Instructions:
- enter Value in the following format (separated by commas):
[owner],[owner],...,[owner]
- example:
R055A,University-Project-Repos
- enter Value in the following format (separated by commas):
-
For including collaborative repositories that are otherwise not included in the average contribution statistics calculations
- for example, such as when
- nobody even bothered to join the repository as a collaborator let alone contribute anything
- the repository is imported and because it is ghosted there are no other contributions and, thus, none of the other collaborators are represented in the scraping
Instructions:
- enter Value in the following format (separated by commas):
[owner/repo],[owner/repo],...,[owner/repo]
- example:
imported_ghosted/large_A+_collab_project,slave_trade/larger_A++_project
- for example, such as when
-
For including collaborative repositories associated with owner(s) that are otherwise not included in the average contribution statistics calculations
Instructions:
- enter Value in the following format (separated by commas):
[owner],[owner],...,[owner]
- example:
R055A,University-Project-Repos
- enter Value in the following format (separated by commas):
-
Boolean for storing generated repository view statistic visualization data beyond the 14 day-limit GitHub API allows
true
by default
Instructions:
- enter Value in the following format:
<boolean>
- examples:
false
-
For adding a constant value to the generated repository view statistics
- such as for when the stored data is reset or when importing stat data from elsewhere
- requires being removed within 14 days after the first workflow is run (with
LAST_VIEWED
) - requires corresponding
LAST_VIEWED
andFIRST_VIEWED
Secrets
Instructions:
- enter Value in the following format:
<int>
- example:
5000
-
For updating the date the generated repository view statistics data is added to storage from
- such as for when the stored data is reset or when importing stat data from elsewhere
- requires being removed within 14 days after the first workflow is run (with
REPO_VIEWS
) - may require corresponding
REPO_VIEWS
andFIRST_VIEWED
Secrets
Instructions:
- enter Value in the following format:
YYYY-MM-DD
- example:
2020-10-01
-
For updating the 'as of' date the generated repository view statistics data is stored from
- such as for when the stored data is reset or when importing stat data from elsewhere
- may require corresponding
REPO_VIEWS
andLAST_VIEWED
Secrets
Instructions:
- enter Value in the following format:
YYYY-MM-DD
- example:
2021-03-31
There are a few things you can do to support the project (and that it is extended from):
- β¨ Star this repository (and/or π star
jstrieb/github-stats
and π followjstrieb
for more) - π Report any bugs π, glitches, or errors that you find π§
- πΈ Spare a donation to a worthy cause π₯Ή