{"id":13553280,"url":"https://github.com/VeryGoodOpenSource/very_good_coverage","last_synced_at":"2025-04-03T04:33:19.012Z","repository":{"id":37070849,"uuid":"305832576","full_name":"VeryGoodOpenSource/very_good_coverage","owner":"VeryGoodOpenSource","description":"GitHub Action which helps enforce code coverage threshold using lcov created by Very Good Ventures 🦄","archived":false,"fork":false,"pushed_at":"2025-03-21T21:08:05.000Z","size":2294,"stargazers_count":163,"open_issues_count":9,"forks_count":19,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-23T10:08:47.333Z","etag":null,"topics":["coverage","coverage-threshold","github-action","github-actions","lcov","test-coverage"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/VeryGoodOpenSource.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-20T21:01:10.000Z","updated_at":"2025-02-26T19:09:09.000Z","dependencies_parsed_at":"2024-01-16T01:01:22.104Z","dependency_job_id":"5cfd103c-9e07-403e-8b5f-769448569d75","html_url":"https://github.com/VeryGoodOpenSource/very_good_coverage","commit_stats":{"total_commits":177,"total_committers":7,"mean_commits":"25.285714285714285","dds":"0.22033898305084743","last_synced_commit":"cc418c54d88a27139133d6447b7364ef63747bd5"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":"actions/javascript-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeryGoodOpenSource%2Fvery_good_coverage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeryGoodOpenSource%2Fvery_good_coverage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeryGoodOpenSource%2Fvery_good_coverage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeryGoodOpenSource%2Fvery_good_coverage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VeryGoodOpenSource","download_url":"https://codeload.github.com/VeryGoodOpenSource/very_good_coverage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933373,"owners_count":20857055,"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","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":["coverage","coverage-threshold","github-action","github-actions","lcov","test-coverage"],"created_at":"2024-08-01T12:02:21.299Z","updated_at":"2025-04-03T04:33:19.007Z","avatar_url":"https://github.com/VeryGoodOpenSource.png","language":"JavaScript","readme":"# Very Good Coverage\n\n[![Very Good Ventures][logo_black]][very_good_ventures_link_light]\n[![Very Good Ventures][logo_white]][very_good_ventures_link_dark]\n\nDeveloped with 💙 by [Very Good Ventures][very_good_ventures_link] 🦄\n\n[![ci][ci_badge]][ci_badge_link]\n[![License: MIT][license_badge]][license_badge_link]\n\n---\n\nA GitHub Action which helps enforce a minimum code coverage threshold.\n\n## Inputs\n\nVery Good Coverage accepts the following configuration inputs:\n\n| Input name   | Description                                                                                                                                                                     | Default value           | Optional |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | -------- |\n| path         | The absolute path to the lcov.info file.                                                                                                                                        | `\"/coverage/lcov.info\"` | ✅       |\n| min_coverage | The minimum coverage percentage allowed. Must be a number between 0 and 100.                                                                                                    | `100`                   | ✅       |\n| exclude      | List of paths to exclude from the coverage report, separated by an empty space. Supports [globs](\u003chttps://en.wikipedia.org/wiki/Glob_(programming)\u003e) to describe file patterns. | `\"\"`                    | ✅       |\n\n## Example usage\n\n```yaml\nuses: VeryGoodOpenSource/very_good_coverage@v2\nwith:\n  path: '/coverage/lcov.info'\n  min_coverage: 95\n  exclude: '**/*_observer.dart **/change.dart'\n```\n\n## FAQs\n\n#### How can I avoid Very Good Coverage reporting an empty or non-existent coverage file?\n\n[Relevant issue](https://github.com/VeryGoodOpenSource/very_good_coverage/issues/167)\n\nA failure for non-existent coverage file can be resolved by setting the path input to match the location of the already generated lcov file.\n\n```yaml\nuses: VeryGoodOpenSource/very_good_coverage@v2\nwith:\n  path: 'my_project/coverage/lcov.info'\n```\n\nIf your generated lcov file is empty this might be because you have no test files or your tests are not generating any coverage data.\n\nIf you wish to always bypass these warnings, we recommend using a conditional statement in your workflow to avoid running the Very Good Coverage action when the lcov file is empty or non-existent.\n\nFor example, if your non-existent or empty coverage file is meant to be located at `/coverage/lcov.info` you may do:\n\n```yaml\n- name: Check for existing and non-empty coverage file\n  id: test_coverage_file\n  run: if [ -s \"/coverage/lcov.info\" ]; then echo \"result=true\" \u003e\u003e $GITHUB_OUTPUT ; else echo \"result=false\" \u003e\u003e $GITHUB_OUTPUT; fi\n- name: Very Good Coverage\n  if: steps.test_coverage_file.outputs.result == 'true'\n  uses: VeryGoodOpenSource/very_good_coverage@v2\n  with:\n    path: '/coverage/lcov.info'\n```\n\n#### Why is my input path not relative to the specified `working-directory`?\n\n[Relevant issue](https://github.com/VeryGoodOpenSource/very_good_coverage/issues/35)\n\nThe input path must be absolute. The specified working directory is ignored by the input path. This is because it is [not possible](https://github.com/actions/runner/issues/467) to access the working directory from an action. In other words, Very Good Coverage always runs from the root of your repository.\n\nFor example, if your working directory is `my_project` and your file is at `/my_project/coverage/lcov.info` you must do:\n\n```yaml\njobs:\n  build:\n    defaults:\n      run:\n        working-directory: my_project/\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - name: Very Good Coverage\n        uses: VeryGoodOpenSource/very_good_coverage@v2\n        with:\n          path: /my_project/coverage/lcov.info\n```\n\n[ci_badge]: https://github.com/VeryGoodOpenSource/very_good_coverage/workflows/ci/badge.svg\n[ci_badge_link]: https://github.com/VeryGoodOpenSource/very_good_coverage/actions\n[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[license_badge_link]: https://opensource.org/licenses/MIT\n[logo_black]: https://raw.githubusercontent.com/VGVentures/very_good_brand/main/styles/README/vgv_logo_black.png#gh-light-mode-only\n[logo_white]: https://raw.githubusercontent.com/VGVentures/very_good_brand/main/styles/README/vgv_logo_white.png#gh-dark-mode-onlyimages/vgv_logo_white.png#gh-dark-mode-only\n[very_good_ventures_link]: https://verygood.ventures\n[very_good_ventures_link_dark]: https://verygood.ventures#gh-dark-mode-only\n[very_good_ventures_link_light]: https://verygood.ventures#gh-light-mode-only\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVeryGoodOpenSource%2Fvery_good_coverage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVeryGoodOpenSource%2Fvery_good_coverage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVeryGoodOpenSource%2Fvery_good_coverage/lists"}