{"id":21612251,"url":"https://github.com/anapsix/coverage-tracker","last_synced_at":"2025-08-16T18:09:49.749Z","repository":{"id":39700901,"uuid":"154322257","full_name":"anapsix/coverage-tracker","owner":"anapsix","description":"Naive coverage-tracker, with Redis backend, returns Shields.io badges","archived":false,"fork":false,"pushed_at":"2024-06-04T02:05:58.000Z","size":25,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T16:29:18.597Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/anapsix.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}},"created_at":"2018-10-23T12:14:34.000Z","updated_at":"2024-06-04T02:05:51.000Z","dependencies_parsed_at":"2023-02-10T18:01:22.939Z","dependency_job_id":null,"html_url":"https://github.com/anapsix/coverage-tracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anapsix/coverage-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsix%2Fcoverage-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsix%2Fcoverage-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsix%2Fcoverage-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsix%2Fcoverage-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anapsix","download_url":"https://codeload.github.com/anapsix/coverage-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anapsix%2Fcoverage-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270749455,"owners_count":24638744,"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-16T02:00:11.002Z","response_time":91,"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":[],"created_at":"2024-11-24T21:17:38.439Z","updated_at":"2025-08-16T18:09:49.726Z","avatar_url":"https://github.com/anapsix.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# coverage-tracker\nSimple service tracking coverage, using Redis as storage. It returns previously reported coverage, or `302` redirects to badge URL by [shields.io](https://shields.io/)\n\n## Usage Examples\n\n### GET /:repo/:branch - retrieve coverage for :branch of a :repo\n\n    ## Example\n    ## curl -X GET -D- \"http://localhost:4567/my-project/?shields=true\u0026low=30\u0026high=75\"\n\n    :repo - name of the repo (required)\n    :branch - name of the branch (optional, defaults to \"master\")\n\n    args['shields']    - flag, return shields URL (optional)\n                         activated with `1`, `on`, `yes`, `true`\n    args['low']        - when `coverage \u003c= low`, displays red badge (optional, defaults to 30.0)\n    args['high']       - when `coverage \u003e= high`, displays green badge (optional, defaults to 75.0)\n    args['fileformat'] - fileformat to request from shields.io (optional, defaults to \"svg\")\n    args['style']      - style of the badge from shields.io (optional, defaults to \"for-the-badge\")\n    args['prefix']     - prefix to coverage digits on the badge (optional, defaults to \"coverage\")\n                         disabled completely with `0`, `off`, `no`, `false`\n\nFor defaults, see \"configure\" block in [`main.rb`](./main.rb).\n\nFor fileformat and styles see [shields.io](https://shields.io/).\n\n### POST /:repo/:branch - record coverage for :branch of a :repo\n\n    ## Example\n    ## curl -X POST http://localhost:4567/my-project/ -d '{\"coverage\":\"23.3\"}'\n\nStart with\n\n    bundle install\n    bundle exec ruby ./main.rb\n\n### Docker\n\n    docker build -t coverage-tracker .\n    docker run -d --name redis --rm -p 6379:6379 redis:alpine\n    docker run -d --name ct --rm --link redis:red -e REDIS_HOST=red -p 8080:8080 coverage-tracker\n\n    curl -X POST \"http://localhost:8080/project-name\" -d '{\"coverage\":\"48.00\"}'\n    curl -sS --fail \"http://localhost:8080/project-name/master\"\n    curl -sS \"http://localhost:8080/project-name/master?shields=1\u0026debug=1\"\n    curl -sS -D- -o/dev/null \"http://localhost:8080/project-name/master?shields=1\"\n\n\n### Kubernetes\nTake a look at sample [`./k8s/coverage-tracker.yaml`](./k8s/coverage-tracker.yaml) manifest as example of simple deployment in K8s\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanapsix%2Fcoverage-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanapsix%2Fcoverage-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanapsix%2Fcoverage-tracker/lists"}