Click/tap here to expand/collapse the developer table
Developers | ![]() |
|
---|---|---|
Developers: | @seanpm2001 | @jstrieb |
Click/tap here to expand/collapse the lead section
Generate visualizations of GitHub user and repository statistics with GitHub Actions. Visualizations can include data for both private repositories, and for repositories you have contributed to, but do not own.
Generated images automatically switch between GitHub light theme and GitHub dark theme.
Click/tap here to expand/collapse this section
- This project is a modified forked version by
@seanpm2001
- You can support the upstream development by
clicking/tapping here
- This project contains past archives of generated images. You can view them
here
- An SVG compilation is available
here
- Additionally, error logs are included. You can view them
here
- Data is divided into seasons. You can view them
here
- For additional information, you can read this projects documentation
here
Click/tap here to expand/collapse this section
When someone views a profile on GitHub, it is often because they are curious about a user's open source projects and contributions. Unfortunately, that user's stars, forks, and pinned repositories do not necessarily reflect the contributions they make to private repositories. The data likewise does not present a complete picture of the user's total contributions beyond the current year.
This project aims to collect a variety of profile and repository statistics using the GitHub API. It then generates images that can be displayed in repository READMEs, or in a user's Profile README.
Since the project runs on GitHub Actions, no server is required to regularly regenerate the images with updated statistics. Likewise, since the user runs the analysis code themselves via GitHub Actions, they can use their GitHub access token to collect statistics on private repositories that an external service would be unable to access.
Click/tap here to expand/collapse this section
If the project is used with an access token that has sufficient permissions to
read private repositories, it may leak details about those repositories in
error messages. For example, the aiohttp
libraryβused for asynchronous API
requestsβmay include the requested URL in exceptions, which can leak the name
of private repositories. If there is an exception caused by aiohttp
, this
exception will be viewable in the Actions tab of the repository fork, and
anyone may be able to see the name of one or more private repositories.
Due to some issues with the GitHub statistics API, there are some situations where it returns inaccurate results. Specifically, the repository view count statistics and total lines of code modified are probably somewhat inaccurate. Unexpectedly, these values will become more accurate over time as GitHub caches statistics for your repositories. Additionally, repositories that were last contributed to more than a year ago may not be included in the statistics due to limitations in the results returned by the API.
For more information on inaccuracies, see issue #2, #3, and #13.
Click/tap here to expand/collapse this section
- Create a personal access token (not the default GitHub Actions token) using
the instructions
here.
Personal access token must have permissions:
read:user
andrepo
. Copy the access token when it is generated β if you lose it, you will have to regenerate the token.- Some users are reporting that it can take a few minutes for the personal access token to work. For more, see #30.
- Create a copy of this repository by clicking here. Note: this is not the same as forking a copy because it copies everything fresh, without the huge commit history.
- Go to the "Secrets" page of your copy of the repository. If this is the README of your copy, click this link to go to the "Secrets" page. Otherwise, go to the "Settings" tab of the newly-created repository and go to the "Secrets" page (bottom left).
- Create a new secret with the name
ACCESS_TOKEN
and paste the copied personal access token as the value. - It is possible to change the type of statistics reported by adding other
repository secrets.
- To ignore certain repos, add them (in owner/name format e.g.,
jstrieb/github-stats
) separated by commas to a new secretβcreated as beforeβcalledEXCLUDED
. - To ignore certain languages, add them (separated by commas) to a new
secret called
EXCLUDED_LANGS
. For example, to exclude HTML and TeX you could set the value tohtml,tex
. - To show statistics only for "owned" repositories and not forks with
contributions, add an environment variable (under the
env
header in the main workflow) calledEXCLUDE_FORKED_REPOS
with a value oftrue
. - These other values are added as secrets by default to prevent leaking information about private repositories. If you're not worried about that, you can change the values directly in the Actions workflow itself.
- To ignore certain repos, add them (in owner/name format e.g.,
- Go to the Actions
Page and press "Run
Workflow" on the right side of the screen to generate images for the first
time.
- The images will be automatically regenerated every 24 hours, but they can be regenerated manually by running the workflow this way.
- Take a look at the images that have been created in the
generated
folder. - To add your statistics to your GitHub Profile README, copy and paste the
following lines of code into your markdown content. Change the
username
value to your GitHub username.![](https://raw.githubusercontent.com/username/github-stats/master/generated/overview.svg#gh-dark-mode-only) ![](https://raw.githubusercontent.com/username/github-stats/master/generated/overview.svg#gh-light-mode-only)
![](https://raw.githubusercontent.com/username/github-stats/master/generated/languages.svg#gh-dark-mode-only) ![](https://raw.githubusercontent.com/username/github-stats/master/generated/languages.svg#gh-light-mode-only)
- Link back to this repository so that others can generate their own statistics images.
- Star this repo if you like it!
Click/tap here to expand/collapse this section
There are a few things you can do to support the project:
- Star the repository (and follow me on GitHub for more)
- Share and upvote on sites like Twitter, Reddit, and Hacker News
- Report any bugs, glitches, or errors that you find
These things motivate me to to keep sharing what I build, and they provide validation that my work is appreciated! They also help me improve the project. Thanks in advance!
If you are insistent on spending money to show your support, I encourage you to instead make a generous donation to one of the following organizations. By advocating for Internet freedoms, organizations like these help me to feel comfortable releasing work publicly on the Web.
Click/tap here to expand/collapse this section
- Inspired by a desire to improve upon anuraghazra/github-readme-stats
- Makes use of GitHub Octicons to precisely match the GitHub UI
Click/tap here to expand/collapse this section
Forked from: jstrieb/github-stats
so the version may not be exact
SPM version: 5.0 (2022, Thursday, December 22nd at 7:56 pm PST)
File type: Markdown document (*.md *.mkd *.mdown *.markdown)
Line count (including blank lines and compiler line): 318
Current article language: English (USA)
Click/tap here to expand/collapse the version history for this project
SPM 2.0 (2022, Monday, June 13th at 2:48 pm PST)
This release was made by @seanpm2001
Changes
- Updated the title section
- Replaced the top image with my generated images
- Added a workflow status badge
- Added the
About this project
section - Minimized the installation section
- Added the file info section
- Added the file history section
- No other changes in version SPM 2.0
SPM 3.0 (2022, Sunday, December 18th at 8:25 pm PST)
This release was made by @seanpm2001
Changes
- Updated the title section
-
- Added a developer box
- Updated the description on my modifications
- Updated the file info section
- Updated the file history section
- No other changes in version SPM 3.0
SPM 4.0 (2022, Wednesday, December 21st at 5:28 pm PST)
This release was made by @seanpm2001
Changes
- Updated the title section to merge the 2 project names into 1 heading
- Updated the description on my modifications
-
- Added a link to the docs
-
- Converted the section into a numbered list
- Updated the file info section
- Updated the line count
-
- Updated the version number
- Updated the file history section
-
- Made the majority of the section into a dropdown section
-
- Added an entry for version SPM 4.0
- No other changes in version SPM 4.0
SPM 5.0 (2022, Thursday, December 22nd at 7:56 pm PST)
This release was made by @seanpm2001
Changes
- Turned every section into a dropdowns section
- Unhid the installation section by default
- Updated the file info section
- Updated the line count
-
- Updated the version number
- Updated the file history section
-
- Added an entry for version SPM 5.0
- No other changes in version SPM 5.0