Skip to content

πŸ“˜ A Github Action that generates user's portfolio stats (Repositories and Gists). Perfect for profile readme customization!

License

Notifications You must be signed in to change notification settings

ArsenTech/creations-stats-workflow

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

Creations Stats

Creations Stats

A GitHub Action that generates the user's portfolio (creations) stats (Repositories and Gists). Perfect for profile readme customization!

Report bug Β Β·Β  Request Feature

Dependents version Contributors project_license Forks Stargazers

Issues build-status commits since latest release GitHub Created At GitHub repo size

Table of Contents
  1. About
  2. Usage
  3. Options
  4. Versioning
  5. Contributing
  6. Star History
  7. License

About

The Creations Stats GitHub action helps you retrieve the latest repository details (and Gists) and lets you manage and exclude specific repositories. That repo is perfect for a Workflow-rich GitHub profile Readme to showcase your creations.

Features

  • Exclusions - Exclude some GitHub repos from showing in the profile readme to make the list cleaner
  • Repository List Design - You can choose some designs based on your interest

Design Difference

Note

The repo-name and another-repo are basic repo name placeholders

Minimal Design

  • repo-name - ⭐ 5 - Useful repository description
  • another-repo - ⭐ 3 - Another useful repository description

Detailed Design

  • repo-name - Useful repository description
    • βš–οΈ MIT License
    • ⭐ Stargazers: 5
    • 🍴 Forks: 3
  • another-repo - Another useful repository description
    • βš–οΈ MIT License
    • ⭐ Stargazers: 3
    • 🍴 Forks: 1

Built With

  • Typescript
  • NodeJS
  • Github Actions
  • Dependabot
  • Octokit
  • YAML

Usage

Note

The default schedule above runs every 6 hours, which is suitable for most users. You can adjust the schedule based on the frequency:

  • cron: "0 6 * * *" (every 6 hours, recommended for most users)
  • cron: '0 0 * * *' (every day)
  • cron: '0 0 * * 0' (every week)
  • cron: '0 0 1 * *' (every month)

Running the workflow too frequently (e.g., hourly) may cause temporary rate limits by the GitHub API (powered using Octokit). You can always trigger the workflow manually using workflow_dispatch whenever needed.

  1. In your GitHub profile repository (repository with the same name as your username), add the following comment tags:
    ## Portfolio
    <!-- CREATIONS-START -->
    <!-- CREATIONS-END -->
  2. Create a directory: .github/workflows
  3. Create the workflow named creations.yml and use the following code:
    name: Creations workflow
    on:
    schedule: # Automatic run
    - cron: "0 6 * * *" # Runs every 6 hours
    workflow_dispatch: # Manual run from GitHub Actions Workflow page directly
    permissions:
      contents: write # Permission to write the generated contents
    
    jobs:
      update-portfolio:
        name: Update profile with recent repositories and gists
        runs-on: ubuntu-latest
        steps:
          - name: Checkout
            uses: actions/checkout@v4
    
          - name: Fetch portfolio from Github API
            uses: ArsenTech/creations-stats-workflow@v1.0.2
            with:
              github-username: <your-username>
              repo-list-design: detailed
  4. Replace <your-username> with your preferred GitHub username.
  5. Go to Repository Settings > Actions > General, then update the "Workflow permissions" to "Read and write permissions", then click on save.
  6. Wait for it to run automatically, or trigger it manually to see the result instantly.

Example: https://github.com/ArsenTech/creations-stats-workflow/blob/main/examples/final-version.yml

Options

This workflow has additional options for customization. The following is the list of available options:

Option Name Type Description Default Value Required
github-username String A Github username to show gists and Repositories no default value βœ…
exclusions String (with , as a separator) Repos to exclude from showing it no default value ❌
target-file String Target markdown file to place in the repo README.md ❌
repo-limit Number Limits how many repos to show 20 ❌
gist-limit Number Limits how many gists to show 10 ❌
show-archives Boolean Option to show archived Repositories false ❌
show-forks Boolean Option to show forked Repositories false ❌
commit-message String A custom commit message "Update repos and gists stats" ❌
repo-list-design minimal or detailed (Enum) Repository list item design type "minimal" ❌
repo-tag-name String A name of the custom comment tag for placing repositories "REPOS" ❌
gist-tag-name String A name of the custom comment tag for placing gists "GISTS" ❌

Versioning

This website follows Semantic Versioning. You can view the full Changelog for details on each website version.

Contributing

Contributions are Always Welcome! Please read both Code of Conduct and CONTRIBUTING.md before contributing.

Top Contributors

Top Contributors

Star History

Star History Chart

License

Distributed under the MIT License. See LICENSE.md for more information.

Support And Follow

YouTube Patreon Codepen DeviantArt Odysee Scratch

GitHub @ArsenTech Β Β·Β  YouTube @ArsenTech Β Β·Β  Patreon ArsenTech Β Β·Β  ArsenTech's Website