{"id":13451731,"url":"https://github.com/covergates/covergates","last_synced_at":"2025-03-23T19:32:35.020Z","repository":{"id":40285271,"uuid":"267761311","full_name":"covergates/covergates","owner":"covergates","description":"The portal gates to coverage reports","archived":false,"fork":false,"pushed_at":"2023-05-05T02:25:01.000Z","size":28639,"stargazers_count":61,"open_issues_count":24,"forks_count":12,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-18T23:13:56.177Z","etag":null,"topics":["coverage-report","go","hacktoberfest","open-source","self-hosted","typescript","vue"],"latest_commit_sha":null,"homepage":"https://covergates.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/covergates.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-05-29T04:02:01.000Z","updated_at":"2024-02-26T10:47:53.000Z","dependencies_parsed_at":"2024-06-18T22:55:04.231Z","dependency_job_id":"031f622f-838c-4a54-b3eb-47fd6e8ef772","html_url":"https://github.com/covergates/covergates","commit_stats":null,"previous_names":["code-devel-cover/codecover"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covergates%2Fcovergates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covergates%2Fcovergates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covergates%2Fcovergates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/covergates%2Fcovergates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/covergates","download_url":"https://codeload.github.com/covergates/covergates/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213325077,"owners_count":15570231,"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-report","go","hacktoberfest","open-source","self-hosted","typescript","vue"],"created_at":"2024-07-31T07:01:00.713Z","updated_at":"2024-07-31T07:04:04.722Z","avatar_url":"https://github.com/covergates.png","language":"Go","funding_links":[],"categories":["测试","Testing","Go","Testing Frameworks","测试相关`测试库和测试数据集生成库`","测试相关"],"sub_categories":["HTTP客户端","HTTP Clients","Testing Frameworks","查询语"],"readme":"\u003ch1\u003e \u003cimg src=\"https://covergates.com/logo.png\" alt=\"logo\" width=\"48\" height=48\u003e Covergates - Portal Gates to Coverage Reports\u003c/h1\u003e\n\n[![badge](https://covergates.com/api/v1/reports/bsi5dvi23akg00a0tgl0/badge?)](https://covergates.com/report/github/covergates/covergates)\n![CI](https://github.com/covergates/covergates/workflows/CI/badge.svg)\n[![Go Report Card](https://goreportcard.com/badge/github.com/covergates/covergates)](https://goreportcard.com/report/github.com/covergates/covergates)\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/covergates/covergates)](https://pkg.go.dev/github.com/covergates/covergates)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![CLA assistant](https://cla-assistant.io/readme/badge/covergates/covergates)](https://cla-assistant.io/covergates/covergates)\n[![Twitter Follow](https://img.shields.io/twitter/follow/covergates_tw.svg?style=social)](https://twitter.com/covergates_tw)\n\n[![card](https://covergates.com/api/v1/reports/bsi5dvi23akg00a0tgl0/card)](https://covergates.com/report/github/covergates/covergates)\n\n## Purpose\n\n**Covergates** is to make the easiest way to setup a self-hosted coverage report service.\nIt's an alternative to services, such as:\n\n- [Code Climate](https://codeclimate.com/)\n- [Codecov](https://codecov.io/)\n- [Coveralls](https://coveralls.io/)\n\nThe reason why this project is because managing coverage reports for private repositories should not be hard!\nIt is able to link with your self-hosted Git service.\nUse it to improve coding review and quality management flow for your internal projects.\nWant to try? Visit [covergates.com](https://covergates.com) before you starting.\n\n## Using\n\nTo get started, please download prebuilt binary [covergates-**version**-**platform**-**architecture**.zip](https://github.com/covergates/covergates/releases) and try:\n\n```sh\nunzip covergates-\u003cversion\u003e-\u003cplatform\u003e-\u003carchitecture\u003e.zip\n./covergates-server\n```\n\nVisit [http://localhost:8080](http://localhost:8080) for your **covergates** service.\n\nTo upload report, run `covergate` cli:\n\n```sh\nexport API_URL=http://localhost:8080/api/v1\ncovergates upload -report \u003creport id\u003e -type go coverage.out\n```\n\n## Configure\n\n`covergates-server` uses environment variables to change configurations.\nBelow is the list of variables for basic configuration:\n\n- `GATES_SERVER_ADDR` Default `http://localhost:8080`\n- `GATES_SERVER_BASE` Default `/`\n- `GATES_DB_DRIVER` Default `sqlite3`. Other options are `postgres` and `cloudrun`\n- `GATES_DB_HOST` Required host for `postgres` and `cloudrun`\n- `GATES_DB_PORT` Required port for `postgres` and `cloudrun`\n- `GATES_DB_USER` Required user for`postgres` and `cloudrun`\n- `GATES_DB_NAME` Required database name for `postgres` and `cloudrun`\n- `GATES_DB_PASSWORD` Required password for `postgres` and `cloudrun`\n- `GATES_GITEA_SERVER` Default `https://try.gitea.io/`, gitea server address\n- `GATES_GITEA_CLIENT_ID` Required for Gitea OAuth login\n- `GATES_GITEA_CLIENT_SECRET` Required for Gitea OAuth login\n- `GATES_GITHUB_SERVER` Default `https://github.com`\n- `GATES_GITHUB_API_SERVER` Default `https://api.github.com`\n- `GATES_GITHUB_CLIENT_ID` Required for GitHub OAuth login\n- `GATES_GITHUB_CLIENT_SECRET` Required for GitHub OAuth login\n\n## Supported SCM and Language\n\n| SCM       | Supported          |\n| --------- | ------------------ |\n| GitHub    | :heavy_check_mark: |\n| Gitea     | :heavy_check_mark: |\n| GitLab    | :heavy_check_mark: |\n| Gogs      | :x:                |\n| Bitbucket | :x:                |\n\n| Language                  | Supported          | Tutorial                                               |\n| ------------------------- | ------------------ | ------------------------------------------------------ |\n| Go                        | :heavy_check_mark: | [go-example](https://github.com/covergates/go-example) |\n| Perl                      | :heavy_check_mark: | :wrench:, ongoing                                      |\n| Python                    | :heavy_check_mark: | :wrench:, ongoing                                      |\n| Ruby (SimpleCov: RSpec)   | :heavy_check_mark: | :heavy_minus_sign:                                     |\n| lcov (C, C++, Javascript) | :heavy_check_mark: | :heavy_minus_sign:                                     |\n| Clover (PHP)              | :heavy_check_mark: | :heavy_minus_sign:                                     |\n| Java (Jacoco)             | :wrench:, ongoing  | :heavy_minus_sign:                                     |\n\n**Covergates** is at an early development stage.\nOther languages and SCM support is ongoing!\nIf you would like to assist with development, please refer to [Contributing Section](#contributing).\n\n## Development\n\nThe build is split into `backend`, `cli` and `frontend`. To build backend, run:\n\n```sh\ngo build -o covergates-server ./cmd/server\n```\n\nTo build CLI, run:\n\n```sh\nexport SERVER_API_URL=http://localhost:8080/api/v1\ngo build -o covergates -ldflags=\"-X main.CoverGatesAPI=$SERVER_API_URL\" ./cmd/cli\n```\n\nYou may change `SERVER_API_URL` to your self-hosted **covergates-server** address.\n\nIf your are behind firewall or proxy,\nyou may also download source package with `vendor` modules from [covergates.**version**.src.zip\n](https://github.com/covergates/covergates/releases). To build with `vendor` modules, run:\n\n```\ngo build -o covergates-server -mod vendor ./cmd/server\n```\n\nTo build frontend, it requires:\n\n1. [Node.js v12](https://nodejs.org/en/download/)\n2. [togo](https://github.com/bradrydzewski/togo)\n\nRead [web/README.md](https://github.com/covergates/covergates/blob/master/web/README.md) for more details.\n\n## Contributing\n\nIt would be highly appreciated if you could contribute to the project.\nThere are many ways in which you can participate in the project:\n\n1. Contributing directly to the code base\n\n   The expected workflow is [GitHub flow](https://guides.github.com/introduction/flow/).\n   Read [CONTRIBUTING.md](https://github.com/covergates/covergates/blob/master/CONTRIBUTING.md) before getting start.\n\n2. [Submit feature requests and bugs](https://github.com/covergates/covergates/issues)\n\n   Especially for the new language support.\n   It would be great if you could provide coverage report examples and how to produce coverage for other languages.\n\n3. Testing, both unit testing and e2e testing are welcome.\n\n## Further Information\n\nFor more information and tutorial about self-hosted Covergates server, please refer to our [documentation](https://docs.covergates.com/)\n\n## Milestones\n\nRefer to [TODO.md](https://github.com/covergates/covergates/blob/master/TODO.md) for details.\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0. See the [LICENSE](https://github.com/covergates/covergates/blob/master/LICENSE) file for the full license text.\n\n## Screenshots\n\n![report](https://raw.githubusercontent.com/covergates/brand/master/screenshots/covergates.png)\n\n![files](https://raw.githubusercontent.com/covergates/brand/master/screenshots/covergates_code.png)\n\n![setting](https://raw.githubusercontent.com/covergates/brand/master/screenshots/covergates_setting.png)\n\n![pull request](https://raw.githubusercontent.com/covergates/brand/master/screenshots/covergates_pr.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcovergates%2Fcovergates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcovergates%2Fcovergates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcovergates%2Fcovergates/lists"}