{"id":14248608,"url":"https://github.com/dhth/act3","last_synced_at":"2025-08-18T09:30:49.787Z","repository":{"id":229920429,"uuid":"775992440","full_name":"dhth/act3","owner":"dhth","description":"Glance at the last 3 runs of your GitHub Actions workflows","archived":false,"fork":false,"pushed_at":"2025-08-11T22:40:59.000Z","size":1247,"stargazers_count":38,"open_issues_count":3,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-12T00:23:46.724Z","etag":null,"topics":["github-actions"],"latest_commit_sha":null,"homepage":"https://tools.dhruvs.space/act3","language":"Go","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/dhth.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2024-03-22T13:12:57.000Z","updated_at":"2025-08-11T22:41:01.000Z","dependencies_parsed_at":"2024-03-27T00:24:12.918Z","dependency_job_id":"d0999743-f25a-42cc-bf7e-9a93da7729c5","html_url":"https://github.com/dhth/act3","commit_stats":null,"previous_names":["dhth/act3"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/dhth/act3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fact3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fact3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fact3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fact3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhth","download_url":"https://codeload.github.com/dhth/act3/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fact3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270973078,"owners_count":24678027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"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-actions"],"created_at":"2024-08-22T00:00:49.591Z","updated_at":"2025-08-18T09:30:49.780Z","avatar_url":"https://github.com/dhth.png","language":"Go","funding_links":[],"categories":["\u003ca name=\"monitor\"\u003e\u003c/a\u003eSystem monitoring","Table of Contents"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eact3\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/dhth/act3/actions/workflows/main.yml\"\u003e\u003cimg alt=\"Build Status\" src=\"https://img.shields.io/github/actions/workflow/status/dhth/act3/main.yml?style=flat-square\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/dhth/act3/actions/workflows/vulncheck.yml\"\u003e\u003cimg alt=\"Vulnerability Check\" src=\"https://img.shields.io/github/actions/workflow/status/dhth/act3/vulncheck.yml?style=flat-square\u0026label=vulncheck\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/dhth/act3/releases/latest\"\u003e\u003cimg alt=\"Latest release\" src=\"https://img.shields.io/github/release/dhth/act3.svg?style=flat-square\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/dhth/act3/releases/latest\"\u003e\u003cimg alt=\"Commits since latest release\" src=\"https://img.shields.io/github/commits-since/dhth/act3/latest?style=flat-square\"\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\nGlance at the results of the last 3 runs of your Github Actions.\n\n\u003e Want to see a demo before you read the rest of the documentation?\n\u003e View `act3` in action [here][3].\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://tools.dhruvs.space/images/act3/act3-1.png\" alt=\"Usage\" /\u003e\n\u003c/p\u003e\n\n💾 Installation\n---\n\n**homebrew**:\n\n```sh\nbrew install dhth/tap/act3\n```\n\n**go**:\n\n```sh\ngo install github.com/dhth/act3@latest\n```\n\nOr get the binary directly from a [release][2]. Read more about verifying the\nauthenticity of released artifacts [here](#-verifying-release-artifacts).\n\n🔑 Authentication\n---\n\nYou can have `act3` make authenticated calls to GitHub on your behalf in either\nof two ways:\n\n- Have an authenticated instance of [gh](https://github.com/cli/cli) available\n    (recommended).\n- Provide a valid Github token via `$GH_TOKEN`, which has the following\n    permissions for the repos you want to query data for.\n    - `actions:read`\n    - `checks:read`\n\n⚡️ Usage\n---\n\n### Basic Usage\n\n```text\nUsage:\n  act3 [flags]\n  act3 [command]\n\nAvailable Commands:\n  config      Interact with act3's config\n  help        Help about any command\n\nFlags:\n  -c, --config-path string            location of act3's config file (default \"/Users/user/Library/Application Support/act3/act3.yml\")\n  -f, --format string                 output format to use; possible values: default, table, html (default \"default\")\n  -g, --global                        whether to use workflows defined globally via the config file\n  -h, --help                          help for act3\n      --html-template-path string     path of the HTML template file to use\n      --html-title string             title to use in the HTML output (default \"act3\")\n  -o, --open-failed                   whether to open failed workflows\n  -r, --repos strings                 repos to fetch workflows for, in the format \"owner/repo\"\n  -n, --workflow-name-filter string   regex expression to filter workflows by name\n```\n\nBy default, `act3` will show results for the repository associated with the\ncurrent directory. Simply run `act3` from the project root.\n\nYou can also specify a list of repositories to fetch results for using the `-r`\nflag.\n\n```bash\nact3 -r dhth/act3,dhth/bmm\n```\n\n### Specific Workflows\n\nYou can also fetch results for specific workflows using a config file, that\nlooks like the following. Run `act3 -h` to view the default location where\n`act3` looks for this config file.\n\n```yaml\nworkflows:\n- id: W_kwDOLkC0eM4FaKV_\n  repo: dhth/act3\n  name: build\n- id: W_kwDOLb3Pms4FRxjX\n  repo: dhth/cueitup\n  name: build\n  key: cueitup-release  # optional\n- id: W_kwDOLb3Pms4FRxjY\n  repo: dhth/cueitup\n  name: release\n  url: https://asampleurl.com/{{runNumber}} # optional\n```\n\n`{{runNumber}}` gets replaced with the actual run number of the workflow.\n\nYou can generate this configuration using `act3` itself.\n\n```bash\nUsage:\n  act3 config gen [flags]\n\nFlags:\n  -h, --help                          help for gen\n  -r, --repos strings                 repos to generate the config for, in the format \"owner/repo\"\n  -n, --workflow-name-filter string   regex expression to filter workflows by name\n```\n\n### Tabular output\n\n`act3` can also output results in a tabular format.\n\n```bash\nact3 -f table\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://tools.dhruvs.space/images/act3/act3-2.png\" alt=\"Usage\" /\u003e\n\u003c/p\u003e\n\n### HTML output\n\n`act3` can also output results in HTML format. You can also specify a template\nusing the `-t` flag (refer to\n[./internal/ui/assets/template.html](./internal/ui/assets/template.html) for the\ndefault template.)\n\n```bash\nact3 -f html\n```\n\nThe resultant HTML page looks like this.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://tools.dhruvs.space/images/act3/act3-html-1.png\" alt=\"Usage\" /\u003e\n\u003c/p\u003e\n\n\u003e You can see this in action [here][3].\n\n🔐 Verifying release artifacts\n---\n\nIn case you get the `act3` binary directly from a [release][2], you may want to\nverify its authenticity. Checksums are applied to all released artifacts, and\nthe resulting checksum file is signed using\n[cosign](https://docs.sigstore.dev/cosign/installation/).\n\nSteps to verify (replace `x.y.z` in the commands listed below with the version\nyou want):\n\n1. Download the following files from the release:\n\n   - act3_x.y.z_checksums.txt\n   - act3_x.y.z_checksums.txt.pem\n   - act3_x.y.z_checksums.txt.sig\n\n2. Verify the signature:\n\n   ```shell\n   cosign verify-blob act3_x.y.z_checksums.txt \\\n       --certificate act3_x.y.z_checksums.txt.pem \\\n       --signature act3_x.y.z_checksums.txt.sig \\\n       --certificate-identity-regexp 'https://github\\.com/dhth/act3/\\.github/workflows/.+' \\\n       --certificate-oidc-issuer \"https://token.actions.githubusercontent.com\"\n   ```\n\n3. Download the compressed archive you want, and validate its checksum:\n\n   ```shell\n   curl -sSLO https://github.com/dhth/act3/releases/download/vx.y.z/act3_x.y.z_linux_amd64.tar.gz\n   sha256sum --ignore-missing -c act3_x.y.z_checksums.txt\n   ```\n\n3. If checksum validation goes through, uncompress the archive:\n\n   ```shell\n   tar -xzf act3_x.y.z_linux_amd64.tar.gz\n   ./act3\n   # profit!\n   ```\n\n[2]: https://github.com/dhth/act3/releases\n[3]: https://dhth.github.io/act3-runner\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhth%2Fact3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhth%2Fact3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhth%2Fact3/lists"}