Skip to content
align-center

GitHub Action

github-profile-toolbox

v1.1.2 Latest version

🔧 GitHub Profile Toolbox

Use this GitHub action to display a stylish Markdown table on your GitHub profile that summarizes your skill set.

Example

Giving the following configuration passed as an input to the GitHub action:

tools:
  Language:
    - html5
    - css3
    - javascript
  Tools:
    - git
    - github
    - githubactions
  IDEs:
    - vscodium
    - jetbrains
    - neovim

; you would get the following output:

Language Tools IDEs
HTML5 Git VSCodium
CSS3 GitHub JetBrains
JavaScript GitHub Actions Neovim

Here is a real-life example.

Initial Setup

  • Add the comment <!-- START_SECTION:toolbox --><!-- STOP_SECTION:toolbox --> within README.md. You can find an example here.

  • Add the configuration file to your GitHub profile repository: .github/github-profile-toolbox.yaml

tools:
  Language:
    - html5
    - css3
    - javascript
  Tools:
    - git
    - github
    - githubactions
  IDEs:
    - vscodium
    - jetbrains
    - neovim
  • Add the following workflow file to your GitHub profile repository: .github/workflows/update-toolbox.yaml
name: Update Toolbox
on:
  push:
    branches: [ main ]
  workflow_dispatch:
jobs:
  update-toolbox:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
      - uses: alexandre-abrioux/github-profile-toolbox@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - uses: peter-evans/create-pull-request@v7
        with:
          commit-message: "docs(readme): update toolbox"
          title: "docs(readme): update toolbox"
          body: "Toolbox updated by [github-profile-toolbox](https://github.com/alexandre-abrioux/github-profile-toolbox) GitHub action"
          branch: patch/toolbox
          sign-commits: true
          reviewers: ${{ github.actor }}

You can find an example here.

  • In your GitHub profile repository, under "Settings > Actions > General > Workflow permissions", activate the option "Allow GitHub Actions to create and approve pull requests".

You're all set! Next time you push a commit on main, you should receive a pull request to update the toolbox section in your profile's README.

Configuration

List of tools

This GitHub action uses https://shields.io to generate icons in your profile's README, and shield.io uses https://simpleicons.org/ to provide logos for brands. You can find a list of all available brand names here: https://github.com/simple-icons/simple-icons/blob/develop/slugs.md. Use the Brand slug name to furnish your configuration file.

Custom tool

If the tool is not available on SimpleIcons or if you'd like to reference an existing tool with a custom label, you can do so with the following:

tools:
  IDEs:
    # VSCode is not available on SimpleIcons,
    # but you can still reference it without an icon:
    - label: VSCode
      color: "29a9f2"
    # You can also prepend the hex color with the hash symbol, this is valid:
    - label: VSCode
      color: "#29a9f2"
    # RustRover is not available on SimpleIcons,
    # but you could use JetBrains' icon with a custom label and color:
    - label: RustRover
      icon: jetbrains
      color: "34c97a"

GitHub Action Inputs

Use the following input parameters to override defaults and customize the action to your use case:

Input Param Description Default Value
config path to the YAML configuration file .github/github-profile-toolbox.yaml
readme path to the README file that should be modified README.md

For instance, if you which to place your configuration file somewhere else, use the following:

- uses: alexandre-abrioux/github-profile-toolbox@v1
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    config: "my-custom-path.yaml"

Contributing

I've bootstrapped this project on a Sunday to learn the basics of Rust. I'm by no means knowledgeable about the language so feel free to suggest things I could have done better! I'm open to contributions, although this will probably stay as a slow-maintained side project.