All Projects → jstrieb → Github Stats

jstrieb / Github Stats

Licence: gpl-3.0
Better GitHub statistics images for your profile, no external server required

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Projects that are alternatives of or similar to Github Stats

Community User Profile
👨‍💻 Profile page, but for developers.
Stars: ✭ 32 (-90.53%)
Mutual labels:  github-api, profile
Metrics
📊 An infographics generator with 30+ plugins and 200+ options to display stats about your GitHub account and render them as SVG, Markdown, PDF or JSON!
Stars: ✭ 4,621 (+1267.16%)
Mutual labels:  github-api, profile
Gitwar
🚀 Gitwar - Compete with Github
Stars: ✭ 44 (-86.98%)
Mutual labels:  github-api, profile
Example Hftish
Example Order Book Imbalance Algorithm
Stars: ✭ 355 (+5.03%)
Mutual labels:  async, asyncio
Aiologger
Asynchronous logging for python and asyncio
Stars: ✭ 284 (-15.98%)
Mutual labels:  async, asyncio
Yappi
Yet Another Python Profiler, but this time thread&coroutine&greenlet aware.
Stars: ✭ 595 (+76.04%)
Mutual labels:  profile, asyncio
Contributions.taminomartinius.de
Website to display a bunch of different commit statistics fetched by GitHub GraphQL API
Stars: ✭ 125 (-63.02%)
Mutual labels:  github-api, statistics
Pyee
A port of Node.js's EventEmitter to python
Stars: ✭ 236 (-30.18%)
Mutual labels:  async, asyncio
Repository Hunter
🌹 Making GitHub more socially engaging 🎮 and fun 🍥 for all
Stars: ✭ 273 (-19.23%)
Mutual labels:  github-api, profile
Example Scalping
A working example algorithm for scalping strategy trading multiple stocks concurrently using python asyncio
Stars: ✭ 267 (-21.01%)
Mutual labels:  async, asyncio
Vmprof Python
vmprof - a statistical program profiler
Stars: ✭ 395 (+16.86%)
Mutual labels:  profile, statistics
Async Techniques Python Course
Async Techniques and Examples in Python Course
Stars: ✭ 314 (-7.1%)
Mutual labels:  async, asyncio
Uvicorn Gunicorn Docker
Docker image with Uvicorn managed by Gunicorn for high-performance web applications in Python 3.6 with performance auto-tuning. Optionally with Alpine Linux.
Stars: ✭ 244 (-27.81%)
Mutual labels:  async, asyncio
Github Repo Size
🚀 Chrome extension to display repository size on GitHub
Stars: ✭ 859 (+154.14%)
Mutual labels:  github-api, statistics
Odmantic
Async ODM (Object Document Mapper) for MongoDB based on python type hints
Stars: ✭ 240 (-28.99%)
Mutual labels:  async, asyncio
Github Traffic
Get the Github traffic for the specified repository
Stars: ✭ 77 (-77.22%)
Mutual labels:  github-api, statistics
Arsenic
Async WebDriver implementation for asyncio and asyncio-compatible frameworks
Stars: ✭ 209 (-38.17%)
Mutual labels:  async, asyncio
Aioreactive
Async/await reactive tools for Python 3.9+
Stars: ✭ 215 (-36.39%)
Mutual labels:  async, asyncio
Aiowebsocket
Async WebSocket Client. Advantage: Flexible Lighter and Faster
Stars: ✭ 263 (-22.19%)
Mutual labels:  async, asyncio
Sqlalchemy aio
Asyncio strategy for SQLAlchemy.
Stars: ✭ 299 (-11.54%)
Mutual labels:  async, asyncio

GitHub Stats Visualization

Generate visualizations of GitHub user and repository statistics using GitHub Actions.

This project is currently a work-in-progress; there will always be more interesting stats to display.

Background

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.

Disclaimer

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.

Installation

  1. Create a personal access token (not the default GitHub Actions token) using the instructions here. Personal access token must have permissions: read:user and repo. Copy the access token when it is generated – if you lose it, you will have to regenerate the token.
  2. Click here to create a copy of this repository. Note: this is not the same as forking a copy because it copies everything fresh, without the huge commit history.
  3. If this is the README of your fork, 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).
  4. Create a new secret with the name ACCESS_TOKEN and paste the copied personal access token as the value.
  5. It is possible to change the type of statistics reported.
    • 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—called EXCLUDED.
    • To ignore certain languages, add them (separated by commas) to a new secret called EXCLUDED_LANGS.
    • To show statistics only for "owned" repositories and not forks with contributions, add an environment variable (under the env header in the main workflow) called EXCLUDE_FORKED_REPOS with a value of true.
  6. 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 periodically generated every hour, but they can be manually regenerated by manually running the workflow.
  7. Check out the images that have been created in the generated folder.
  8. Link back to this repository so that others can generate their own statistics images.
  9. Star this repo if you like it!

Related Projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].