{"id":19180876,"url":"https://github.com/conormacbride/gh-serve","last_synced_at":"2026-04-20T03:35:12.137Z","repository":{"id":218462772,"uuid":"622375973","full_name":"ConorMacBride/gh-serve","owner":"ConorMacBride","description":"Serve GitHub Actions HTML artifacts locally 🌍","archived":false,"fork":false,"pushed_at":"2023-04-02T11:46:44.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-11T12:09:30.227Z","etag":null,"topics":["artifact","ci","gh-extension","github","github-actions","go","golang","html","web"],"latest_commit_sha":null,"homepage":"","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/ConorMacBride.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2023-04-01T23:19:57.000Z","updated_at":"2023-04-02T11:39:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"ca9bb7ce-0098-4900-88e9-2f495a06e753","html_url":"https://github.com/ConorMacBride/gh-serve","commit_stats":null,"previous_names":["conormacbride/gh-serve"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ConorMacBride/gh-serve","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConorMacBride%2Fgh-serve","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConorMacBride%2Fgh-serve/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConorMacBride%2Fgh-serve/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConorMacBride%2Fgh-serve/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ConorMacBride","download_url":"https://codeload.github.com/ConorMacBride/gh-serve/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConorMacBride%2Fgh-serve/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32031695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"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":["artifact","ci","gh-extension","github","github-actions","go","golang","html","web"],"created_at":"2024-11-09T10:51:34.015Z","updated_at":"2026-04-20T03:35:12.101Z","avatar_url":"https://github.com/ConorMacBride.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gh-serve\n\nServe GitHub Actions HTML artifacts locally 🌍\n\n**gh-serve** is a [GitHub CLI](https://cli.github.com) extension that finds GitHub Actions artifacts for the current PR, or branch, and serves them on a local web server.\nThis allows you to quickly preview HTML artifacts, such as CI test reports or documentation websites.\n\n## Installation\n\n```\ngh extension install ConorMacBride/gh-serve\n```\n\nUpgrade:\n\n```\ngh extension upgrade gh-serve\n```\n\n## Usage\n\nNavigate to a GitHub repository, and run:\n\n```\ngh serve\n```\n\nIt will find artifacts for GitHub Actions workflow runs for the latest commit to the current open PR, or branch.\nIf there are multiple artifacts, an interactive menu will appear, allowing you to select the one to serve.\nThe artifact will be hosted at `http://localhost:8080/`.\n\nAvailable flags:\n\n```text\n      --no-browser    don't open the artifact in your default browser\n      --no-cache      don't use cached artifacts\n      --port string   port to serve the artifact on (default \"8080\")\n  -h, --help          show help for command\n```\n\n## How it works\n\n1. 🔎 Finds GitHub Actions workflow runs for the current PR, or branch\n   - Only finds runs for the *latest* remote commit\n   - If the current branch has an open PR, prefer `pull_request` events\n2. 📝 Lists all the artifacts for the workflow runs\n   - Interactively select the artifact to serve, if there are multiple\n3. 💾 Downloads the artifact\n   - Caches in `\u003crepo-root\u003e/.cache/gh-serve/\u003crun-id\u003e/\u003cartifact-name\u003e/`\n   - Ignore cache with `--no-cache`\n4. 🌍 Serves the artifact on a local web server\n   - Default port is `8080`\n   - Change port with `--port \u003cport\u003e`\n5. 👀 Opens the artifact in your default browser\n   - Skip with `--no-browser`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconormacbride%2Fgh-serve","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconormacbride%2Fgh-serve","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconormacbride%2Fgh-serve/lists"}