/assimilator

WIP. An attempt to port minimum valuable subset of Sentry from Python to the Golang

Primary LanguageGoMIT LicenseMIT

assimilator

WIP. An attempt to port minimum valuable subset of Sentry from Python to the Golang.

License Travis Build Coverage Go Report Card prometheus/prometheus/wiki/Default-port-allocations

Setup development enviroment on Arch Linux

$ sudo pacman -S git vim go go-tools glide
$ vim ~/.zlogin
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH
$ mkdir -p $GOPATH/src/github.com/diyan && cd $_
$ git clone git@github.com:diyan/assimilator.git
$ make get-go-tools
$ make get-go-deps
$ make watch-go

Run Sentry in Docker containers

$ sentry/run_sentry_containers.sh
$ docker exec -ti acme_sentry_web raven test http://763a78a695424ed687cf8b7dc26d3161:763a78a695424ed687cf8b7dc26d3161@localhost:9000/2

Connect to the Sentry's Postgres database

$ docker run --rm -ti --name=pgcli \
  -e PGPASSWORD=RucLUS8A \
  --link=acme_sentry_db \
  diyan/pgcli \
  --host=acme_sentry_db \
  --dbname=sentry \
  --user=sentry

Dump Sentry's Postgres database

$ docker exec -ti acme_sentry_db \
  sh -c 'PGPASSWORD=RucLUS8A pg_dump --username=sentry --dbname=sentry'

TODOs

  • Improve error handling, use errors.Wrap
  • Publish diyan/sentry:8.12.0 to GitHub and Docker Hub
  • DB test fixtures
  • Implement Prefix / SetPrefix in Echo/Logrus logger
  • Implement generic handler so "can not get project: query failed: dbr: not found", would be "can not get project. resource not found"
  • Move PostGet / PostInsert / etc handlers from db model to store
  • Hell of a lot things to do

Test Commit feature via Web UI