{"id":29400763,"url":"https://github.com/built-fast/gh-clover-annotate","last_synced_at":"2026-05-20T07:39:49.380Z","repository":{"id":302998147,"uuid":"1014094380","full_name":"built-fast/gh-clover-annotate","owner":"built-fast","description":"gh-cli extension to parse PHPUnit/Pest clover.xml reports and annotate GitHub Actions results","archived":false,"fork":false,"pushed_at":"2025-07-05T03:52:58.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-05T04:38:55.731Z","etag":null,"topics":["gh-cli","gh-extension","pest","php","phpunit"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/built-fast.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2025-07-05T03:40:09.000Z","updated_at":"2025-07-05T03:57:15.000Z","dependencies_parsed_at":"2025-07-05T04:49:00.648Z","dependency_job_id":null,"html_url":"https://github.com/built-fast/gh-clover-annotate","commit_stats":null,"previous_names":["built-fast/gh-clover-annotate"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/built-fast/gh-clover-annotate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/built-fast%2Fgh-clover-annotate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/built-fast%2Fgh-clover-annotate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/built-fast%2Fgh-clover-annotate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/built-fast%2Fgh-clover-annotate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/built-fast","download_url":"https://codeload.github.com/built-fast/gh-clover-annotate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/built-fast%2Fgh-clover-annotate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33250375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-20T04:48:54.280Z","status":"ssl_error","status_checked_at":"2026-05-20T04:48:10.851Z","response_time":356,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["gh-cli","gh-extension","pest","php","phpunit"],"created_at":"2025-07-10T15:01:32.413Z","updated_at":"2026-05-20T07:39:49.344Z","avatar_url":"https://github.com/built-fast.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gh-clover-annotate\n\nThis is a GitHub CLI extension that allows you to annotate your\nPHP test coverage reports in GitHub Actions using the Clover XML format.\n\n## What?\n\nThis extension reads a Clover XML file (usually generated by PHPUnit or Pest)\nand annotates the GitHub Actions summary with the coverage report. It will\nproduce a table similar to the following:\n\n\u003e [!NOTE]\n\u003e  Code coverage is at 86.13%\n\n| Coverage | Total Statements | Covered Statements | File                                           |\n| -------- | ---------------- | ------------------ | ---------------------------------------------- |\n| 🟢 100%  | 15               | 15                 | app/Enums/UserRole.php                         |\n| 🟢 100%  | 15               | 15                 | app/Models/User.php                            |\n| 🟢 100%  | 1                | 1                  | app/Http/Controllers/Api/V1/PingController.php |\n\n## Installation\n\nAt BuiltFast, we like to run test coverage reports on-demand since it is\nslower than standard CI runs.\n\nWe commonly ship a `.github/workflows/coverage.yml` file with something like\nthis:\n\n```yaml\nname: Coverage\n\non:\n  workflow_dispatch:\n\njobs:\n  tests:\n    name: Run test suite with coverage\n\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v4\n\n      - name: Setup PHP\n        uses: shivammathur/setup-php@v2\n        with:\n          php-version: '8.3'\n          extensions: dom, curl, libxml, mbstring, zip, bcmath\n          ini-values: error_reporting=E_ALL\n          tools: composer:v2\n          coverage: xdebug\n\n      - name: Set GitHub Actions problem matchers\n        run: |\n          echo \"::add-matcher::${{ runner.tool_cache }}/php.json\"\n\n      - name: Get composer cache directory\n        id: composer-cache\n        run: |\n          echo \"dir=$(composer config cache-files-dir)\" \u003e\u003e \"$GITHUB_OUTPUT\"\n\n      - name: Cache composer dependencies\n        uses: actions/cache@v4\n        with:\n          path: ${{ steps.composer-cache.outputs.dir }}\n          key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}\n          restore-keys: ${{ runner.os }}-composer-\n\n      - name: Install dependencies\n        run: |\n          composer install -q --no-ansi --no-interaction --no-scripts --no-progress\n          npm ci\n\n      - name: Prepare the environment\n        run: |\n          cp .env.example .env\n\n      - name: Generate an application key\n        run: php artisan key:generate\n\n      - name: Run migrations\n        run: php artisan migrate --env=testing --force\n\n      - name: Run Pest testsuite with coverage\n        run: |\n          ./vendor/bin/pest --coverage-clover clover.xml --parallel\n\n      - name: Annotate coverage report\n        run: |\n          gh extension install built-fast/gh-clover-annotate\n          gh clover-annotate clover.xml \u003e\u003e \"$GITHUB_STEP_SUMMARY\"\n```\n\nThat allows us to go to the Actions tab on one of our repos and then click\nthe \"Run workflow\" button to run the test suite with coverage for a specific\nbranch.\n\n## License\n\nMIT License - see [`LICENSE`](./LICENSE) in this repo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuilt-fast%2Fgh-clover-annotate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuilt-fast%2Fgh-clover-annotate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuilt-fast%2Fgh-clover-annotate/lists"}