This GitHub Action creates a GitHub contribution calendar on a 3D profile image.
This action generate your github profile 3d contribute calendar and make a commit to your repo. You can also trigger action by yourself after add this action.
Create a repository on GitHub with the same name as your user name.
- e.g. If the user name is
octocat
, create a repository namedoctocat/octocat
. - ref. Managing your profile README
In this repository, do the following.
Create a workflow file like the one below.
.github/workflows/profile-3d.yml
The schedule is set to start once a day. Please correct the startup time to a convenient time.
name: GitHub-Profile-3D-Contrib
on:
schedule: # 03:00 JST == 18:00 UTC
- cron: "0 18 * * *"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
name: generate-github-profile-3d-contrib
steps:
- uses: actions/checkout@v4
- uses: yoshi389111/github-profile-3d-contrib@0.8.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
USERNAME: ${{ github.repository_owner }}
- name: Commit & Push
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add -A .
if git commit -m "generated"; then
git push
fi
Note: If you also want to include the private repository, register the "personal access token" in the repository and set it to GITHUB_TOKEN specified in the workflow file.
This will add the action to the repository.
GITHUB_TOKEN
: (required) access tokenUSERNAME
: (required) target user name (or specify with an argument).MAX_REPOS
: (optional) max repositories, default 100 - since ver. 0.2.0SETTING_JSON
: (optional) settings json file path. Seesample-settings/*.json
andsrc/type.ts
inyoshi389111/github-profile-3d-contrib
repository for details. - since ver. 0.6.0GITHUB_ENDPOINT
: (optional) Github GraphQL endpoint. e.g.https://github.mycompany.com/api/graphql
- since ver. 0.8.0YEAR
: (optional) For past calendars, specify the year. - since ver. 0.8.0
The secrets.GITHUB_TOKEN
set in the GITHUB_TOKEN
environment variable in the sample is a special access token automatically created by GitHub.
- GitHub Docs: Automatic token authentication
If you want to generate a contribution calendar for public repositories only, register this value. There is no need to create a secret manually.
Also, if you want to include activity in your private repositories in your contribution calendar, check "Include private contributions on my profile" in the "Profile settings" section of "Public profile" in your user settings.
Furthermore, if you want to aggregate language information from private repositories, create an access token with the appropriate permissions.
Register that access token as a secret with any name you like (For example, MY_PERSONAL_ACCESS_TOKEN
).
However, please note that user-created secrets cannot start with GITHUB_
.
- GitHub Docs: About secrets
Specify that secret in the GITHUB_TOKEN
environment variable.
env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GITHUB_TOKEN: ${{ secrets.MY_PERSONAL_ACCESS_TOKEN }}
USERNAME: ${{ github.repository_owner }}
In the sample, it is set to start at 18:00 UTC. This is because it will run at midnight JST, which is the author's local time.
on:
schedule: # 03:00 JST == 18:00 UTC
- cron: "0 18 * * *"
Feel free to change it to any time you like when actually using it. However, please note that it must be specified in UTC.
Launch the added action.
Actions
->GitHub-Profile-3D-Contrib
->Run workflow
The profile image is generated with the following paths.
profile-3d-contrib/profile-green-animate.svg
profile-3d-contrib/profile-green.svg
profile-3d-contrib/profile-season-animate.svg
profile-3d-contrib/profile-season.svg
profile-3d-contrib/profile-south-season-animate.svg
profile-3d-contrib/profile-south-season.svg
profile-3d-contrib/profile-night-view.svg
profile-3d-contrib/profile-night-green.svg
profile-3d-contrib/profile-night-rainbow.svg
profile-3d-contrib/profile-gitblock.svg
Alternatively, if SETTING_JSON
is specified, the following image will be generated.
profile-3d-contrib/profile-customize.svg
example: green version
example: season version (Northern Hemisphere.)
example: season version (Southern Hemisphere.)
example: night view version
example: night green version
example: night rainbow version
example: git block version
Add the path of the generated image to the readme file.
e.g.

Set the GITHUB_TOKEN
environment variable to the value of "personal access token".
export GITHUB_TOKEN=XXXXXXXXXXXXXXXXXXXXX
Run it with your GitHub user specified.
node_modules/.bin/ts-node src/index.ts USER_NAME
or
npm run build
node . USER_NAME
MIT License
(C) 2021 SATO, Yoshiyuki