covergates

module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2020 License: GPL-3.0

README ΒΆ

logo Covergates - Portal Gates to Coverage Reports

badge CI Go Report Card PkgGoDev CLA assistant

card

Purpose

Covergates is to make the easiest way to setup a self-hosted coverage report service. It's an alternative to services, such as:

The reason why this project is because managing coverage reports for private repositories should not be hard! It is able to link with your self-hosted Git service. Use it to improve coding review and quality management flow for your internal projects. Want to try? Visit covergates.com before you starting.

Using

To get started, please download prebuilt binary covergates-version-platform-architecture.zip and try:

unzip covergates-<version>-<platform>-<architecture>.zip
./covergates-server

Visit http://localhost:8080 for your covergates service.

To upload report, run covergate cli:

export API_URL=http://localhost:8080/api/v1
covergates upload -report <report id> -type go coverage.out

Configure

covergates-server uses environment variables to change configurations. Below is the list of variables for basic configuration:

  • GATES_SERVER_ADDR Default http://localhost:8080
  • GATES_SERVER_BASE Default /
  • GATES_DB_DRIVER Default sqlite3. Other options are postgres and cloudrun
  • GATES_DB_HOST Required host for postgres and cloudrun
  • GATES_DB_PORT Required port for postgres and cloudrun
  • GATES_DB_USER Required user forpostgres and cloudrun
  • GATES_DB_NAME Required database name for postgres and cloudrun
  • GATES_DB_PASSWORD Required password for postgres and cloudrun
  • GATES_GITEA_SERVER Default https://try.gitea.io/, gitea server address
  • GATES_GITEA_CLIENT_ID Required for Gitea OAuth login
  • GATES_GITEA_CLIENT_SECRET Required for Gitea OAuth login
  • GATES_GITHUB_SERVER Default https://github.com
  • GATES_GITHUB_API_SERVER Default https://api.github.com
  • GATES_GITHUB_CLIENT_ID Required for GitHub OAuth login
  • GATES_GITHUB_CLIENT_SECRET Required for GitHub OAuth login

Supported SCM and Language

SCM Supported
GitHub βœ”
Gitea βœ”
GitLab πŸ”§, ongoing
Gogs ❌
Bitbucket ❌
Language Supported Tutorial
Go βœ” go-example
Perl βœ” πŸ”§, ongoing
Python βœ” πŸ”§, ongoing
Ruby (SimpleCov: RSpec) βœ” βž–
lcov (C, C++, Javascript) βœ” βž–
Java (Jacoco) πŸ”§, ongoing βž–

Covergates is at an early development stage. Other languages and SCM support is ongoing! If you would like to assist with development, please refer to Contributing Section.

Development

The build is split into backend, cli and frontend. To build backend, run:

go build -o covergates-server ./cmd/server

To build CLI, run:

export SERVER_API_URL=http://localhost:8080/api/v1
go build -o covergates -ldflags="-X main.CoverGatesAPI=$SERVER_API_URL" ./cmd/cli

You may change SERVER_API_URL to your self-hosted covergates-server address.

If your are behind firewall or proxy, you may also download source package with vendor modules from covergates.version.src.zip . To build with vendor modules, run:

go build -o covergates-server -mod vendor ./cmd/server

To build frontend, it requires:

  1. Node.js v12
  2. togo

Read web/README.md for more details.

Contributing

It would be highly appreciated if you could contribute to the project. There are many ways in which you can participate in the project:

  1. Contributing directly to the code base

    The expected workflow is GitHub flow. Read CONTRIBUTING.md before getting start.

  2. Submit feature requests and bugs

    Especially for the new language support. It would be great if you could provide coverage report examples and how to produce coverage for other languages.

  3. Testing, both unit testing and e2e testing are welcome.

Further Information

For more information and tutorial about self-hosted Covergates server, please refer to our documentation

Milestones

Refer to TODO.md for details.

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for the full license text.

Screenshots

report

files

setting

pull request

Directories ΒΆ

Path Synopsis
cmd
cli
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
modules
charts/icons
Code generated by go-bindata.
Code generated by go-bindata.
git
scm
api
web
service

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL