{"id":13474396,"url":"https://github.com/yoshi389111/github-profile-3d-contrib","last_synced_at":"2026-10-19T11:13:22.011Z","repository":{"id":39376031,"uuid":"365531235","full_name":"yoshi389111/github-profile-3d-contrib","owner":"yoshi389111","description":"This GitHub Action creates a GitHub contribution calendar on a 3D profile image.","archived":false,"fork":false,"pushed_at":"2026-10-12T01:18:50.000Z","size":31892,"stargazers_count":1772,"open_issues_count":11,"forks_count":361,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-10-13T17:59:57.798Z","etag":null,"topics":["github-action","github-contribution-graph","github-contributions","github-profile","github-profile-readme","profile-readme","readme-generator","svg-image"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yoshi389111.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGE_LOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-05-08T14:12:59.000Z","updated_at":"2026-10-13T11:14:25.000Z","dependencies_parsed_at":"2024-01-14T08:09:42.185Z","dependency_job_id":"5262f445-c668-4dcd-ad0b-b961abdb76b2","html_url":"https://github.com/yoshi389111/github-profile-3d-contrib","commit_stats":{"total_commits":125,"total_committers":5,"mean_commits":25.0,"dds":0.04800000000000004,"last_synced_commit":"6698930b81f5fcc3b6e92fbc5501b9b648f068bc"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/yoshi389111/github-profile-3d-contrib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshi389111%2Fgithub-profile-3d-contrib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshi389111%2Fgithub-profile-3d-contrib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshi389111%2Fgithub-profile-3d-contrib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshi389111%2Fgithub-profile-3d-contrib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yoshi389111","download_url":"https://codeload.github.com/yoshi389111/github-profile-3d-contrib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshi389111%2Fgithub-profile-3d-contrib/sbom","scorecard":{"id":881301,"data":{"date":"2025-07-14","repo":{"name":"github.com/yoshi389111/github-profile-3d-contrib","commit":"2c17d6f5fa26ca542f70e39e9425ea3cd0a4237f"},"scorecard":{"version":"v5.2.1-18-gbb9c347d","commit":"bb9c347dff6349d986baab6578a46d68a5524c62"},"score":4.1,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 1/12 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":5,"reason":"6 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/latest-branch.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/yoshi389111/github-profile-3d-contrib/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/yoshi389111/github-profile-3d-contrib/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/latest-branch.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/yoshi389111/github-profile-3d-contrib/latest-branch.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/build.yml:16","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":3,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Info: 'branch protection settings apply to administrators' is required to merge on branch 'main'","Warn: could not determine whether codeowners review is allowed","Warn: no status checks found to merge onto branch 'main'","Warn: PRs are not required to make changes on branch 'main'; or we don't have data to detect it.If you think it might be the latter, make sure to run Scorecard with a PAT or use Repo Rules (that are always public) instead of Branch Protection settings"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T08:18:33.680Z","repository_id":39376031,"created_at":"2025-08-24T08:18:33.680Z","updated_at":"2025-08-24T08:18:33.680Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38355275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-action","github-contribution-graph","github-contributions","github-profile","github-profile-readme","profile-readme","readme-generator","svg-image"],"created_at":"2024-07-31T16:01:12.048Z","updated_at":"2026-10-19T11:13:22.003Z","avatar_url":"https://github.com/yoshi389111.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","others","🛠️ Widgets 👇","Widgets and Embeds"],"sub_categories":["Dynamic Badges"],"readme":"# GitHub Profile 3D Contrib\n\n![svg](https://raw.githubusercontent.com/yoshi389111/github-profile-3d-contrib/main/docs/demo/profile-gitblock.svg)\n\n\u003c!-- Language code order (except English) --\u003e\nEnglish (en) |\n[Deutsch (de)](docs/README.de.md) |\n[Español (es)](docs/README.es.md) |\n[Français (fr)](docs/README.fr.md) |\n[日本語 (ja)](docs/README.ja.md) |\n[한국어 (ko)](docs/README.ko.md) |\n[Português (pt-BR)](docs/README.pt-br.md) |\n[Português (pt)](docs/README.pt.md) |\n[Русский (ru)](docs/README.ru.md) |\n[简体中文 (zh-CN)](docs/README.zh-CN.md) |\n[繁體中文 (zh-TW)](docs/README.zh-TW.md) |\n\n\u003c!--\n\u003e [!NOTE]\n\u003e This translation was generated with machine translation.\n\u003e It may contain errors or unnatural expressions.\n\u003e Contributions to improve the translation are welcome!\n --\u003e\n\n## Overview\n\nThis GitHub Action creates a GitHub contribution calendar on a 3D profile image.\n\n## How to use (GitHub Actions) - Basic\n\nThis GitHub Action generates your github profile 3d contribution calendar and commits to your repo.\nAfter adding the GitHub Action, the workflow runs automatically once a day.\nYou can also trigger the workflow manually.\n\n### Step 1. Create special profile repository\n\nCreate a repository on GitHub with the same name as your username.\n\n- For example, if the username is `octocat`, create a repository named `octocat/octocat`.\n- See also: [Managing your profile README](https://docs.github.com/en/account-and-profile/how-tos/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme)\n\nIn this repository, follow the steps below.\n\n### Step 2. Create workflow file\n\nCreate a workflow file like the one below.\n\n- `.github/workflows/profile-3d.yml`\n\n```yaml:.github/workflows/profile-3d.yml\nname: GitHub-Profile-3D-Contrib\n\non:\n  schedule: # 03:00 JST == 18:00 UTC\n    - cron: \"0 18 * * *\"\n  workflow_dispatch:\n\npermissions:\n  contents: write\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    name: generate-github-profile-3d-contrib\n    steps:\n      - uses: actions/checkout@v5\n      - uses: yoshi389111/github-profile-3d-contrib@latest\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          USERNAME: ${{ github.repository_owner }}\n      - name: Commit \u0026 Push\n        run: |\n          git config user.name github-actions\n          git config user.email github-actions@github.com\n          git add -A .\n          if git commit -m \"generated\"; then\n            git push\n          fi\n```\n\n\u003e [!NOTE]\n\u003e You can change your GitHub settings to include contributions from private repositories. To change this setting, click `Contribution settings` in the top right of the standard contribution calendar, or click your icon in the top right of the screen, select `Settings` ⇒ `Public profile` ⇒ `Contributions \u0026 Activity`, and check `Include private contributions on my profile`.\n\u003e\n\u003e If you want to include additional activities from private repositories, register a personal access token as a secret and set it to the `GITHUB_TOKEN` environment variable in the workflow file. However, in most cases the default `secrets.GITHUB_TOKEN` is sufficient.\n\nThe schedule is set to run once a day by default.\nYou can change the scheduled time as you like.\n\nThis will add the workflow to your repository.\n\n#### Environment variables\n\nIn the sample, only `GITHUB_TOKEN` and `USERNAME` are specified as environment variables, but you can specify the following environment variables:\n\n- `GITHUB_TOKEN` : (required) access token\n- `USERNAME` : (required) target username (or specify with an argument).\n- `MAX_REPOS` : (optional) max repositories, default 100 - since ver. 0.2.0\n- `SETTING_JSON` : (optional) settings json file path. See `sample-settings/*.json` and `src/type.ts` in `yoshi389111/github-profile-3d-contrib` repository for details. - since ver. 0.6.0\n- `GITHUB_ENDPOINT` : (optional) Github GraphQL endpoint. For example, if you want to create a contribution calendar based on your company's GitHub Enterprise activity instead of GitHub.com, set this environment variable. e.g. `https://github.mycompany.com/api/graphql` - since ver. 0.8.0\n- `YEAR` : (optional) For past calendars, specify the year. This is intended to be specified when running the tool from the command line. - since ver. 0.8.0\n\n#### About `GITHUB_TOKEN`\n\nThe `secrets.GITHUB_TOKEN` set in the `GITHUB_TOKEN` environment variable in the sample is a special access token automatically created by GitHub.\n\n- GitHub Docs: [Use GITHUB_TOKEN for authentication in workflows](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token)\n\nIf you want to generate a contribution calendar for public repositories only, use this value.\nThere is no need to create a secret manually.\n\nAlso, 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 profile settings.\n\nFurthermore, if you want to include additional activity information from private repositories, create an access token with the appropriate permissions.\nRegister that access token as a secret with any name you like (For example, `MY_PERSONAL_ACCESS_TOKEN`).\nHowever, please note that user-created secrets cannot start with `GITHUB_`.\n\n- GitHub Docs: [Secrets](https://docs.github.com/en/actions/concepts/security/secrets)\n\nSet that secret as the value of the `GITHUB_TOKEN` environment variable.\n\n```diff\n          env:\n-           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n+           GITHUB_TOKEN: ${{ secrets.MY_PERSONAL_ACCESS_TOKEN }}\n            USERNAME: ${{ github.repository_owner }}\n```\n\n#### About the time to schedule\n\nIn the sample, it is set to start at 18:00 UTC.\nThis is because it will run at midnight JST, which is the author's local time.\n\n```yaml\non:\n  schedule: # 03:00 JST == 18:00 UTC\n    - cron: \"0 18 * * *\"\n```\n\nYou can change it to any time you like.\nWe recommend midnight (around 3am) your local time.\nHowever, please note that the time must be specified in UTC.\n\n### Step 3. Manually run this GitHub Action\n\nThe first time, run this workflow manually.\n\n- `Actions` -\u003e `GitHub-Profile-3D-Contrib` -\u003e `Run workflow`\n\nThe profile images are generated at the following paths:\n\n- `profile-3d-contrib/profile-green-animate.svg`\n- `profile-3d-contrib/profile-green.svg`\n- `profile-3d-contrib/profile-season-animate.svg`\n- `profile-3d-contrib/profile-season.svg`\n- `profile-3d-contrib/profile-south-season-animate.svg`\n- `profile-3d-contrib/profile-south-season.svg`\n- `profile-3d-contrib/profile-night-view.svg`\n- `profile-3d-contrib/profile-night-green.svg`\n- `profile-3d-contrib/profile-night-rainbow.svg`\n- `profile-3d-contrib/profile-gitblock.svg`\n\nIf you specify the `SETTING_JSON` environment variable without a `fileName` property in the json file, the following image will be generated:\n\n- `profile-3d-contrib/profile-customize.svg`\n\nYou can use these images in your README.md as shown below.\n\nExample: green version\n\n![svg](https://raw.githubusercontent.com/yoshi389111/github-profile-3d-contrib/main/docs/demo/profile-green-animate.svg)\n\nExample: season version (Northern Hemisphere.)\n\n![svg](https://raw.githubusercontent.com/yoshi389111/github-profile-3d-contrib/main/docs/demo/profile-season-animate.svg)\n\nExample: season version (Southern Hemisphere.)\n\n![svg](https://raw.githubusercontent.com/yoshi389111/github-profile-3d-contrib/main/docs/demo/profile-south-season-animate.svg)\n\nExample: night view version\n\n![svg](https://raw.githubusercontent.com/yoshi389111/github-profile-3d-contrib/main/docs/demo/profile-night-view.svg)\n\nExample: night green version\n\n![svg](https://raw.githubusercontent.com/yoshi389111/github-profile-3d-contrib/main/docs/demo/profile-night-green.svg)\n\nExample: night rainbow version\n\n![svg](https://raw.githubusercontent.com/yoshi389111/github-profile-3d-contrib/main/docs/demo/profile-night-rainbow.svg)\n\nExample: git block version\n\n![svg](https://raw.githubusercontent.com/yoshi389111/github-profile-3d-contrib/main/docs/demo/profile-gitblock.svg)\n\n### Step 4. Add image to README.md\n\nAdd the path to the generated image in your README file.\n\nExample:\n\n```md\n![](./profile-3d-contrib/profile-green-animate.svg)\n```\n\n## How to use (GitHub Actions) - Advanced examples\n\n- [More info in EXAMPLES.md](./EXAMPLES.md)\n\n## How to use (local)\n\nSet the `GITHUB_TOKEN` environment variable to your personal access token.\n\n```sh\nexport GITHUB_TOKEN=XXXXXXXXXXXXXXXXXXXXX\n```\n\nRun the following command, replacing `USER_NAME` with your GitHub username or the target username.\n\n```sh\nnode_modules/.bin/ts-node src/index.ts USER_NAME\n```\n\nor\n\n```sh\nnpm run build\nnode . USER_NAME\n```\n\n## License\n\n\u0026copy; 2021 SATO Yoshiyuki. Licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoshi389111%2Fgithub-profile-3d-contrib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoshi389111%2Fgithub-profile-3d-contrib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoshi389111%2Fgithub-profile-3d-contrib/lists"}