act3
lets you glance at the results of the last 3 runs of your Github
Actions.
💾 Installation
homebrew:
brew install dhth/tap/act3
go:
go install github.com/dhth/act3@latest
Or get the binaries directly from a release. Read more about verifying the authenticity of released artifacts here.
🔑 Authentication
You can have act3
make authenticated calls to GitHub on your behalf in either
of two ways:
- Have an authenticated instance of gh available (recommended).
- Provide a valid Github token via
$GH_TOKEN
, which has the following permissions for the repos you want to query data for.actions:read
checks:read
⚡️ Usage
Basic Usage
By default, act3
will show results for the repository associated with the
current directory. Simply run act3
from the project root.
You can also specify a repository to fetch results for using the -r
flag.
act3 -r neovim/neovim
Specific Workflows
You can also fetch results for specific workflows using a config file, that looks like the following.
workflows:
- id: W_kwDOLkC0eM4FaKV_
repo: dhth/act3
name: build
url: https://asampleurl.com/{{runNumber}}
- id: W_kwDOLkC0eM4FaKWA
repo: dhth/act3
name: release
url: https://asampleurl.com/{{runNumber}}
- id: W_kwDOLb3Pms4FRxjX
repo: dhth/cueitup
name: build
url: https://dhth.github.io/cueitup
- id: W_kwDOLb3Pms4FRxjY
repo: dhth/cueitup
name: release
url: https://dhth.github.io/cueitup
- id: W_kwDOLghtl84FWTlZ
repo: dhth/ecsv
name: build
- id: W_kwDOLghtl84FWTla
repo: dhth/ecsv
name: release
{{runNumber}}
gets replaced with the actual run number of the workflow.
You can find the ID of a workflow as follows:
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <GH_TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/<OWNER>/<REPO>/actions/workflows
# or
gh api repos/<OWNER>/<REPO>/actions/workflows
# use node_id from the response
Tabular output
act3
can also output results in a tabular format.
act3 -f table
HTML output
act3
can also output the results in HTML format. You can also specify a
template using the -t
flag.
act3 -f html
The resultant HTML page looks like this.
A sample page generated via
act3
is running at https://dhth.github.io/act3, the source code for which is in the examples/html directory.
🔐 Verifying release artifacts
In case you get the act3
binary directly from a release, you may want to
verify its authenticity. Checksums are applied to all released artifacts, and
the resulting checksum file is signed using
cosign.
Steps to verify (replace x.y.z
in the commands listed below with the version
you want):
Download the following files from the release:
- act3_x.y.z_checksums.txt
- act3_x.y.z_checksums.txt.pem
- act3_x.y.z_checksums.txt.sig
Verify the signature:
cosign verify-blob act3_x.y.z_checksums.txt \ --certificate act3_x.y.z_checksums.txt.pem \ --signature act3_x.y.z_checksums.txt.sig \ --certificate-identity-regexp 'https://github\.com/dhth/act3/\.github/workflows/.+' \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com"
Download the compressed archive you want, and validate its checksum:
curl -sSLO https://github.com/dhth/act3/releases/download/vx.y.z/act3_x.y.z_linux_amd64.tar.gz sha256sum --ignore-missing -c act3_x.y.z_checksums.txt
If checksum validation goes through, uncompress the archive:
tar -xzf act3_x.y.z_linux_amd64.tar.gz ./act3 # profit!