Monitoring your Go dependencies in a microservice world
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
cmd/dep_radar
deps
docs
examples
goimport
helpers
html
http
mocks
providers
tests
version
.codeclimate.yml
.gitignore
.travis.yml
CHANGELOG.md
Dockerfile
Gopkg.lock
Gopkg.toml
Makefile
README.md
app.go
dep.go
options.go
repos.go
web.go

README.md

Travis Code Climate Code Climate Go Report Card

Dep radar

dep radar is a prototype to control Go dependencies in microservice world. dep radar requires Go 1.10 or newer to compile.

You can try demo: https://dep-radar.zagirov.name

Screenshots

Frontend

How it works

You can't just run some binary. You have to write a bit of code. Your code must implement:

  • Get a list of packages of applications what dependencies you want to monitor
  • Init provider detector. It can be a default with support only github, but you can add you own provider
  • A http handler with calling method for generate html table with all apps and dependencies

Simple example that shows a table with dependencies for entered github organization:

docker run -p 8081:8081 stamm/dep_radar:3.1.2

To put your token for github use this command:

docker run -e "GITHUB_TOKEN=t0ken" -p 8081:8081 stamm/dep_radar:3.1.2

Or with showing state of dependencies:

  • Recommended: restriction for version, for example >=0.13
  • Mandatory: lib must be in an app
  • Exclude: lib must be absent in an app
  • NeedVersion: you must use version, not hash
cat <<EOT > /tmp/recommended.json
{
	"github.com/pkg/errors": {
		"Recommended": ">=0.8.0",
		"Mandatory":  true
	},
	"github.com/kr/fs": {
		"Exclude": true
	},
	"github.com/pkg/profile": {
		"NeedVersion": true
	}
}
EOT

docker run -v /tmp:/cfg -p 8081:8081 stamm/dep_radar:2.0.0 -recommended_file="/cfg/recommended.json" -github_org="dep-radar"

You can find more in examples.

Supported code storage

  • Github
  • Private Bitbucket

Supported dep tools