Skip to content

teoxoy/profile-readme-stats

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Profile Readme Stats

Showcase your github stats on your profile README.md.

This action provides template strings that are replaced with their respective values when the action runs.

Example: TEMPLATEREADME

Table of contents

Action Inputs

token

Required

Personal access token with read:user scope and optional repo scope

Generate token here: https://github.com/settings/tokens

Note: repo scope is needed for taking private repositories into account

template

Path to template file (default: ./TEMPLATE.md)

readme

Path to generated file (default: ./README.md)

includeForks

Include forked repositories when calculating the stats (default: false)

Template Strings

General

{{ ACCOUNT_AGE }}

Account age in years.

{{ ISSUES }}

Total number of opened issues across all repositories.

{{ PULL_REQUESTS }}

Total number of opened pull requests across all repositories.

{{ CODE_REVIEWS }}

Total number of pull requests reviewed across all repositories.

{{ COMMITS }}

Total number of commits across all repositories. Includes commits in private repositories only if you allowed github to show your private contributions on your profile (check out this link for more info).

{{ GISTS }}

Total number of public gists.

{{ REPOSITORIES }}

Total number of repositories. Includes private repositories if the given personal access token has repo scope (see more here).

{{ REPOSITORIES_CONTRIBUTED_TO }}

Total number of repositories you contributed to.

{{ STARS }}

Total number of stars on all your gists and repositories.

Languages

A region that will be repeated for every language you use in your repositories.

{{ LANGUAGE_TEMPLATE_START }}

Special template string that signifies the start of the region.

{{ LANGUAGE_NAME }}

Name of the language.

{{ LANGUAGE_PERCENT }}

How often the language is used in your repositories (percentage wise).

{{ LANGUAGE_COLOR }}

Color of the language (in CSS color format ex: #0248AC).

{{ LANGUAGE_TEMPLATE_END }}

Special template string that signifies the end of the region.

Extra Options

uri

Will encode the value as an URI component

Example:

{{ LANGUAGE_COLOR:uri }}

max

Can only be used with LANGUAGE_TEMPLATE_START

Will run the inner template at most max nr of times

Example:

{{ LANGUAGE_TEMPLATE_START:max=5 }}
This text will be printed at most 5 times
{{ LANGUAGE_TEMPLATE_END }}

Example Workflow

on:
  schedule:
    - cron: '0 */12 * * *' # every 12 hours
  push:
    branches:
      - master
      - main
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - name: Generate README.md
      uses: teoxoy/profile-readme-stats@v3
      with:
        token: ${{ secrets.USER_TOKEN }}
    - name: Update README.md
      run: |
        if [[ "$(git status --porcelain)" != "" ]]; then
        git config user.name github-actions[bot]
        git config user.email 41898282+github-actions[bot]@users.noreply.github.com
        git add .
        git commit -m "Update README"
        git push
        fi