A tool for making dashboard pages with all the badges from your Github Actions.
It works really well to as a generator for Github profiles (example: workflow yaml and resulting profile).
You will need to give it a personal access token (PAT) that has rights to all the repos. The standard GITHUB_TOKEN
for the action is limited to only its own repo.
This has to be a Personal Access Token (classic). If you are only doing public repos, you can give it just the single repo:public_repo
permission. If you are doing private repos, you need to give it the whole repo
permission.
I wasn't able to get a fine-grained token to work, though theoretically it should be possible.
Download the latest version from the Github Releases page
You can use gh auth token
to get working access token.
A sample command:
export GITHUB_TOKEN=$(gh auth token)
ghashboard --owners=google,spf13
Either as inputs for the Github Action or flags for the CLI.
Notes:
- either
owners
orrepos
is required. - either
public
orprivate
must be true
Name | Description |
---|---|
archived |
include archived repos? (default is false ) |
empty |
include repos with no workflows: useful if you have external badges (default is false ) |
exclude |
workflows to exclude (comma-separated list) |
externals |
external badges (list) to include. Note that these usually only work with public repos |
footer |
footer text |
forks |
include forked repos? |
format |
output format: csv , markdown or json . json is good for debugging. (default is markdown ) |
header |
header text |
inactive |
include inactive workflows? |
include |
workflows to include: others will be skipped (comma-separated list) |
log-level |
log level: debug , info , warn or error |
output |
output file to create (or - for stdout) |
owners |
list of owners (comma-separated list) |
private |
include private repos? |
public |
include public repos? |
repos |
list of repos (comma-separated list) |
skip |
exclude specific repos (use owner/name ) |
title |
title text |
token |
Github token: not absolutely required, but you will run into rate-limits without one |
It is pronounced (in an upper-crust accent) "gosh-board", not "gashboard" like some sort of horror flick.
Yes! Make a list outside of ghashboard in a file (one line per repo) and use --repos @repolist.txt
. You can build a list with the gh CLI. For example: gh repo list --json nameWithOwner --jq '.[].nameWithOwner'
.
The page needs to be hosted on Github: otherwise the Github doesn't know who you are and that you have the necessary rights.
See run.sh
for how I run it during development.
Contributions welcome!
- GoReleaser - packaging for release
- Steve Francia - viper
- Steve Francia - cobra
- See
go.mod
for other golang modules used - jq - JSON manipulation
- cb - clipboard utility