diff --git a/.gitignore b/.gitignore index ebeaa25..b8bb2bb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ checks-out.sqlite .vscode report.out report.xml +*.iml +coverage.html +coverage.out \ No newline at end of file diff --git a/.whitesource b/.whitesource new file mode 100644 index 0000000..60fc783 --- /dev/null +++ b/.whitesource @@ -0,0 +1,13 @@ +{ + "scanSettings": { + "configMode": "AUTO", + "configExternalURL": "", + "projectToken" : "" + }, + "checkRunSettings": { + "vulnerableCheckRunConclusionLevel": "failure" + }, + "issueSettings": { + "minSeverityLevel": "LOW" + } +} \ No newline at end of file diff --git a/Makefile b/Makefile index 087e97d..e90d2dc 100644 --- a/Makefile +++ b/Makefile @@ -6,14 +6,6 @@ endif # Propagate git revision number to version identifier VERSION:=${VERSION_TAG}+$(shell git rev-parse --short HEAD) -# directories and remove vendor directory -# used for running unit tests -NOVENDOR := $(shell go list -e ./... | grep -v /vendor/) - -# files and remove vendor directory, auto generated files, and mock files -# used for static analysis, code linting, and code formatting -NOVENDOR_FILES := $(shell find . -name "*.go" | grep -v /vendor/ | grep -v /mock/ | grep -v "_gen\.go" ) - all: build gen: gen-assets gen-migration @@ -25,22 +17,26 @@ gen-assets: gen-migration: go generate github.com/capitalone/checks-out/store/migration -build: +build: test @# static linking sqlite seems to break DNS go build --ldflags '-X github.com/capitalone/checks-out/version.Version=$(VERSION)' -o checks-out - go test -run ^$$ $(NOVENDOR) > /dev/null + +build-debug: test + @# static linking sqlite seems to break DNS + go build --ldflags '-X github.com/capitalone/checks-out/version.Version=$(VERSION)' -gcflags "all=-N -l" -o checks-out test: vet @# use redirect instead of tee to preserve exit code - go test -short -p=1 -cover $(NOVENDOR) -v > report.out; \ + go test -short -cover -v ./... > report.out; \ code=$$?; \ cat report.out; \ grep -e 'FAIL' report.out; \ exit $${code} +.PHONY: test test-complete: vet @# use redirect instead of tee to preserve exit code - GITHUB_TEST_ENABLE=1 go test -short -p=1 -cover $(NOVENDOR) -v > report.out; \ + GITHUB_TEST_ENABLE=1 go test -short -cover -v ./... > report.out; \ code=$$?; \ cat report.out; \ grep -e 'FAIL' report.out; \ @@ -49,24 +45,19 @@ test-complete: vet .PHONY: test-cover-html test-cover-html: - echo "mode: count" > coverage-all.out - echo "Packages: $(NOVENDOR)" - echo "VERSION: $(VERSION)" - $(foreach pkg,$(NOVENDOR), \ - echo ${pkg}; \ - go test -coverprofile=coverage.out -covermode=count ${pkg}; \ - tail -n +2 coverage.out >> coverage-all.out;) - go tool cover -html=coverage-all.out -o coverage.html + @echo "VERSION: $(VERSION)" + go test -coverprofile=coverage.out -covermode=count ./... + go tool cover -html=coverage.out -o coverage.html fmt: - for FILE in $(NOVENDOR_FILES); do go fmt $$FILE; done; + go fmt ./... vet: get-modules @echo 'Running go tool vet -shadow' - @for FILE in $(NOVENDOR_FILES); do go tool vet -shadow $$FILE || exit 1; done; + go vet ./... lint: get-modules - for FILE in $(NOVENDOR_FILES); do golint $$FILE; done; + golint ./... clean: rm -f checks-out report.out diff --git a/admin/browse.go b/admin/browse.go index 35c6ed9..b297f6b 100644 --- a/admin/browse.go +++ b/admin/browse.go @@ -22,11 +22,11 @@ import ( "context" "fmt" - jsonpointer "github.com/mattn/go-jsonpointer" "github.com/capitalone/checks-out/envvars" "github.com/capitalone/checks-out/hjson" "github.com/capitalone/checks-out/model" "github.com/capitalone/checks-out/remote" + jsonpointer "github.com/mattn/go-jsonpointer" ) var configFileName = fmt.Sprintf(".%s", envvars.Env.Branding.Name) diff --git a/api/admin.go b/api/admin.go index 329d02d..a4eea08 100644 --- a/api/admin.go +++ b/api/admin.go @@ -19,7 +19,6 @@ See the License for the specific language governing permissions and limitations package api import ( - "errors" "fmt" "net/http" "time" @@ -32,22 +31,26 @@ import ( "github.com/capitalone/checks-out/shared/httputil" "github.com/capitalone/checks-out/store" - "github.com/Sirupsen/logrus" "github.com/gin-gonic/gin" + "github.com/jonbodner/stackerr" + "github.com/sirupsen/logrus" +) + +const ( + notAdmin = "user is not an administrator" + noAdminOrg = "GITHUB_ADMIN_ORG environment variable not defined" ) func unauthorizedError() error { status := http.StatusUnauthorized - msg := "user is not an administrator" - return exterror.Create(status, errors.New(msg)) + return exterror.Create(status, stackerr.New(notAdmin)) } func adminMissingError() error { if envvars.Env.Github.AdminOrg == "" { if envvars.Env.Monitor.Sunlight { status := http.StatusUnauthorized - msg := "GITHUB_ADMIN_ORG environment variable not defined" - return exterror.Create(status, errors.New(msg)) + return exterror.Create(status, stackerr.New(noAdminOrg)) } return unauthorizedError() } @@ -126,7 +129,7 @@ func AdminDeleteRepo(c *gin.Context) { httputil.GetURL(c.Request), ) - user, err := store.GetUser(c, repo.UserID) + user, err := store.GetUser(c, repo.UserID) if err != nil { msg := fmt.Sprintf("Deleting repository %s", name) c.Error(exterror.Append(err, msg)) diff --git a/api/json.go b/api/json.go index bf7bccb..925bf1c 100644 --- a/api/json.go +++ b/api/json.go @@ -22,8 +22,8 @@ import ( "bytes" "encoding/json" - log "github.com/Sirupsen/logrus" "github.com/gin-gonic/gin" + log "github.com/sirupsen/logrus" ) func IndentedJSON(c *gin.Context, code int, obj interface{}) { diff --git a/api/orgs.go b/api/orgs.go index 3116ba0..bd04362 100644 --- a/api/orgs.go +++ b/api/orgs.go @@ -31,9 +31,9 @@ import ( "github.com/capitalone/checks-out/shared/token" "github.com/capitalone/checks-out/store" - "github.com/Sirupsen/logrus" "github.com/gin-gonic/gin" "github.com/pkg/errors" + "github.com/sirupsen/logrus" ) func collectAllOrgs(c *gin.Context) ([]*model.GitHubOrg, set.Set, error) { diff --git a/api/orgs_test.go b/api/orgs_test.go index 371cb3d..31dba69 100644 --- a/api/orgs_test.go +++ b/api/orgs_test.go @@ -33,10 +33,10 @@ import ( "github.com/capitalone/checks-out/router/middleware" "github.com/capitalone/checks-out/store" - "github.com/Sirupsen/logrus" "github.com/franela/goblin" "github.com/gin-gonic/gin" "github.com/pkg/errors" + "github.com/sirupsen/logrus" ) type mockCache struct { diff --git a/api/repos.go b/api/repos.go index d4df911..c74ca03 100644 --- a/api/repos.go +++ b/api/repos.go @@ -31,9 +31,9 @@ import ( "github.com/capitalone/checks-out/shared/token" "github.com/capitalone/checks-out/store" - "github.com/Sirupsen/logrus" "github.com/gin-gonic/gin" "github.com/pkg/errors" + "github.com/sirupsen/logrus" ) // GetAllReposCount gets the count of all repositories managed by Checks-Out. diff --git a/api/slack.go b/api/slack.go index 9e2b16a..bf4e5a6 100644 --- a/api/slack.go +++ b/api/slack.go @@ -19,13 +19,13 @@ See the License for the specific language governing permissions and limitations package api import ( - "github.com/gin-gonic/gin" - "github.com/capitalone/checks-out/store" - "github.com/capitalone/checks-out/exterror" - "fmt" "encoding/json" - "io/ioutil" + "fmt" + "github.com/capitalone/checks-out/exterror" "github.com/capitalone/checks-out/router/middleware/session" + "github.com/capitalone/checks-out/store" + "github.com/gin-gonic/gin" + "io/ioutil" ) type UrlHolder struct { diff --git a/api/user_test.go b/api/user_test.go index bb9926d..13aa732 100644 --- a/api/user_test.go +++ b/api/user_test.go @@ -28,9 +28,9 @@ import ( "github.com/capitalone/checks-out/model" - "github.com/Sirupsen/logrus" "github.com/franela/goblin" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" ) func TestUsers(t *testing.T) { diff --git a/cache/cache.go b/cache/cache.go index 9fa0415..4fbca7f 100644 --- a/cache/cache.go +++ b/cache/cache.go @@ -22,8 +22,8 @@ import ( "context" "time" - "github.com/koding/cache" "github.com/capitalone/checks-out/envvars" + "github.com/koding/cache" ) type Cache interface { diff --git a/cmd/integration/main.go b/cmd/integration/main.go index 4bb3751..6e2fe9f 100644 --- a/cmd/integration/main.go +++ b/cmd/integration/main.go @@ -33,8 +33,8 @@ import ( "github.com/capitalone/checks-out/envvars" gh "github.com/capitalone/checks-out/remote/github" - log "github.com/Sirupsen/logrus" "github.com/google/go-github/github" + log "github.com/sirupsen/logrus" "golang.org/x/oauth2" ) diff --git a/exterror/exterror.go b/exterror/exterror.go index b0d8363..7348cd6 100644 --- a/exterror/exterror.go +++ b/exterror/exterror.go @@ -23,8 +23,8 @@ import ( "fmt" "reflect" - log "github.com/Sirupsen/logrus" "github.com/mspiegel/go-multierror" + log "github.com/sirupsen/logrus" ) type ExtError struct { diff --git a/go.mod b/go.mod index f09f1a5..4e30738 100644 --- a/go.mod +++ b/go.mod @@ -1,52 +1,45 @@ module github.com/capitalone/checks-out +go 1.14 + require ( - github.com/BurntSushi/toml v0.3.0 // indirect - github.com/Sirupsen/logrus v0.11.5 - github.com/davecgh/go-spew v1.1.0 // indirect - github.com/dgrijalva/jwt-go v3.1.0+incompatible + github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/elazarl/go-bindata-assetfs v1.0.0 - github.com/franela/goblin v0.0.0-20170821161553-b962efd4bb2a - github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 // indirect - github.com/gin-gonic/gin v0.0.0-20170702092826-d459835d2b07 - github.com/go-sql-driver/mysql v1.3.0 - github.com/golang/protobuf v0.0.0-20170920220647-130e6b02ab05 // indirect - github.com/google/go-github v0.0.0-20180723152927-e1be32f26e66 - github.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135 // indirect - github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce // indirect - github.com/hashicorp/go-version v0.0.0-20170914154128-fc61389e27c7 - github.com/hjson/hjson-go v0.2.3 + github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db + github.com/gin-gonic/gin v1.6.2 + github.com/go-playground/universal-translator v0.17.0 // indirect + github.com/go-sql-driver/mysql v1.5.0 + github.com/golang/protobuf v1.3.5 // indirect + github.com/google/go-github v17.0.0+incompatible + github.com/google/go-github/v30 v30.1.0 + github.com/hashicorp/go-version v1.2.0 + github.com/hjson/hjson-go v3.0.1+incompatible github.com/ianschenck/envflag v0.0.0-20140720210342-9111d830d133 - github.com/joho/godotenv v1.2.0 + github.com/joho/godotenv v1.3.0 + github.com/jonbodner/stackerr v1.0.0 + github.com/json-iterator/go v1.1.9 // indirect github.com/koding/cache v0.0.0-20161222233015-e8a81b0b3f20 - github.com/kr/pretty v0.1.0 // indirect - github.com/lib/pq v0.0.0-20171019223007-456514e2defe - github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect - github.com/mattn/go-isatty v0.0.3 // indirect - github.com/mattn/go-jsonpointer v0.0.0-20170427002117-a39417dc2a77 - github.com/mattn/go-sqlite3 v1.2.0 - github.com/mspiegel/go-multierror v0.0.0-20170309222903-065aa648c994 - github.com/pelletier/go-toml v1.0.1 - github.com/philhofer/fwd v1.0.0 // indirect - github.com/pkg/errors v0.8.0 - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20 // indirect - github.com/rubenv/sql-migrate v0.0.0-20170824124545-79fe99e24311 - github.com/russross/meddler v0.0.0-20170319163028-9515f6b01c15 - github.com/stretchr/objx v0.0.0-20150928122152-1a9d0bb9f541 // indirect - github.com/stretchr/testify v1.1.4 - github.com/tinylib/msgp v1.0.2 // indirect - github.com/ugorji/go v0.0.0-20171019201919-bdcc60b419d1 // indirect - github.com/ziutek/mymysql v1.5.4 // indirect - golang.org/x/net v0.0.0-20171019164906-aabf50738bcd // indirect - golang.org/x/oauth2 v0.0.0-20170928010508-bb50c06baba3 - golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f // indirect - golang.org/x/sys v0.0.0-20171017063910-8dbc5d05d6ed // indirect - google.golang.org/appengine v1.0.0 // indirect - gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect + github.com/leodido/go-urn v1.2.0 // indirect + github.com/lib/pq v1.3.0 + github.com/mattn/go-isatty v0.0.12 // indirect + github.com/mattn/go-jsonpointer v0.0.1 + github.com/mattn/go-sqlite3 v2.0.3+incompatible + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/mspiegel/go-multierror v0.0.0-20171123200149-ea68e724609a + github.com/pelletier/go-toml v1.6.0 + github.com/pkg/errors v0.9.1 + github.com/rubenv/sql-migrate v0.0.0-20200401080106-baf4e4b6812c + github.com/russross/meddler v0.0.0-20191023082315-51a972bb8fb2 + github.com/sirupsen/logrus v1.5.0 + github.com/stretchr/objx v0.2.0 // indirect + github.com/stretchr/testify v1.5.1 + golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 // indirect + golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e // indirect + golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d + golang.org/x/sys v0.0.0-20200331124033-c3d80250170d // indirect gopkg.in/go-playground/assert.v1 v1.2.1 // indirect - gopkg.in/go-playground/validator.v8 v8.18.2 // indirect - gopkg.in/gorp.v1 v1.7.1 // indirect - gopkg.in/mgo.v2 v2.0.0-20160818020120-3f83fa500528 // indirect - gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7 // indirect + gopkg.in/go-playground/validator.v9 v9.31.0 // indirect + gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect + gopkg.in/yaml.v2 v2.2.8 // indirect ) diff --git a/go.sum b/go.sum index 76fb1eb..4e31011 100644 --- a/go.sum +++ b/go.sum @@ -1,99 +1,253 @@ -github.com/BurntSushi/toml v0.3.0 h1:e1/Ivsx3Z0FVTV0NSOv/aVgbUWyQuzj7DDnFblkRvsY= -github.com/BurntSushi/toml v0.3.0/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Sirupsen/logrus v0.11.5 h1:aIMrrsnipdTlAieMe7FC/iiuJ0+ELiXCT4YiVQiK9j8= -github.com/Sirupsen/logrus v0.11.5/go.mod h1:rmk17hk6i8ZSAJkSDa7nOxamrG+SP4P0mm+DAvExv4U= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.1.0+incompatible h1:FFziAwDQQ2dz1XClWMkwvukur3evtZx7x/wMHKM1i20= -github.com/dgrijalva/jwt-go v3.1.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/denisenkom/go-mssqldb v0.0.0-20191001013358-cfbb681360f0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= -github.com/franela/goblin v0.0.0-20170821161553-b962efd4bb2a h1:k88PAvmBlL+52JnuKfBrJBtDVecRdaSmXVyynzuhxEQ= -github.com/franela/goblin v0.0.0-20170821161553-b962efd4bb2a/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7 h1:AzN37oI0cOS+cougNAV9szl6CVoj2RYwzS3DpUQNtlY= -github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-gonic/gin v0.0.0-20170702092826-d459835d2b07 h1:cZPJWzd2oNeoS0oJM2TlN9rl0OnCgUr10gC8Q4mH+6M= -github.com/gin-gonic/gin v0.0.0-20170702092826-d459835d2b07/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y= -github.com/go-sql-driver/mysql v1.3.0 h1:pgwjLi/dvffoP9aabwkT3AKpXQM93QARkjFhDDqC1UE= -github.com/go-sql-driver/mysql v1.3.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/golang/protobuf v0.0.0-20170920220647-130e6b02ab05 h1:Kesru7U6Mhpf/x7rthxAKnr586VFmoE2NdEvkOKvfjg= -github.com/golang/protobuf v0.0.0-20170920220647-130e6b02ab05/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/google/go-github v0.0.0-20180723152927-e1be32f26e66 h1:aWetrL1GmzNv07hFf/s1djYTcIsLqSCFCLPj9L7+zME= -github.com/google/go-github v0.0.0-20180723152927-e1be32f26e66/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135 h1:zLTLjkaOFEFIOxY5BWLFLwh+cL8vOBW4XJ2aqLE/Tf0= -github.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce h1:prjrVgOk2Yg6w+PflHoszQNLTUh4kaByUcEWM/9uin4= -github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-version v0.0.0-20170914154128-fc61389e27c7 h1:Tijq+ZHupzK8WfomfH2s5dpKkpZd2TcN2i1LDbzWbwk= -github.com/hashicorp/go-version v0.0.0-20170914154128-fc61389e27c7/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hjson/hjson-go v0.2.3 h1:KhG7/PSxTibbYOzFso5FoiX2gWePcANaCsvM1WE/bTo= -github.com/hjson/hjson-go v0.2.3/go.mod h1:qsetwF8NlsTsOTwZTApNlTCerV+b2GjYRRcIk4JMFio= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db h1:gb2Z18BhTPJPpLQWj4T+rfKHYCHxRHCtRxhKKjRidVw= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.5.0 h1:fi+bqFAx/oLK54somfCtEZs9HeH1LHVoEPUgARpTqyc= +github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= +github.com/gin-gonic/gin v1.6.2 h1:88crIK23zO6TqlQBt+f9FrPJNKm9ZEr7qjp9vl/d5TM= +github.com/gin-gonic/gin v1.6.2/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.12.1 h1:2FITxuFt/xuCNP1Acdhv62OzaCiviiE4kotfhkmOqEc= +github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= +github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.16.0 h1:X++omBR/4cE2MNg91AoC3rmGrCjJ8eAeUP/K/EKx4DM= +github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= +github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/envy v1.7.1 h1:OQl5ys5MBea7OGCdvPbBJWRgnhC/fGona6QKfvFeau8= +github.com/gobuffalo/envy v1.7.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= +github.com/gobuffalo/logger v1.0.1 h1:ZEgyRGgAm4ZAhAO45YXMs5Fp+bzGLESFewzAVBMKuTg= +github.com/gobuffalo/logger v1.0.1/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= +github.com/gobuffalo/packd v0.3.0 h1:eMwymTkA1uXsqxS0Tpoop3Lc0u3kTfiMBE6nKtQU4g4= +github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= +github.com/gobuffalo/packr/v2 v2.7.1 h1:n3CIW5T17T8v4GGK5sWXLVWJhCz7b5aNLSxW6gYim4o= +github.com/gobuffalo/packr/v2 v2.7.1/go.mod h1:qYEvAazPaVxy7Y7KR0W8qYEE+RymX74kETFqjFoFlOc= +github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-github/v30 v30.0.0 h1:5UgIxLcf4zolLP8QpFcrSku0G1Y/p5+WChWL11dFlnQ= +github.com/google/go-github/v30 v30.0.0/go.mod h1:n8jBpHl45a/rlBUtRJMOG4GhNADUQFEufcolZ95JfU8= +github.com/google/go-github/v30 v30.1.0 h1:VLDx+UolQICEOKu2m4uAoMti1SxuEBAl7RSEG16L+Oo= +github.com/google/go-github/v30 v30.1.0/go.mod h1:n8jBpHl45a/rlBUtRJMOG4GhNADUQFEufcolZ95JfU8= +github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hjson/hjson-go v3.0.1+incompatible h1:JwOXblcMiBbiWue7iPkoFK9oXSnW8n+qXh/0Fio6TCo= +github.com/hjson/hjson-go v3.0.1+incompatible/go.mod h1:qsetwF8NlsTsOTwZTApNlTCerV+b2GjYRRcIk4JMFio= github.com/ianschenck/envflag v0.0.0-20140720210342-9111d830d133 h1:h6FO/Da7rdYqJbRYMW9f+SMBWnJVguWh+0ERefW8zp8= github.com/ianschenck/envflag v0.0.0-20140720210342-9111d830d133/go.mod h1:pyYc5lldRtL0l5YitYVv1dLKuC0qhMfAfiR7BLsN2pA= -github.com/joho/godotenv v1.2.0 h1:vGTvz69FzUFp+X4/bAkb0j5BoLC+9bpqTWY8mjhA9pc= -github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/jonbodner/stackerr v1.0.0 h1:rAe+Fh13cfC9IGuKE4YWiVCzwt9zce9Saldpc8fYEIM= +github.com/jonbodner/stackerr v1.0.0/go.mod h1:In1ShJr570PDuDHbYfymEQle+H7PgY9KpT+alyk0nEM= +github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/koding/cache v0.0.0-20161222233015-e8a81b0b3f20 h1:R7RAW1p8wjhlHKFhS4X7h8EePqADev/PltCmW9qlJoM= github.com/koding/cache v0.0.0-20161222233015-e8a81b0b3f20/go.mod h1:sh5SGGmQVGUkWDnxevz0I2FJ4TeC18hRPRjKVBMb2kA= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lib/pq v0.0.0-20171019223007-456514e2defe h1:3W7DA0pKM6dPkHc4thTL7VJw32yEIbeQNgpzIaSW9kI= -github.com/lib/pq v0.0.0-20171019223007-456514e2defe/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/leodido/go-urn v1.1.0 h1:Sm1gr51B1kKyfD2BlRcLSiEkffoG96g6TPv6eRoEiB8= +github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= +github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU= +github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-jsonpointer v0.0.0-20170427002117-a39417dc2a77 h1:iABqXj7kXcDBtR7YDEiHlmcyj0tjUTOG8bVlQZaSJ/M= -github.com/mattn/go-jsonpointer v0.0.0-20170427002117-a39417dc2a77/go.mod h1:SDJ4hurDYyQ9/7nc+eCYtXqdufgK4Cq9TJlwPklqEYA= -github.com/mattn/go-sqlite3 v1.2.0 h1:h2FYSp18EBpSL2XOLiU2jIvYcJpx5NxGmT2EFlaUesw= -github.com/mattn/go-sqlite3 v1.2.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mspiegel/go-multierror v0.0.0-20170309222903-065aa648c994 h1:US8eTr0SXNF/ci7I8acpBcFEJN4FOGre5g5zqkurgyg= -github.com/mspiegel/go-multierror v0.0.0-20170309222903-065aa648c994/go.mod h1:xw4ib7HNutwdEm5bOdXFQKaHjuhRMWtZgMIVIihyuWI= -github.com/pelletier/go-toml v1.0.1 h1:0nx4vKBl23+hEaCOV1mFhKS9vhhBtFYWC7rQY0vJAyE= -github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= -github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= -github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-jsonpointer v0.0.1 h1:j5m5P9BdP4B/zn6J7oH3KIQSOa2OHmcNAKEozUW7wuE= +github.com/mattn/go-jsonpointer v0.0.1/go.mod h1:1s8vx7JSjlgVRF+LW16MPpWSRZAxyrc1/FYzOonxeao= +github.com/mattn/go-oci8 v0.0.7/go.mod h1:wjDx6Xm9q7dFtHJvIlrI99JytznLw5wQ4R+9mNXJwGI= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-sqlite3 v1.12.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.13.0 h1:LnJI81JidiW9r7pS/hXe6cFeO5EXNq7KbfvoJLRI69c= +github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= +github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mspiegel/go-multierror v0.0.0-20171123200149-ea68e724609a h1:HnmAXioxa65x3xNfwZOQA0ATIRTWnYv/dmcYrbtpIdE= +github.com/mspiegel/go-multierror v0.0.0-20171123200149-ea68e724609a/go.mod h1:xw4ib7HNutwdEm5bOdXFQKaHjuhRMWtZgMIVIihyuWI= +github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= +github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20 h1:7sBb9iOkeq+O7AXlVoH/8zpIcRXX523zMkKKspHjjx8= -github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M= -github.com/rubenv/sql-migrate v0.0.0-20170824124545-79fe99e24311 h1:zM8ImA1q87ULfhJHCoL4oe143J3qdXF2XWjJX42gszQ= -github.com/rubenv/sql-migrate v0.0.0-20170824124545-79fe99e24311/go.mod h1:WS0rl9eEliYI8DPnr3TOwz4439pay+qNgzJoVya/DmY= -github.com/russross/meddler v0.0.0-20170319163028-9515f6b01c15 h1:5lwmRG81Tx9fo0v9ASSwDg3J+6s10RC/dWwROtJYTw4= -github.com/russross/meddler v0.0.0-20170319163028-9515f6b01c15/go.mod h1:L0qig4K5sCW6YvsjqjPgkKJpwphlhMX1SmjGdcKXbsw= -github.com/stretchr/objx v0.0.0-20150928122152-1a9d0bb9f541 h1:nvL7eaZN/Zw5emVOGaOclbLMeFO030UrPtWFTUS0p80= -github.com/stretchr/objx v0.0.0-20150928122152-1a9d0bb9f541/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.1.4 h1:ToftOQTytwshuOSj6bDSolVUa3GINfJP/fg3OkkOzQQ= -github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/tinylib/msgp v1.0.2 h1:DfdQrzQa7Yh2es9SuLkixqxuXS2SxsdYn0KbdrOGWD8= -github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= -github.com/ugorji/go v0.0.0-20171019201919-bdcc60b419d1 h1:UvhxfNjNqlZ/x3cDyqxMhoiUpemd3zXkVQApN6bM/lg= -github.com/ugorji/go v0.0.0-20171019201919-bdcc60b419d1/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.4.0 h1:LUa41nrWTQNGhzdsZ5lTnkwbNjj6rXTdazA1cSdjkOY= +github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rubenv/sql-migrate v0.0.0-20200212082348-64f95ea68aa3 h1:xkBtI5JktwbW/vf4vopBbhYsRFTGfQWHYXzC0/qYwxI= +github.com/rubenv/sql-migrate v0.0.0-20200212082348-64f95ea68aa3/go.mod h1:rtQlpHw+eR6UrqaS3kX1VYeaCxzCVdimDS7g5Ln4pPc= +github.com/rubenv/sql-migrate v0.0.0-20200401080106-baf4e4b6812c h1:LzqBnpXqyCHz3WiPMrnd987KOoh2kr/itROBGrpdNiQ= +github.com/rubenv/sql-migrate v0.0.0-20200401080106-baf4e4b6812c/go.mod h1:yhTYQFLv0XpWGff0qGrU9EUefE+2to5nzDM1LFCpf6g= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/meddler v0.0.0-20191023082315-51a972bb8fb2 h1:D9FKfhd06ImwXwf3YGdhs6Q2IrOA1mMfa/kwWZTUZkA= +github.com/russross/meddler v0.0.0-20191023082315-51a972bb8fb2/go.mod h1:L0qig4K5sCW6YvsjqjPgkKJpwphlhMX1SmjGdcKXbsw= +github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.5.0 h1:1N5EYkVAPEywqZRJd7cwnRtCb6xJx7NH3T3WUTF980Q= +github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= -golang.org/x/net v0.0.0-20171019164906-aabf50738bcd h1:c+vKpE75HPaGdQfc3Je2ciQzBKeYDS4k6GyBQO7tjeI= -golang.org/x/net v0.0.0-20171019164906-aabf50738bcd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/oauth2 v0.0.0-20170928010508-bb50c06baba3 h1:YGx0PRKSN/2n/OcdFycCC0JUA/Ln+i5lPcN8VoNDus0= -golang.org/x/oauth2 v0.0.0-20170928010508-bb50c06baba3/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20171017063910-8dbc5d05d6ed h1:7TjTAJENziDn0SiwaaVypM+TFSq4rk6LJOuy3GUKMhg= -golang.org/x/sys v0.0.0-20171017063910-8dbc5d05d6ed/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -google.golang.org/appengine v1.0.0 h1:dN4LljjBKVChsv0XCSI+zbyzdqrkEwX5LQFUMRSGqOc= -google.golang.org/appengine v1.0.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4 h1:ydJNl0ENAG67pFbB+9tfhiL2pYqLhfoaZFw/cjLhY4A= +golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6 h1:TjszyFsQsyZNHwdVdZ5m7bjmreu0znc2kRYsEml9/Ww= +golang.org/x/crypto v0.0.0-20200317142112-1b76d66859c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 h1:3zb4D3T4G8jdExgVU/95+vQXfpEPiMdCaZgmGVxjNHM= +golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200317113312-5766fd39f98d h1:62ap6LNOjDU6uGmKXHJbSfciMoV+FeI1sRXx/pLDL44= +golang.org/x/sys v0.0.0-20200317113312-5766fd39f98d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d h1:nc5K6ox/4lTFbMVSL9WRR81ixkcwXThoiF6yf+R9scA= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v8 v8.18.2 h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2GVOI3xgiMrQ= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= -gopkg.in/gorp.v1 v1.7.1 h1:GBB9KrWRATQZh95HJyVGUZrWwOPswitEYEyqlK8JbAA= -gopkg.in/gorp.v1 v1.7.1/go.mod h1:Wo3h+DBQZIxATwftsglhdD/62zRFPhGhTiu5jUJmCaw= -gopkg.in/mgo.v2 v2.0.0-20160818020120-3f83fa500528 h1:/saqWwm73dLmuzbNhe92F0QsZ/KiFND+esHco2v1hiY= -gopkg.in/mgo.v2 v2.0.0-20160818020120-3f83fa500528/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7 h1:+t9dhfO+GNOIGJof6kPOAenx7YgrZMTdRPV+EsnPabk= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/go-playground/validator.v9 v9.29.1 h1:SvGtYmN60a5CVKTOzMSyfzWDeZRxRuGvRQyEAKbw1xc= +gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +gopkg.in/go-playground/validator.v9 v9.31.0 h1:bmXmP2RSNtFES+bn4uYuHT7iJFJv7Vj+an+ZQdDaD1M= +gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +gopkg.in/gorp.v1 v1.7.2 h1:j3DWlAyGVv8whO7AcIWznQ2Yj7yJkn34B8s63GViAAw= +gopkg.in/gorp.v1 v1.7.2/go.mod h1:Wo3h+DBQZIxATwftsglhdD/62zRFPhGhTiu5jUJmCaw= +gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= +gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/logstats/logstats.go b/logstats/logstats.go index 9561683..03100db 100644 --- a/logstats/logstats.go +++ b/logstats/logstats.go @@ -27,7 +27,7 @@ import ( "github.com/capitalone/checks-out/set" "github.com/capitalone/checks-out/store/datastore" - log "github.com/Sirupsen/logrus" + log "github.com/sirupsen/logrus" ) var ( diff --git a/main.go b/main.go index 8189231..494ee0f 100644 --- a/main.go +++ b/main.go @@ -35,8 +35,8 @@ import ( "github.com/capitalone/checks-out/usage" "github.com/capitalone/checks-out/version" - "github.com/Sirupsen/logrus" _ "github.com/joho/godotenv/autoload" + "github.com/sirupsen/logrus" ) func setLogLevel(level string) { diff --git a/migration/migration.go b/migration/migration.go index c22d53a..340fbac 100644 --- a/migration/migration.go +++ b/migration/migration.go @@ -25,8 +25,8 @@ import ( "github.com/capitalone/checks-out/remote" "github.com/capitalone/checks-out/store" - log "github.com/Sirupsen/logrus" "github.com/mspiegel/go-multierror" + log "github.com/sirupsen/logrus" ) // Migrate performs any (store x remote) operations necessary diff --git a/model/org.go b/model/org.go index fd237e7..8c0893d 100644 --- a/model/org.go +++ b/model/org.go @@ -19,8 +19,8 @@ See the License for the specific language governing permissions and limitations package model type GitHubOrg struct { - Login string `json:"login"` - Avatar string `json:"avatar"` - Enabled bool `json:"enabled"` - Admin bool `json:"admin"` + Login string `json:"login"` + Avatar string `json:"avatar"` + Enabled bool `json:"enabled"` + Admin bool `json:"admin"` } diff --git a/model/repo.go b/model/repo.go index ce1cc77..190e786 100644 --- a/model/repo.go +++ b/model/repo.go @@ -36,7 +36,6 @@ type Perm struct { Admin bool } - type OrgDb struct { ID int64 `json:"id,omitempty" meddler:"org_id,pk"` UserID int64 `json:"-" meddler:"org_user_id"` diff --git a/model/scopepolicy.go b/model/scopepolicy.go index 4ce4fa7..1079023 100644 --- a/model/scopepolicy.go +++ b/model/scopepolicy.go @@ -22,7 +22,7 @@ import ( "github.com/capitalone/checks-out/strings/miniglob" "github.com/capitalone/checks-out/strings/rxserde" - log "github.com/Sirupsen/logrus" + log "github.com/sirupsen/logrus" ) func fileMatch(globs []miniglob.MiniGlob, filename string) bool { diff --git a/model/tag.go b/model/tag.go index 6c2f6f0..ab55f4e 100644 --- a/model/tag.go +++ b/model/tag.go @@ -117,7 +117,7 @@ func (t *TagConfig) build() error { } func (t *TagConfig) validate() error { - buffer, err := t.execute(TemplateTag{Version:"1.0.0"}) + buffer, err := t.execute(TemplateTag{Version: "1.0.0"}) if err != nil { return err } diff --git a/notifier/github/github.go b/notifier/github/github.go index de0f2ad..80d3779 100644 --- a/notifier/github/github.go +++ b/notifier/github/github.go @@ -22,11 +22,11 @@ import ( "context" "fmt" - log "github.com/Sirupsen/logrus" "github.com/capitalone/checks-out/model" "github.com/capitalone/checks-out/notifier" "github.com/capitalone/checks-out/remote" "github.com/capitalone/checks-out/web" + log "github.com/sirupsen/logrus" ) type MySender struct{} diff --git a/notifier/notifier.go b/notifier/notifier.go index ebcf5bb..0d03aac 100644 --- a/notifier/notifier.go +++ b/notifier/notifier.go @@ -23,8 +23,8 @@ import ( "fmt" "strings" - log "github.com/Sirupsen/logrus" "github.com/capitalone/checks-out/model" + log "github.com/sirupsen/logrus" ) var ( diff --git a/notifier/slack/slack.go b/notifier/slack/slack.go index 4a61275..d8ee2aa 100644 --- a/notifier/slack/slack.go +++ b/notifier/slack/slack.go @@ -30,7 +30,7 @@ import ( "github.com/capitalone/checks-out/model" "github.com/capitalone/checks-out/notifier" - log "github.com/Sirupsen/logrus" + log "github.com/sirupsen/logrus" ) var ( diff --git a/remote/github/github.go b/remote/github/github.go index 2d2a1fd..4dcc9f5 100644 --- a/remote/github/github.go +++ b/remote/github/github.go @@ -34,9 +34,9 @@ import ( "github.com/capitalone/checks-out/shared/httputil" "github.com/capitalone/checks-out/strings/lowercase" - log "github.com/Sirupsen/logrus" - "github.com/google/go-github/github" + "github.com/google/go-github/v30/github" multierror "github.com/mspiegel/go-multierror" + log "github.com/sirupsen/logrus" "golang.org/x/oauth2" ) @@ -138,7 +138,7 @@ func (g *Github) GetUser(ctx context.Context, res http.ResponseWriter, req *http // get the subset of requested scopes granted to the access token scopes, err = g.GetScopes(ctx, token.AccessToken) if err != nil { - err = fmt.Errorf("Fetching user. %s", err) + err = fmt.Errorf("Getting scopes. %s", err) return nil, createError(resp, err) } @@ -162,7 +162,7 @@ func (g *Github) GetUserToken(ctx context.Context, token string) (string, error) func (g *Github) GetScopes(ctx context.Context, token string) (string, error) { client := basicAuthClient(g.API, g.Client, g.Secret) - auth, resp, err := client.Authorizations.Check(ctx, g.Client, token) + auth, resp, err := getScopesDeprecated(ctx, client, g.Client, token) if err != nil { err = fmt.Errorf("Checking authorization. %s", err) return "", createError(resp, err) @@ -174,6 +174,30 @@ func (g *Github) GetScopes(ctx context.Context, token string) (string, error) { return scopes.Print(","), nil } +const mediaTypeOAuthAppPreview = "application/vnd.github.doctor-strange-preview+json" + +// getScopesDeprecated implements a method that has been removed from the Github API. Unfortunately, +// Enterprise Github doesn't currently support the endpoint documented at +// https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/ . This function is only needed +// until Enterprise Github is updated to use the new API. +func getScopesDeprecated(ctx context.Context, client *github.Client, clientID, token string) (*github.Authorization, *github.Response, error) { + u := fmt.Sprintf("applications/%v/tokens/%v", clientID, token) + + req, err := client.NewRequest(http.MethodGet, u, nil) + if err != nil { + return nil, nil, err + } + req.Header.Set("Accept", mediaTypeOAuthAppPreview) + + a := new(github.Authorization) + resp, err := client.Do(ctx, req, a) + if err != nil { + return nil, resp, err + } + + return a, resp, nil +} + func (g *Github) RevokeAuthorization(ctx context.Context, user *model.User) error { client := basicAuthClient(g.API, g.Client, g.Secret) resp, err := client.Authorizations.Revoke(ctx, g.Client, user.Token) @@ -258,7 +282,7 @@ func (g *Github) ListTeams(ctx context.Context, user *model.User, org string) (s func getTeams(ctx context.Context, client *github.Client, org string) ([]*github.Team, error) { var teams []*github.Team resp, err := buildCompleteList(func(opts *github.ListOptions) (*github.Response, error) { - newTeams, response, err := client.Organizations.ListTeams(ctx, org, opts) + newTeams, response, err := client.Teams.ListTeams(ctx, org, opts) teams = append(teams, newTeams...) return response, err }) @@ -279,22 +303,22 @@ func getTeamMembers(ctx context.Context, client *github.Client, org string, team if err != nil { return nil, err } - var id *int64 + var slug *string for _, t := range teams { if strings.EqualFold(t.GetSlug(), team) { - id = t.ID + slug = t.Slug break } } - if id == nil { + if slug == nil { err = fmt.Errorf("Team %s not found for organization %s.", team, org) return nil, exterror.Create(http.StatusNotFound, err) } - topts := github.OrganizationListTeamMembersOptions{} + topts := github.TeamListTeamMembersOptions{} var teammates []*github.User resp, err := buildCompleteList(func(opts *github.ListOptions) (*github.Response, error) { topts.ListOptions = *opts - newTmates, resp2, err2 := client.Organizations.ListTeamMembers(ctx, *id, &topts) + newTmates, resp2, err2 := client.Teams.ListTeamMembersBySlug(ctx, org, *slug, &topts) teammates = append(teammates, newTmates...) return resp2, err2 }) @@ -715,7 +739,7 @@ func (g *Github) GetAllComments(ctx context.Context, u *model.User, r *model.Rep } func getAllComments(ctx context.Context, client *github.Client, r *model.Repo, num int) ([]*model.Comment, error) { - lcOpts := github.IssueListCommentsOptions{Direction: "desc", Sort: "created"} + lcOpts := github.IssueListCommentsOptions{Direction: github.String("desc"), Sort: github.String("created")} var comm []*github.IssueComment resp, err := buildCompleteList(func(opts *github.ListOptions) (*github.Response, error) { lcOpts.ListOptions = *opts @@ -773,15 +797,19 @@ func getHead(ctx context.Context, client *github.Client, r *model.Repo, num int, return commit, nil } +func timep(t time.Time) *time.Time { + return &t +} + func getCommentsSinceHead(ctx context.Context, client *github.Client, r *model.Repo, num int, noUIMerge bool) ([]*model.Comment, error) { commit, err := getHead(ctx, client, r, num, noUIMerge) if err != nil { return nil, err } lcOpts := github.IssueListCommentsOptions{ - Direction: "desc", - Sort: "created", - Since: commit.Commit.Committer.GetDate()} + Direction: github.String("desc"), + Sort: github.String("created"), + Since: timep(commit.Commit.Committer.GetDate())} var comm []*github.IssueComment resp, err := buildCompleteList(func(opts *github.ListOptions) (*github.Response, error) { lcOpts.ListOptions = *opts @@ -1010,7 +1038,7 @@ func createEmptyCommit(ctx context.Context, client *github.Client, r *model.Repo commit, resp, err := client.Git.CreateCommit(ctx, r.Owner, r.Name, &github.Commit{ Message: github.String(msg), Tree: prev.Tree, - Parents: []github.Commit{{ + Parents: []*github.Commit{{ SHA: github.String(sha), }}, }) diff --git a/remote/github/github_integration_test.go b/remote/github/github_integration_test.go index a71169c..17101c0 100644 --- a/remote/github/github_integration_test.go +++ b/remote/github/github_integration_test.go @@ -30,7 +30,7 @@ import ( "github.com/capitalone/checks-out/exterror" "github.com/capitalone/checks-out/model" - "github.com/google/go-github/github" + "github.com/google/go-github/v30/github" "golang.org/x/oauth2" ) @@ -140,7 +140,7 @@ func testGetRepo(t *testing.T, client *github.Client, repo *github.Repository) { func testGetComments(t *testing.T, client *github.Client, repo *github.Repository, pr *github.PullRequest) { ctx := context.Background() - opts := github.IssueListCommentsOptions{Direction: "desc", Sort: "created"} + opts := github.IssueListCommentsOptions{Direction: github.String("desc"), Sort: github.String("created")} opts.PerPage = 100 comm, _, err := client.Issues.ListComments(ctx, *repo.Owner.Login, *repo.Name, *pr.Number, &opts) if err != nil { @@ -360,7 +360,7 @@ func createTestCommit(t *testing.T, client *github.Client, repo *github.Reposito if err != nil { t.Fatal("Unable to get create blob", filename, err) } - tree, _, err := client.Git.CreateTree(ctx, *repo.Owner.Login, *repo.Name, *branch.Object.SHA, []github.TreeEntry{{ + tree, _, err := client.Git.CreateTree(ctx, *repo.Owner.Login, *repo.Name, *branch.Object.SHA, []*github.TreeEntry{{ Path: github.String(filename), Mode: github.String("100644"), Type: github.String("blob"), @@ -372,7 +372,7 @@ func createTestCommit(t *testing.T, client *github.Client, repo *github.Reposito commit, _, err := client.Git.CreateCommit(ctx, *repo.Owner.Login, *repo.Name, &github.Commit{ Message: github.String(fmt.Sprintf("%s commit", filename)), Tree: tree, - Parents: []github.Commit{{ + Parents: []*github.Commit{{ SHA: branch.Object.SHA, }, }, diff --git a/remote/github/paging.go b/remote/github/paging.go index fdee22e..58fb610 100644 --- a/remote/github/paging.go +++ b/remote/github/paging.go @@ -19,7 +19,7 @@ See the License for the specific language governing permissions and limitations package github import ( - "github.com/google/go-github/github" + "github.com/google/go-github/v30/github" ) func buildCompleteList(process func(opts *github.ListOptions) (*github.Response, error)) (*github.Response, error) { diff --git a/remote/github/utils.go b/remote/github/utils.go index d4b2787..22c72a2 100644 --- a/remote/github/utils.go +++ b/remote/github/utils.go @@ -29,7 +29,7 @@ import ( "github.com/capitalone/checks-out/model" "github.com/capitalone/checks-out/usage" - "github.com/google/go-github/github" + "github.com/google/go-github/v30/github" "golang.org/x/oauth2" ) @@ -180,7 +180,6 @@ func getOrgHook(ctx context.Context, client *github.Client, owner, rawurl string // for the specified repository. func createHook(ctx context.Context, client *github.Client, owner, name, url string) (*github.Hook, error) { var hook = new(github.Hook) - hook.Name = github.String("web") hook.Events = []string{"issue_comment", "status", "pull_request", "pull_request_review"} hook.Config = map[string]interface{}{} hook.Config["url"] = url @@ -196,7 +195,6 @@ func createHook(ctx context.Context, client *github.Client, owner, name, url str // for the specified Organization. func createOrgHook(ctx context.Context, client *github.Client, owner, url string) (*github.Hook, error) { var hook = new(github.Hook) - hook.Name = github.String("web") hook.Events = []string{"repository"} hook.Config = map[string]interface{}{} hook.Config["url"] = url diff --git a/remote/github/walk.go b/remote/github/walk.go index f7e5c29..a07c643 100644 --- a/remote/github/walk.go +++ b/remote/github/walk.go @@ -25,7 +25,7 @@ import ( "github.com/capitalone/checks-out/model" "github.com/capitalone/checks-out/set" - "github.com/google/go-github/github" + "github.com/google/go-github/v30/github" ) var systemAccounts = set.New("GitHub", "GitHub Enterprise") @@ -71,8 +71,8 @@ func followCommit(ctx context.Context, client *github.Client, r *model.Repo, com if !isCommitUIMerge(commit) { return commit, nil } - left := &commit.Parents[0] - right := &commit.Parents[1] + left := commit.Parents[0] + right := commit.Parents[1] if baseref.Contains(*left.SHA) && baseref.Contains(*right.SHA) { return commit, nil } diff --git a/router/middleware/access/access.go b/router/middleware/access/access.go index 9fd82d3..bc9bdd4 100644 --- a/router/middleware/access/access.go +++ b/router/middleware/access/access.go @@ -22,8 +22,8 @@ import ( "github.com/capitalone/checks-out/remote" "github.com/capitalone/checks-out/router/middleware/session" - log "github.com/Sirupsen/logrus" "github.com/gin-gonic/gin" + log "github.com/sirupsen/logrus" ) func OwnerAdmin(c *gin.Context) { diff --git a/router/middleware/cache.go b/router/middleware/cache.go index c251632..45b839f 100644 --- a/router/middleware/cache.go +++ b/router/middleware/cache.go @@ -21,15 +21,15 @@ package middleware import ( "time" - "github.com/gin-gonic/gin" "github.com/capitalone/checks-out/cache" "github.com/capitalone/checks-out/envvars" + "github.com/gin-gonic/gin" ) func Cache() gin.HandlerFunc { cache_ := cache.NewTTL(time.Duration(envvars.Env.Cache.CacheTTL)) return func(c *gin.Context) { - cache.ToContext(c, cache_) + cache.ToContext(c, cache_) c.Next() } } diff --git a/router/middleware/exterror.go b/router/middleware/exterror.go index 087f5b4..d0d4763 100644 --- a/router/middleware/exterror.go +++ b/router/middleware/exterror.go @@ -23,8 +23,8 @@ import ( "github.com/capitalone/checks-out/exterror" - log "github.com/Sirupsen/logrus" "github.com/gin-gonic/gin" + log "github.com/sirupsen/logrus" ) func ExtError() gin.HandlerFunc { diff --git a/router/middleware/logrequests.go b/router/middleware/logrequests.go index 06fb668..300d08a 100644 --- a/router/middleware/logrequests.go +++ b/router/middleware/logrequests.go @@ -25,8 +25,8 @@ import ( "github.com/capitalone/checks-out/envvars" "github.com/capitalone/checks-out/exterror" - "github.com/Sirupsen/logrus" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" ) func Ginrus(logger *logrus.Logger, timeFormat string, utc bool) gin.HandlerFunc { diff --git a/router/middleware/recovery.go b/router/middleware/recovery.go index 0451d56..a6bed55 100644 --- a/router/middleware/recovery.go +++ b/router/middleware/recovery.go @@ -27,8 +27,8 @@ import ( "net/http/httputil" "runtime" - "github.com/Sirupsen/logrus" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" ) var ( diff --git a/router/middleware/session/capabilities.go b/router/middleware/session/capabilities.go index 28835a7..d6847e9 100644 --- a/router/middleware/session/capabilities.go +++ b/router/middleware/session/capabilities.go @@ -19,10 +19,10 @@ See the License for the specific language governing permissions and limitations package session import ( - "github.com/gin-gonic/gin" "github.com/capitalone/checks-out/exterror" "github.com/capitalone/checks-out/model" "github.com/capitalone/checks-out/remote" + "github.com/gin-gonic/gin" ) func Capability(c *gin.Context) *model.Capabilities { diff --git a/router/middleware/store.go b/router/middleware/store.go index 4176339..16748b9 100644 --- a/router/middleware/store.go +++ b/router/middleware/store.go @@ -21,9 +21,9 @@ package middleware import ( "fmt" - "github.com/gin-gonic/gin" "github.com/capitalone/checks-out/store" "github.com/capitalone/checks-out/store/datastore" + "github.com/gin-gonic/gin" ) func Store() gin.HandlerFunc { diff --git a/router/router.go b/router/router.go index 9401d08..f47d672 100644 --- a/router/router.go +++ b/router/router.go @@ -24,7 +24,6 @@ import ( rpprof "runtime/pprof" "time" - "github.com/Sirupsen/logrus" "github.com/capitalone/checks-out/api" "github.com/capitalone/checks-out/envvars" "github.com/capitalone/checks-out/router/middleware" @@ -35,6 +34,7 @@ import ( "github.com/capitalone/checks-out/web/static" "github.com/capitalone/checks-out/web/template" "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" ) // Load creates a new HTTP handler @@ -117,6 +117,7 @@ func Load() http.Handler { e.GET("/login", web.Login) e.POST("/login", web.LoginToken) e.GET("/logout", web.Logout) + e.GET("/_confirm_template", web.ConfirmTemplate) e.NoRoute(web.Index) return e diff --git a/set/lowerset.go b/set/lowerset.go index 5895967..1398210 100644 --- a/set/lowerset.go +++ b/set/lowerset.go @@ -20,8 +20,8 @@ package set import ( "encoding/json" - "sort" "github.com/capitalone/checks-out/strings/lowercase" + "sort" "strings" ) @@ -106,7 +106,7 @@ func (s LowerSet) Difference(other LowerSet) LowerSet { } func (s LowerSet) Print(sep string) string { - keys := s.KeysSorted(func(s1,s2 lowercase.String) bool { + keys := s.KeysSorted(func(s1, s2 lowercase.String) bool { return s1.String() < s2.String() }) return strings.Join(keys.ToStringSlice(), sep) @@ -142,7 +142,7 @@ func (s LowerSet) Keys() lowercase.Slice { return lst } -func (s LowerSet) KeysSorted(f func (s1, s2 lowercase.String) bool) lowercase.Slice { +func (s LowerSet) KeysSorted(f func(s1, s2 lowercase.String) bool) lowercase.Slice { lst := s.Keys() sort.Slice(lst, func(i, j int) bool { return f(lst[i], lst[j]) @@ -173,4 +173,4 @@ func (s *LowerSet) UnmarshalJSON(data []byte) error { func (s LowerSet) ToSet() Set { return New(s.Keys().ToStringSlice()...) -} \ No newline at end of file +} diff --git a/set/lowerset_test.go b/set/lowerset_test.go index 448ff6e..6738a2f 100644 --- a/set/lowerset_test.go +++ b/set/lowerset_test.go @@ -20,9 +20,9 @@ package set import ( "encoding/json" + "github.com/capitalone/checks-out/strings/lowercase" "reflect" "testing" - "github.com/capitalone/checks-out/strings/lowercase" ) func TestAddAllLower(t *testing.T) { diff --git a/set/set.go b/set/set.go index 17ac915..649b6a5 100644 --- a/set/set.go +++ b/set/set.go @@ -82,7 +82,7 @@ func (s Set) Difference(other Set) Set { func (s Set) Print(sep string) string { res := "" - keys := s.KeysSorted(func(s1,s2 string) bool { + keys := s.KeysSorted(func(s1, s2 string) bool { return s1 < s2 }) for i, k := range keys { @@ -115,7 +115,7 @@ func (s Set) Keys() []string { return lst } -func (s Set) KeysSorted(f func (s1, s2 string) bool) []string { +func (s Set) KeysSorted(f func(s1, s2 string) bool) []string { lst := s.Keys() sort.Slice(lst, func(i, j int) bool { return f(lst[i], lst[j]) diff --git a/store/context.go b/store/context.go index bd31721..ac432f8 100644 --- a/store/context.go +++ b/store/context.go @@ -38,4 +38,4 @@ func ToContext(c Setter, store Store) { } func AddToContext(c context.Context, store Store) context.Context { return context.WithValue(c, key, store) -} \ No newline at end of file +} diff --git a/store/datastore/datastore.go b/store/datastore/datastore.go index 6ab7649..eb4e74b 100644 --- a/store/datastore/datastore.go +++ b/store/datastore/datastore.go @@ -28,7 +28,7 @@ import ( "github.com/capitalone/checks-out/store" "github.com/capitalone/checks-out/store/migration" - "github.com/Sirupsen/logrus" + "github.com/sirupsen/logrus" // bindings for meddler _ "github.com/go-sql-driver/mysql" // bindings for meddler diff --git a/store/datastore/datastore_test.go b/store/datastore/datastore_test.go index 80bf73e..c912b44 100644 --- a/store/datastore/datastore_test.go +++ b/store/datastore/datastore_test.go @@ -20,8 +20,8 @@ package datastore import ( "database/sql" - "os" "github.com/capitalone/checks-out/set" + "os" ) // OpenTest opens a new database connection for testing purposes. diff --git a/store/datastore/users_test.go b/store/datastore/users_test.go index 8f41419..23ae1cf 100644 --- a/store/datastore/users_test.go +++ b/store/datastore/users_test.go @@ -19,8 +19,8 @@ See the License for the specific language governing permissions and limitations package datastore import ( - "github.com/franela/goblin" "github.com/capitalone/checks-out/model" + "github.com/franela/goblin" "testing" ) diff --git a/store/migration/migration_gen.go b/store/migration/migration_gen.go index 70a98c9..8a1ab99 100644 --- a/store/migration/migration_gen.go +++ b/store/migration/migration_gen.go @@ -88,7 +88,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _sqlite3001_initSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x92\xc1\x8e\x82\x30\x10\x86\xef\x7d\x8a\x39\x6a\x56\x9f\x80\x13\xca\xec\xa6\x59\x6d\xdd\x5a\x12\x3c\x99\x66\xb7\x21\x8d\x40\x49\x41\xdd\xc7\xdf\xd0\x14\x94\x1e\x36\x72\x6a\xbe\xf0\x4f\xe7\x9b\xce\x7a\x0d\x6f\xb5\x29\x9d\xea\x35\xe4\x2d\x21\x5b\x81\xa9\x44\x90\xe9\x66\x87\x40\xdf\x81\x71\x09\x58\xd0\xa3\x3c\xc2\xb5\xd3\xae\x83\x05\xf1\x87\xb3\xf9\x01\xff\x51\x26\xf1\x03\x05\x1c\x04\xdd\xa7\xe2\x04\x9f\x78\x82\x34\x97\x9c\xb2\xad\xc0\x3d\x32\x49\x56\xfe\xff\xca\x96\xa6\x01\x00\x89\xc5\x88\x7a\x7b\xd1\x11\xd2\xb5\x32\xd5\x1c\xa9\x9b\xea\x95\x9b\xa1\x4e\x7f\x3b\xdd\x07\x44\x56\x39\xa3\x5f\x39\x2e\x1e\xd7\x2c\xc9\x32\xf9\x57\xc5\xe9\xd6\x7a\x95\xe1\x30\xa9\xbc\xe2\xe2\x03\xd3\x00\x42\x20\x60\x7b\x6f\xb4\x83\xa9\x7b\xcf\x1a\x55\x6b\x88\x58\x57\x5d\xcb\x98\x55\xa6\xb9\xc4\xac\x75\xe6\x36\xbc\x0b\x6c\x38\xdf\x61\xca\xc6\x78\xb0\x8f\xf4\xa7\xd2\x33\x7b\xca\x32\x2c\x22\x7b\xf3\x7b\x9e\xf5\xcb\xd9\x38\x90\x07\x5e\x26\xaf\x54\x18\x07\x11\x55\x08\x78\x68\xe3\x79\xbf\x32\x7b\x6f\x08\xc9\x04\x3f\x84\x47\xf1\x99\xe4\x99\xf8\x1d\x4b\xc8\x5f\x00\x00\x00\xff\xff\x54\x85\x0e\xca\x96\x02\x00\x00") +var _sqlite3001_initSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x92\xc1\x8e\x82\x30\x10\x86\xef\x7d\x8a\x39\x6a\x56\x9f\x80\x13\xca\xec\xa6\x59\x6d\xdd\x5a\x12\x3c\x99\x66\xb7\x21\x8d\x40\x49\x41\xdd\xc7\xdf\xd0\x14\x94\x1e\x36\x72\x6a\xbe\xf0\x4f\xe7\x9b\xce\x7a\x0d\x6f\xb5\x29\x9d\xea\x35\xe4\x2d\x21\x5b\x81\xa9\x44\x90\xe9\x66\x87\x40\xdf\x81\x71\x09\x58\xd0\xa3\x3c\xc2\xb5\xd3\xae\x83\x05\xf1\x87\xb3\xf9\x01\xff\x51\x26\xf1\x03\x05\x1c\x04\xdd\xa7\xe2\x04\x9f\x78\x82\x34\x97\x9c\xb2\xad\xc0\x3d\x32\x49\x56\xfe\xff\xca\x96\xa6\x01\x00\x89\xc5\x88\x7a\x7b\xd1\x11\xd2\xb5\x32\xd5\x1c\xa9\x9b\xea\x95\x9b\xa1\x4e\x7f\x3b\xdd\x07\x44\x56\x39\xa3\x5f\x39\x2e\x1e\xd7\x2c\xc9\x32\xf9\x57\xc5\xe9\xd6\x7a\x95\xe1\x30\xa9\xbc\xe2\xe2\x03\xd3\x00\x42\x20\x60\x7b\x6f\xb4\x83\xa9\x7b\xcf\x1a\x55\x6b\x88\x58\x57\x5d\xcb\x98\x55\xa6\xb9\xc4\xac\x75\xe6\x36\xbc\x0b\x6c\x38\xdf\x61\xca\xc6\x78\xb0\x8f\xf4\xa7\xd2\x33\x7b\xca\x32\x2c\x22\x7b\xf3\x7b\x9e\xf5\xcb\xd9\x38\x90\x07\x5e\x26\xaf\x54\x18\x07\x11\x55\x08\x78\x68\xe3\x79\xbf\x32\x7b\x6f\x08\xc9\x04\x3f\x84\x47\xf1\x99\xe4\x99\xf8\x1d\x4b\xc8\x5f\x00\x00\x00\xff\xff\x54\x85\x0e\xca\x96\x02\x00\x00") func sqlite3001_initSqlBytes() ([]byte, error) { return bindataRead( @@ -103,12 +103,12 @@ func sqlite3001_initSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "sqlite3/001_init.sql", size: 662, mode: os.FileMode(420), modTime: time.Unix(1481147727, 0)} + info := bindataFileInfo{name: "sqlite3/001_init.sql", size: 662, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _sqlite3002_orgSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x4a\x2d\xc8\x2f\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\xe7\x17\xa5\x2b\x38\xf9\xfb\xfb\xb8\x3a\xfa\x29\xb8\xb8\xba\x39\x86\xfa\x84\x28\xb8\x39\xfa\x04\xbb\x5a\x73\x01\x02\x00\x00\xff\xff\x4d\x6f\x52\x6d\x4d\x00\x00\x00") +var _sqlite3002_orgSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x4a\x2d\xc8\x2f\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\xe7\x17\xa5\x2b\x38\xf9\xfb\xfb\xb8\x3a\xfa\x29\xb8\xb8\xba\x39\x86\xfa\x84\x28\xb8\x39\xfa\x04\xbb\x5a\x73\x01\x02\x00\x00\xff\xff\x4d\x6f\x52\x6d\x4d\x00\x00\x00") func sqlite3002_orgSqlBytes() ([]byte, error) { return bindataRead( @@ -123,12 +123,12 @@ func sqlite3002_orgSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "sqlite3/002_org.sql", size: 77, mode: os.FileMode(420), modTime: time.Unix(1481147727, 0)} + info := bindataFileInfo{name: "sqlite3/002_org.sql", size: 77, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _sqlite3003_drop_emailsSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x6c\x90\xc1\x4e\xc3\x30\x10\x44\xef\xfb\x15\x7b\x6b\x2b\xd2\x2f\xc8\xc9\x24\x1b\x64\x91\xd8\x65\xb3\x96\xda\x53\x15\x81\x55\x45\x34\x4d\x95\x04\xf8\x7d\x84\x63\x28\x41\xf8\x34\x7e\xda\xf5\x8c\x67\xbb\xc5\xbb\xae\x3d\x0d\xcd\xe4\xd1\x5d\x01\x54\x29\xc4\x28\xea\xbe\x24\x7c\x1b\xfd\x30\x22\x93\x51\x15\xa1\x58\x9c\x7c\x77\x3d\x06\x98\x02\x64\x4c\x4a\x28\x4e\xea\x02\x8d\x15\xa4\xbd\xae\xa5\x8e\x7b\x6b\x08\xe2\xd8\xbe\x60\x38\xda\x08\x3d\x10\xe3\x8e\x75\xa5\xf8\x80\x8f\x74\x40\xe5\xc4\x6a\x93\x31\x55\x64\x04\x92\x30\x7f\xee\x4f\xed\x05\x11\x85\xf6\xdf\x68\xea\x5f\xfd\x1f\xd4\xbc\x37\x53\x33\x2c\xd0\xe8\x9f\x07\x3f\x45\x04\x89\x33\xfa\xc9\xd1\xfa\xf6\xe6\x06\x36\x29\x80\x36\x35\xb1\x7c\xa5\xb1\x73\x50\xa8\xa9\xa4\x4c\x7e\xd2\x26\x78\x5b\x89\x3a\xf8\x47\x3d\x1b\xc7\xcb\x6c\x09\x05\xdb\x0a\x96\xf5\xe4\x6c\x77\xb1\x9c\x05\xff\xdd\x77\xde\x7f\x5c\xfe\x6b\x5c\xe5\x39\x66\xb6\x74\x95\x99\x5d\x7c\xd7\xb4\xe7\xf0\x2d\xcc\xa9\x50\xae\x14\x5c\xad\xd2\xcf\x00\x00\x00\xff\xff\x71\xe7\x23\x15\xba\x01\x00\x00") +var _sqlite3003_drop_emailsSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\xc1\x4e\xc3\x30\x10\x44\xef\xfb\x15\x7b\x6b\x2b\xd2\x2f\xc8\xc9\x24\x1b\x64\x91\xd8\x65\xb3\x96\xda\x53\x15\x81\x55\x45\x34\x4d\x95\x04\xf8\x7d\x84\x63\x28\x41\xf8\x34\x7e\xda\xf5\x8c\x67\xbb\xc5\xbb\xae\x3d\x0d\xcd\xe4\xd1\x5d\x01\x54\x29\xc4\x28\xea\xbe\x24\x7c\x1b\xfd\x30\x22\x93\x51\x15\xa1\x58\x9c\x7c\x77\x3d\x06\x98\x02\x64\x4c\x4a\x28\x4e\xea\x02\x8d\x15\xa4\xbd\xae\xa5\x8e\x7b\x6b\x08\xe2\xd8\xbe\x60\x38\xda\x08\x3d\x10\xe3\x8e\x75\xa5\xf8\x80\x8f\x74\x40\xe5\xc4\x6a\x93\x31\x55\x64\x04\x92\x30\x7f\xee\x4f\xed\x05\x11\x85\xf6\xdf\x68\xea\x5f\xfd\x1f\xd4\xbc\x37\x53\x33\x2c\xd0\xe8\x9f\x07\x3f\x45\x04\x89\x33\xfa\xc9\xd1\xfa\xf6\xe6\x06\x36\x29\x80\x36\x35\xb1\x7c\xa5\xb1\x73\x50\xa8\xa9\xa4\x4c\x7e\xd2\x26\x78\x5b\x89\x3a\xf8\x47\x3d\x1b\xc7\xcb\x6c\x09\x05\xdb\x0a\x96\xf5\xe4\x6c\x77\xb1\x9c\x05\xff\xdd\x77\xde\x7f\x5c\xfe\x6b\x5c\xe5\x39\x66\xb6\x74\x95\x99\x5d\x7c\xd7\xb4\xe7\xf0\x2d\xcc\xa9\x50\xae\x14\x5c\xad\xd2\xcf\x00\x00\x00\xff\xff\x71\xe7\x23\x15\xba\x01\x00\x00") func sqlite3003_drop_emailsSqlBytes() ([]byte, error) { return bindataRead( @@ -143,12 +143,12 @@ func sqlite3003_drop_emailsSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "sqlite3/003_drop_emails.sql", size: 442, mode: os.FileMode(420), modTime: time.Unix(1483464365, 0)} + info := bindataFileInfo{name: "sqlite3/003_drop_emails.sql", size: 442, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _sqlite3004_limit_usersSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\xce\xb1\x0a\x83\x30\x10\xc6\xf1\xfd\x9e\xe2\x1b\x95\xea\x13\x64\xb2\xf5\x0a\x81\xa2\xad\x5e\xc0\xad\x74\x90\x10\x50\x53\xa2\xa5\xaf\x5f\x1a\x1d\x1c\x3a\xf4\xc6\x3b\xf8\xdd\x3f\xcf\x71\x18\x9d\x0d\x8f\xa5\x87\x79\x12\x9d\x1a\x2e\x84\x21\xc5\xf1\xc2\xd0\x67\x54\xb5\x80\x3b\xdd\x4a\x8b\xc1\x8d\x6e\xb9\xbf\xe6\x3e\xcc\x48\x08\x83\xb7\x6e\x42\x1c\xe1\x4e\x28\x33\x95\xbe\x19\x4e\xe2\x3e\xa5\x54\xfd\x81\xf9\x60\xa3\x05\x1f\xec\xaa\x00\x19\x36\xc8\x07\xbb\x32\xfb\xc6\xd2\xbf\x27\xa2\xb2\xa9\xaf\x1b\xbb\xab\x52\x3f\x0e\xdf\x0f\x8a\x3e\x01\x00\x00\xff\xff\x23\xb0\x80\x6b\xe6\x00\x00\x00") +var _sqlite3004_limit_usersSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\xce\xb1\x0a\x83\x30\x10\xc6\xf1\xfd\x9e\xe2\x1b\x95\xea\x13\x64\xb2\xf5\x0a\x81\xa2\xad\x5e\xc0\xad\x74\x90\x10\x50\x53\xa2\xa5\xaf\x5f\x1a\x1d\x1c\x3a\xf4\xc6\x3b\xf8\xdd\x3f\xcf\x71\x18\x9d\x0d\x8f\xa5\x87\x79\x12\x9d\x1a\x2e\x84\x21\xc5\xf1\xc2\xd0\x67\x54\xb5\x80\x3b\xdd\x4a\x8b\xc1\x8d\x6e\xb9\xbf\xe6\x3e\xcc\x48\x08\x83\xb7\x6e\x42\x1c\xe1\x4e\x28\x33\x95\xbe\x19\x4e\xe2\x3e\xa5\x54\xfd\x81\xf9\x60\xa3\x05\x1f\xec\xaa\x00\x19\x36\xc8\x07\xbb\x32\xfb\xc6\xd2\xbf\x27\xa2\xb2\xa9\xaf\x1b\xbb\xab\x52\x3f\x0e\xdf\x0f\x8a\x3e\x01\x00\x00\xff\xff\x23\xb0\x80\x6b\xe6\x00\x00\x00") func sqlite3004_limit_usersSqlBytes() ([]byte, error) { return bindataRead( @@ -163,12 +163,12 @@ func sqlite3004_limit_usersSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "sqlite3/004_limit_users.sql", size: 230, mode: os.FileMode(420), modTime: time.Unix(1483464365, 0)} + info := bindataFileInfo{name: "sqlite3/004_limit_users.sql", size: 230, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _sqlite3005_oauth_scopeSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\x17\x27\xe7\x17\xa4\x16\x2b\x84\xb8\x46\x84\x28\xb8\xb8\xba\x39\x86\xfa\x84\x28\xa8\xab\x5b\x73\x01\x02\x00\x00\xff\xff\x49\xec\x90\x98\x4a\x00\x00\x00") +var _sqlite3005_oauth_scopeSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\x17\x27\xe7\x17\xa4\x16\x2b\x84\xb8\x46\x84\x28\xb8\xb8\xba\x39\x86\xfa\x84\x28\xa8\xab\x5b\x73\x01\x02\x00\x00\xff\xff\x49\xec\x90\x98\x4a\x00\x00\x00") func sqlite3005_oauth_scopeSqlBytes() ([]byte, error) { return bindataRead( @@ -183,12 +183,12 @@ func sqlite3005_oauth_scopeSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "sqlite3/005_oauth_scope.sql", size: 74, mode: os.FileMode(420), modTime: time.Unix(1495121623, 0)} + info := bindataFileInfo{name: "sqlite3/005_oauth_scope.sql", size: 74, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _sqlite3006_add_orgs_tableSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x90\xc1\x4e\xc3\x30\x10\x44\xef\xfe\x8a\x39\x26\x82\x4a\x50\xd1\x53\x4e\x6e\xb2\x80\x45\x6b\x97\xad\x83\xda\x53\x85\xc0\xaa\x2c\x20\xa9\x9c\x42\xf9\x7c\x64\xe4\xa4\x05\x2e\xf8\x64\xcd\xe8\xed\xee\xcc\x68\x84\xb3\x37\xbf\x0d\x8f\x7b\x87\x7a\x27\x44\xc9\x24\x2d\xc1\xca\xe9\x8c\xa0\xae\xa1\x8d\x05\xad\xd4\xd2\x2e\xd1\x86\x6d\x87\x4c\x20\x7e\x36\xfe\x19\xdf\x4f\x69\x4b\x37\xc4\x58\xb0\x9a\x4b\x5e\xe3\x8e\xd6\x90\xb5\x35\x4a\x97\x4c\x73\xd2\xf6\x3c\x01\xef\x9d\x0b\x91\x4a\x40\x2f\xb7\x87\xc6\x05\x00\x0f\x92\xcb\x5b\xc9\xd9\x78\x32\xc9\x7b\xef\xd5\x37\x2f\x38\xf1\x2e\x2f\xc6\x57\x83\xb9\x0b\xfe\x23\x1e\x3d\x35\x66\x46\x52\xf7\x72\xe7\x9e\x82\xdb\xff\x9d\x57\x6b\x75\x5f\x13\xb2\x61\x67\x2e\xf2\x62\x88\xab\x74\x45\xab\x5f\x71\xfd\xe7\xe6\x78\xa0\xd1\x29\xfe\x91\x2f\xfe\x01\xf7\xa1\x7f\xe0\x49\x8c\xeb\x4f\xdb\xaf\xda\x43\x23\x44\xc5\x66\x91\xda\x8f\x44\x21\xbe\x02\x00\x00\xff\xff\x7b\x6c\xa2\x6a\xa1\x01\x00\x00") +var _sqlite3006_add_orgs_tableSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x90\xc1\x4e\xc3\x30\x10\x44\xef\xfe\x8a\x39\x26\x82\x4a\x50\xd1\x53\x4e\x6e\xb2\x80\x45\x6b\x97\xad\x83\xda\x53\x85\xc0\xaa\x2c\x20\xa9\x9c\x42\xf9\x7c\x64\xe4\xa4\x05\x2e\xf8\x64\xcd\xe8\xed\xee\xcc\x68\x84\xb3\x37\xbf\x0d\x8f\x7b\x87\x7a\x27\x44\xc9\x24\x2d\xc1\xca\xe9\x8c\xa0\xae\xa1\x8d\x05\xad\xd4\xd2\x2e\xd1\x86\x6d\x87\x4c\x20\x7e\x36\xfe\x19\xdf\x4f\x69\x4b\x37\xc4\x58\xb0\x9a\x4b\x5e\xe3\x8e\xd6\x90\xb5\x35\x4a\x97\x4c\x73\xd2\xf6\x3c\x01\xef\x9d\x0b\x91\x4a\x40\x2f\xb7\x87\xc6\x05\x00\x0f\x92\xcb\x5b\xc9\xd9\x78\x32\xc9\x7b\xef\xd5\x37\x2f\x38\xf1\x2e\x2f\xc6\x57\x83\xb9\x0b\xfe\x23\x1e\x3d\x35\x66\x46\x52\xf7\x72\xe7\x9e\x82\xdb\xff\x9d\x57\x6b\x75\x5f\x13\xb2\x61\x67\x2e\xf2\x62\x88\xab\x74\x45\xab\x5f\x71\xfd\xe7\xe6\x78\xa0\xd1\x29\xfe\x91\x2f\xfe\x01\xf7\xa1\x7f\xe0\x49\x8c\xeb\x4f\xdb\xaf\xda\x43\x23\x44\xc5\x66\x91\xda\x8f\x44\x21\xbe\x02\x00\x00\xff\xff\x7b\x6c\xa2\x6a\xa1\x01\x00\x00") func sqlite3006_add_orgs_tableSqlBytes() ([]byte, error) { return bindataRead( @@ -203,12 +203,12 @@ func sqlite3006_add_orgs_tableSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "sqlite3/006_add_orgs_table.sql", size: 417, mode: os.FileMode(420), modTime: time.Unix(1496351647, 0)} + info := bindataFileInfo{name: "sqlite3/006_add_orgs_table.sql", size: 417, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _sqlite3007_add_slack_urlsSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x6c\x8f\x31\x4e\xc5\x40\x0c\x44\x7b\x9f\x62\xca\xff\xc5\xcf\x09\x52\x81\x42\x87\x04\x42\x50\x47\x4b\x30\xc1\xca\xae\x37\x78\xbd\x22\xb9\x3d\x4a\x0a\x94\x22\x9d\xf5\xac\x79\x9a\x69\x1a\xdc\x25\x19\x2d\x38\xe3\x7d\x26\x1a\x8c\xb7\xd3\xc3\x47\x64\xc8\x17\x34\x3b\x78\x91\xe2\x05\x25\x86\x61\xea\xab\xc5\x72\x21\x40\x3e\x21\xea\x3c\xb2\x61\x36\x49\xc1\x56\x4c\xbc\x22\x54\xcf\xa2\x83\x71\x62\xf5\x1b\x01\xdf\xb9\x78\xaf\x21\x31\x9c\x17\xdf\x7d\x5a\x63\xdc\x5e\xb5\xb0\x9d\x50\x8b\x27\x50\xe5\xa7\xf2\xe5\x5f\x76\xdb\xc3\x57\xba\xb6\x44\xc7\x09\x5d\xfe\x55\xa2\xee\xf5\xf9\x05\x6f\xf7\x0f\x4f\x8f\x87\xd2\x2d\xfd\x05\x00\x00\xff\xff\x7c\x1e\xe0\x1f\xec\x00\x00\x00") +var _sqlite3007_add_slack_urlsSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8f\x31\x4e\xc5\x40\x0c\x44\x7b\x9f\x62\xca\xff\xc5\xcf\x09\x52\x81\x42\x87\x04\x42\x50\x47\x4b\x30\xc1\xca\xae\x37\x78\xbd\x22\xb9\x3d\x4a\x0a\x94\x22\x9d\xf5\xac\x79\x9a\x69\x1a\xdc\x25\x19\x2d\x38\xe3\x7d\x26\x1a\x8c\xb7\xd3\xc3\x47\x64\xc8\x17\x34\x3b\x78\x91\xe2\x05\x25\x86\x61\xea\xab\xc5\x72\x21\x40\x3e\x21\xea\x3c\xb2\x61\x36\x49\xc1\x56\x4c\xbc\x22\x54\xcf\xa2\x83\x71\x62\xf5\x1b\x01\xdf\xb9\x78\xaf\x21\x31\x9c\x17\xdf\x7d\x5a\x63\xdc\x5e\xb5\xb0\x9d\x50\x8b\x27\x50\xe5\xa7\xf2\xe5\x5f\x76\xdb\xc3\x57\xba\xb6\x44\xc7\x09\x5d\xfe\x55\xa2\xee\xf5\xf9\x05\x6f\xf7\x0f\x4f\x8f\x87\xd2\x2d\xfd\x05\x00\x00\xff\xff\x7c\x1e\xe0\x1f\xec\x00\x00\x00") func sqlite3007_add_slack_urlsSqlBytes() ([]byte, error) { return bindataRead( @@ -223,12 +223,12 @@ func sqlite3007_add_slack_urlsSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "sqlite3/007_add_slack_urls.sql", size: 236, mode: os.FileMode(420), modTime: time.Unix(1497971578, 0)} + info := bindataFileInfo{name: "sqlite3/007_add_slack_urls.sql", size: 236, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _mysql001_initSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x92\x41\x6f\x82\x30\x18\x86\xef\xfd\x15\xdf\x11\xb2\x99\x6c\x66\x9e\x38\x55\xf9\xb6\x35\xd3\xe2\x6a\x59\xf4\x64\x9a\xad\x31\x8d\x08\xa6\xa0\xfe\xfd\x85\x5a\x81\x6d\xb2\xc8\xa9\xe9\xc3\x5b\x78\x9f\x7e\x83\x01\xdc\xed\xcc\xc6\xaa\x4a\x43\xba\x27\x64\x22\x90\x4a\x04\x49\xc7\x53\x04\xf6\x0c\x3c\x91\x80\x4b\xb6\x90\x0b\x38\x94\xda\x96\x10\x10\xb7\x58\x9b\x2f\x70\x0f\xe3\x12\x5f\x50\xc0\x5c\xb0\x19\x15\x2b\x78\xc3\x15\xd0\x54\x26\x6b\xc6\x27\x02\x67\xc8\x25\xb9\x77\x81\xac\xd8\x98\x1c\x00\x3e\xa8\x98\xbc\x52\x11\x0c\x47\xa3\xd0\xa3\xaa\xd8\xea\x1e\xa4\x77\xca\x64\xd7\x91\x3a\xaa\x4a\xd9\x16\x3d\x3e\x0c\x9f\x2e\xac\xd4\x9f\x56\x57\xbf\x63\x29\x67\xef\x29\x06\xed\xef\x84\x24\x8c\xfe\xed\x6c\xf5\xbe\x70\x9d\xeb\x45\xd3\xf9\xa6\xd2\x2e\xd1\xa8\xf2\x09\xbf\x5d\x9c\x72\x6d\xe1\x4f\x2d\xc7\x72\xb5\xd3\xd0\xc3\xca\xec\xb0\xe9\x63\x99\xc9\xb7\x3f\x98\xf7\xe1\xe0\xde\x9a\x63\x7d\xc5\x30\x4e\x92\x29\x52\x7e\x39\xcf\x6b\xba\xee\xa9\xf9\xe4\x59\x13\x9d\x4a\x14\xde\xd2\xd9\x0b\x8d\x63\x60\x3c\xc6\x25\x04\x6d\xad\x30\xba\xe1\x4d\xef\xa5\x3e\xb6\x3b\x81\x71\x71\xca\x09\x89\x45\x32\xef\xa6\xa3\xee\x8e\x9b\xc2\x88\x7c\x07\x00\x00\xff\xff\x77\x0d\xa2\x03\xb8\x02\x00\x00") +var _mysql001_initSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x92\x41\x6f\x82\x30\x18\x86\xef\xfd\x15\xdf\x11\xb2\x99\x6c\x66\x9e\x38\x55\xf9\xb6\x35\xd3\xe2\x6a\x59\xf4\x64\x9a\xad\x31\x8d\x08\xa6\xa0\xfe\xfd\x85\x5a\x81\x6d\xb2\xc8\xa9\xe9\xc3\x5b\x78\x9f\x7e\x83\x01\xdc\xed\xcc\xc6\xaa\x4a\x43\xba\x27\x64\x22\x90\x4a\x04\x49\xc7\x53\x04\xf6\x0c\x3c\x91\x80\x4b\xb6\x90\x0b\x38\x94\xda\x96\x10\x10\xb7\x58\x9b\x2f\x70\x0f\xe3\x12\x5f\x50\xc0\x5c\xb0\x19\x15\x2b\x78\xc3\x15\xd0\x54\x26\x6b\xc6\x27\x02\x67\xc8\x25\xb9\x77\x81\xac\xd8\x98\x1c\x00\x3e\xa8\x98\xbc\x52\x11\x0c\x47\xa3\xd0\xa3\xaa\xd8\xea\x1e\xa4\x77\xca\x64\xd7\x91\x3a\xaa\x4a\xd9\x16\x3d\x3e\x0c\x9f\x2e\xac\xd4\x9f\x56\x57\xbf\x63\x29\x67\xef\x29\x06\xed\xef\x84\x24\x8c\xfe\xed\x6c\xf5\xbe\x70\x9d\xeb\x45\xd3\xf9\xa6\xd2\x2e\xd1\xa8\xf2\x09\xbf\x5d\x9c\x72\x6d\xe1\x4f\x2d\xc7\x72\xb5\xd3\xd0\xc3\xca\xec\xb0\xe9\x63\x99\xc9\xb7\x3f\x98\xf7\xe1\xe0\xde\x9a\x63\x7d\xc5\x30\x4e\x92\x29\x52\x7e\x39\xcf\x6b\xba\xee\xa9\xf9\xe4\x59\x13\x9d\x4a\x14\xde\xd2\xd9\x0b\x8d\x63\x60\x3c\xc6\x25\x04\x6d\xad\x30\xba\xe1\x4d\xef\xa5\x3e\xb6\x3b\x81\x71\x71\xca\x09\x89\x45\x32\xef\xa6\xa3\xee\x8e\x9b\xc2\x88\x7c\x07\x00\x00\xff\xff\x77\x0d\xa2\x03\xb8\x02\x00\x00") func mysql001_initSqlBytes() ([]byte, error) { return bindataRead( @@ -243,12 +243,12 @@ func mysql001_initSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "mysql/001_init.sql", size: 696, mode: os.FileMode(420), modTime: time.Unix(1481147727, 0)} + info := bindataFileInfo{name: "mysql/001_init.sql", size: 696, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _mysql002_orgSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x4a\x2d\xc8\x2f\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\xe7\x17\xa5\x2b\x38\xf9\xfb\xfb\xb8\x3a\xfa\x29\xb8\xb8\xba\x39\x86\xfa\x84\x28\xb8\x39\xfa\x04\xbb\x5a\x73\x71\x21\x9b\xe6\x92\x5f\x9e\x87\xcd\x3c\x97\x20\xff\x00\x74\x03\xad\x01\x01\x00\x00\xff\xff\x25\x2b\x07\x70\x87\x00\x00\x00") +var _mysql002_orgSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x4a\x2d\xc8\x2f\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\xe7\x17\xa5\x2b\x38\xf9\xfb\xfb\xb8\x3a\xfa\x29\xb8\xb8\xba\x39\x86\xfa\x84\x28\xb8\x39\xfa\x04\xbb\x5a\x73\x71\x21\x9b\xe6\x92\x5f\x9e\x87\xcd\x3c\x97\x20\xff\x00\x74\x03\xad\x01\x01\x00\x00\xff\xff\x25\x2b\x07\x70\x87\x00\x00\x00") func mysql002_orgSqlBytes() ([]byte, error) { return bindataRead( @@ -263,12 +263,12 @@ func mysql002_orgSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "mysql/002_org.sql", size: 135, mode: os.FileMode(420), modTime: time.Unix(1481147727, 0)} + info := bindataFileInfo{name: "mysql/002_org.sql", size: 135, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _mysql003_drop_emailsSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x09\xf2\x0f\x50\x70\xf6\xf7\x09\xf5\xf5\x03\x8b\xc4\xa7\xe6\x26\x66\xe6\x58\x73\x71\x21\x6b\x75\xc9\x2f\xcf\xc3\xa6\xd9\xd1\xc5\x05\x53\xaf\x42\x98\x63\x90\xb3\x87\x63\x90\x86\x91\xa9\xa9\xa6\x82\x8b\xab\x9b\x63\xa8\x4f\x88\x82\xba\xba\x35\x20\x00\x00\xff\xff\xe3\x75\x50\xf8\x8d\x00\x00\x00") +var _mysql003_drop_emailsSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x09\xf2\x0f\x50\x70\xf6\xf7\x09\xf5\xf5\x03\x8b\xc4\xa7\xe6\x26\x66\xe6\x58\x73\x71\x21\x6b\x75\xc9\x2f\xcf\xc3\xa6\xd9\xd1\xc5\x05\x53\xaf\x42\x98\x63\x90\xb3\x87\x63\x90\x86\x91\xa9\xa9\xa6\x82\x8b\xab\x9b\x63\xa8\x4f\x88\x82\xba\xba\x35\x20\x00\x00\xff\xff\xe3\x75\x50\xf8\x8d\x00\x00\x00") func mysql003_drop_emailsSqlBytes() ([]byte, error) { return bindataRead( @@ -283,12 +283,12 @@ func mysql003_drop_emailsSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "mysql/003_drop_emails.sql", size: 141, mode: os.FileMode(420), modTime: time.Unix(1483464365, 0)} + info := bindataFileInfo{name: "mysql/003_drop_emails.sql", size: 141, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _mysql004_limit_usersSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\x0e\x72\x75\x0c\x71\x55\x08\x71\x74\xf2\x71\x55\xf0\x74\x53\xf0\xf3\x0f\x51\x70\x8d\xf0\x0c\x0e\x09\x56\xc8\xc9\xcc\xcd\x2c\x89\x2f\x2d\x4e\x2d\x2a\x56\xd0\xe0\x52\x50\xc8\xc9\x4f\xcf\xcc\x53\x00\x83\x30\xc7\x20\x67\x0f\xc7\x20\x0d\x23\x53\x53\x4d\xb0\x16\xbf\x50\x1f\x1f\x2e\x9d\x50\x3f\xcf\xc0\x50\x57\x0d\xb0\x42\x4d\x2e\x4d\x6b\x22\x8c\xcf\x2f\x4a\x87\x98\x9e\x5f\x94\x8e\xc3\x58\x05\x05\x1d\x05\xa8\xc9\xf9\x45\xe9\x10\x73\x91\xbd\xe1\x92\x5f\x9e\xc7\xc5\xe5\x12\xe4\x1f\x00\xb5\x07\xc9\xe1\xd6\x58\x24\x40\x56\x5a\x73\x01\x02\x00\x00\xff\xff\x21\x06\x25\x0f\x09\x01\x00\x00") +var _mysql004_limit_usersSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\x0e\x72\x75\x0c\x71\x55\x08\x71\x74\xf2\x71\x55\xf0\x74\x53\xf0\xf3\x0f\x51\x70\x8d\xf0\x0c\x0e\x09\x56\xc8\xc9\xcc\xcd\x2c\x89\x2f\x2d\x4e\x2d\x2a\x56\xd0\xe0\x52\x50\xc8\xc9\x4f\xcf\xcc\x53\x00\x83\x30\xc7\x20\x67\x0f\xc7\x20\x0d\x23\x53\x53\x4d\xb0\x16\xbf\x50\x1f\x1f\x2e\x9d\x50\x3f\xcf\xc0\x50\x57\x0d\xb0\x42\x4d\x2e\x4d\x6b\x22\x8c\xcf\x2f\x4a\x87\x98\x9e\x5f\x94\x8e\xc3\x58\x05\x05\x1d\x05\xa8\xc9\xf9\x45\xe9\x10\x73\x91\xbd\xe1\x92\x5f\x9e\xc7\xc5\xe5\x12\xe4\x1f\x00\xb5\x07\xc9\xe1\xd6\x58\x24\x40\x56\x5a\x73\x01\x02\x00\x00\xff\xff\x21\x06\x25\x0f\x09\x01\x00\x00") func mysql004_limit_usersSqlBytes() ([]byte, error) { return bindataRead( @@ -303,12 +303,12 @@ func mysql004_limit_usersSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "mysql/004_limit_users.sql", size: 265, mode: os.FileMode(420), modTime: time.Unix(1483464365, 0)} + info := bindataFileInfo{name: "mysql/004_limit_users.sql", size: 265, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _mysql005_oauth_scopeSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\x17\x27\xe7\x17\xa4\x16\x2b\x84\x39\x06\x39\x7b\x38\x06\x69\x18\x99\x9a\x6a\x2a\xb8\xb8\xba\x39\x86\xfa\x84\x28\xa8\xab\x5b\x73\x71\x21\x1b\xe9\x92\x5f\x9e\x87\xcd\x50\x97\x20\xff\x00\x2c\xa6\x5a\x03\x02\x00\x00\xff\xff\x8c\x08\x6c\xbb\x8f\x00\x00\x00") +var _mysql005_oauth_scopeSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\x17\x27\xe7\x17\xa4\x16\x2b\x84\x39\x06\x39\x7b\x38\x06\x69\x18\x99\x9a\x6a\x2a\xb8\xb8\xba\x39\x86\xfa\x84\x28\xa8\xab\x5b\x73\x71\x21\x1b\xe9\x92\x5f\x9e\x87\xcd\x50\x97\x20\xff\x00\x2c\xa6\x5a\x03\x02\x00\x00\xff\xff\x8c\x08\x6c\xbb\x8f\x00\x00\x00") func mysql005_oauth_scopeSqlBytes() ([]byte, error) { return bindataRead( @@ -323,12 +323,12 @@ func mysql005_oauth_scopeSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "mysql/005_oauth_scope.sql", size: 143, mode: os.FileMode(420), modTime: time.Unix(1495121623, 0)} + info := bindataFileInfo{name: "mysql/005_oauth_scope.sql", size: 143, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _mysql006_add_orgs_tableSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x84\x90\xc1\x4e\xc3\x30\x10\x44\xef\xfb\x15\x73\x4c\x04\x95\xa0\xa2\xa7\x9c\xdc\x64\x01\x8b\xd4\x2e\x5b\x07\xb5\xa7\x0a\x81\x55\x45\x40\x52\x39\x85\xfe\x3e\x72\x49\xaa\x1c\x90\xea\x93\xb5\x33\x6f\xec\xd9\xc9\x04\x57\x5f\xf5\x2e\xbc\x1e\x3c\xaa\x3d\x51\x2e\xac\x1c\xc3\xa9\x79\xc9\xd0\xf7\x30\xd6\x81\xd7\x7a\xe5\x56\x68\xc3\xae\x43\x42\x40\xbc\x6d\xeb\x77\xfc\x1d\x6d\x1c\x3f\xb0\x60\x29\x7a\xa1\x64\x83\x27\xde\x40\x55\xce\x6e\xb5\xc9\x85\x17\x6c\x1c\x01\xd7\x11\xf9\xee\x7c\x38\x71\x3d\x32\xcc\xdb\x63\xe3\x43\x8c\x7a\x51\x92\x3f\x2a\x49\xa6\xb3\x59\x3a\x88\x9f\x75\xf3\x81\xb1\x78\x7b\x33\xbd\x3b\xab\xfb\x50\xff\xc4\xaf\x63\x6e\x6d\xc9\xca\x0c\xf3\xce\xbf\x05\x7f\xf8\x27\xb2\x32\xfa\xb9\xe2\xe4\xfc\x6c\x4a\x69\x46\xa4\x4a\xc7\xd2\x97\x3e\xd5\x54\x45\x01\x6d\x0a\x5e\x63\x64\xcd\x2e\xfa\xfa\x86\x31\x72\xbc\xd8\xa2\x3d\x36\x44\x85\xd8\xe5\x88\xcd\xe8\x37\x00\x00\xff\xff\x43\x18\x08\xd4\x7c\x01\x00\x00") +var _mysql006_add_orgs_tableSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x90\xc1\x4e\xc3\x30\x10\x44\xef\xfb\x15\x73\x4c\x04\x95\xa0\xa2\xa7\x9c\xdc\x64\x01\x8b\xd4\x2e\x5b\x07\xb5\xa7\x0a\x81\x55\x45\x40\x52\x39\x85\xfe\x3e\x72\x49\xaa\x1c\x90\xea\x93\xb5\x33\x6f\xec\xd9\xc9\x04\x57\x5f\xf5\x2e\xbc\x1e\x3c\xaa\x3d\x51\x2e\xac\x1c\xc3\xa9\x79\xc9\xd0\xf7\x30\xd6\x81\xd7\x7a\xe5\x56\x68\xc3\xae\x43\x42\x40\xbc\x6d\xeb\x77\xfc\x1d\x6d\x1c\x3f\xb0\x60\x29\x7a\xa1\x64\x83\x27\xde\x40\x55\xce\x6e\xb5\xc9\x85\x17\x6c\x1c\x01\xd7\x11\xf9\xee\x7c\x38\x71\x3d\x32\xcc\xdb\x63\xe3\x43\x8c\x7a\x51\x92\x3f\x2a\x49\xa6\xb3\x59\x3a\x88\x9f\x75\xf3\x81\xb1\x78\x7b\x33\xbd\x3b\xab\xfb\x50\xff\xc4\xaf\x63\x6e\x6d\xc9\xca\x0c\xf3\xce\xbf\x05\x7f\xf8\x27\xb2\x32\xfa\xb9\xe2\xe4\xfc\x6c\x4a\x69\x46\xa4\x4a\xc7\xd2\x97\x3e\xd5\x54\x45\x01\x6d\x0a\x5e\x63\x64\xcd\x2e\xfa\xfa\x86\x31\x72\xbc\xd8\xa2\x3d\x36\x44\x85\xd8\xe5\x88\xcd\xe8\x37\x00\x00\xff\xff\x43\x18\x08\xd4\x7c\x01\x00\x00") func mysql006_add_orgs_tableSqlBytes() ([]byte, error) { return bindataRead( @@ -343,12 +343,12 @@ func mysql006_add_orgs_tableSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "mysql/006_add_orgs_table.sql", size: 380, mode: os.FileMode(420), modTime: time.Unix(1496351647, 0)} + info := bindataFileInfo{name: "mysql/006_add_orgs_table.sql", size: 380, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _mysql007_add_slack_urlsSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x8f\x41\x4b\xc3\x40\x10\x46\xef\xf3\x2b\xbe\x63\x82\x2d\x68\xb1\xa7\x9e\xd6\x36\xa0\xa0\xad\x2c\xa9\xd7\xb0\xd6\x31\x2e\xd9\x6c\xe2\xec\x2e\x9a\x7f\x2f\xc9\x21\x04\x0f\xbd\x0d\xbc\xe1\x7d\xbc\xf5\x1a\x37\xad\xad\xc5\x44\xc6\xb9\x27\xba\x08\x8f\x67\x34\xef\x8e\x61\x3f\xe1\xbb\x08\xfe\xb5\x21\x06\x04\x67\x2e\x4d\x95\xc4\x85\x8c\x00\xfb\x01\xeb\x23\xd7\x2c\xe8\xc5\xb6\x46\x06\x34\x3c\x40\x9d\xcb\x53\xf5\x74\xdc\xeb\xe2\xa5\x38\x96\x2b\x02\xbe\xba\x10\x2b\x6f\x5a\xc6\x9b\xd2\xfb\x47\xa5\xb3\xcd\x76\x9b\x4f\x62\x9f\x9c\x1b\x5f\x52\x60\xb9\x42\xc5\xcd\xf0\xee\x76\x73\xff\x8f\x7a\xfb\x9d\x38\x9b\x57\x56\x93\x2d\xa7\x7c\x47\xb4\x8c\x3b\x74\x3f\x9e\xe8\xa0\x4f\xaf\x28\xd5\xc3\x73\xb1\xc8\xd9\xd1\x5f\x00\x00\x00\xff\xff\x5f\x31\x16\x1b\x06\x01\x00\x00") +var _mysql007_add_slack_urlsSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x8f\x41\x4b\xc3\x40\x10\x46\xef\xf3\x2b\xbe\x63\x82\x2d\x68\xb1\xa7\x9e\xd6\x36\xa0\xa0\xad\x2c\xa9\xd7\xb0\xd6\x31\x2e\xd9\x6c\xe2\xec\x2e\x9a\x7f\x2f\xc9\x21\x04\x0f\xbd\x0d\xbc\xe1\x7d\xbc\xf5\x1a\x37\xad\xad\xc5\x44\xc6\xb9\x27\xba\x08\x8f\x67\x34\xef\x8e\x61\x3f\xe1\xbb\x08\xfe\xb5\x21\x06\x04\x67\x2e\x4d\x95\xc4\x85\x8c\x00\xfb\x01\xeb\x23\xd7\x2c\xe8\xc5\xb6\x46\x06\x34\x3c\x40\x9d\xcb\x53\xf5\x74\xdc\xeb\xe2\xa5\x38\x96\x2b\x02\xbe\xba\x10\x2b\x6f\x5a\xc6\x9b\xd2\xfb\x47\xa5\xb3\xcd\x76\x9b\x4f\x62\x9f\x9c\x1b\x5f\x52\x60\xb9\x42\xc5\xcd\xf0\xee\x76\x73\xff\x8f\x7a\xfb\x9d\x38\x9b\x57\x56\x93\x2d\xa7\x7c\x47\xb4\x8c\x3b\x74\x3f\x9e\xe8\xa0\x4f\xaf\x28\xd5\xc3\x73\xb1\xc8\xd9\xd1\x5f\x00\x00\x00\xff\xff\x5f\x31\x16\x1b\x06\x01\x00\x00") func mysql007_add_slack_urlsSqlBytes() ([]byte, error) { return bindataRead( @@ -363,12 +363,12 @@ func mysql007_add_slack_urlsSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "mysql/007_add_slack_urls.sql", size: 262, mode: os.FileMode(420), modTime: time.Unix(1497972070, 0)} + info := bindataFileInfo{name: "mysql/007_add_slack_urls.sql", size: 262, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _postgres001_initSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x92\xdf\x6a\x83\x30\x14\x87\xef\xf3\x14\xe7\xb2\xb2\xf6\x09\xbc\xd2\x79\x56\xc2\x5c\xec\x62\x04\x7b\x55\xc2\x16\x24\xd4\x7f\x44\xdb\xee\xf1\x87\x21\xda\x1a\xd8\xa8\x57\xe1\x23\xe7\xf8\xfd\x4e\xce\x6e\x07\x2f\x8d\xae\x8c\x1c\x15\x14\x3d\x21\xaf\x1c\x23\x81\x20\xa2\x38\x45\xa0\x6f\xc0\x32\x01\x58\xd2\x5c\xe4\x70\x19\x94\x19\x60\x43\xec\xe1\xa4\xbf\xc1\x7e\x31\xdd\xe7\xc8\x69\x94\xc2\x81\xd3\x8f\x88\x1f\xe1\x1d\x8f\x64\x6b\xef\xd4\x5d\xa5\x5b\x00\x10\x58\x0a\x87\xc6\xee\xac\x3c\xa4\x1a\xa9\xeb\x35\x92\x57\x39\x4a\xb3\x42\x83\xfa\x32\x6a\x74\x88\x6c\x0b\x46\x3f\x0b\xdc\xdc\x7f\x13\x90\x20\xfc\x57\xdf\xa8\xbe\xb3\xfa\xd3\x61\xd1\xff\xcb\xdf\x5e\x5a\x82\x52\x26\x70\x8f\xdc\xe1\xee\xd6\x2a\x03\x8b\xb1\x65\xad\x6c\x14\x78\x6c\xa8\x2f\x95\xcf\x6a\xdd\x9e\x7d\xd6\x1b\x7d\x9d\xe6\x0f\x71\x96\xa5\x18\xb1\xb9\xdc\x25\xf6\x22\x2f\xad\x57\x89\x29\x4b\xb0\xf4\x12\xeb\x9f\xd3\xca\x37\x63\xf3\x10\xee\x38\x08\x9f\xe9\x30\x0f\xc2\xeb\xe0\xf0\xa4\xf1\xb8\x47\x49\x77\x6b\x09\x49\x78\x76\x70\x0f\x61\x6b\xc2\x47\x62\x77\x29\x24\xbf\x01\x00\x00\xff\xff\x1e\xfd\x38\xa0\x7e\x02\x00\x00") +var _postgres001_initSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x92\xdf\x6a\x83\x30\x14\x87\xef\xf3\x14\xe7\xb2\xb2\xf6\x09\xbc\xd2\x79\x56\xc2\x5c\xec\x62\x04\x7b\x55\xc2\x16\x24\xd4\x7f\x44\xdb\xee\xf1\x87\x21\xda\x1a\xd8\xa8\x57\xe1\x23\xe7\xf8\xfd\x4e\xce\x6e\x07\x2f\x8d\xae\x8c\x1c\x15\x14\x3d\x21\xaf\x1c\x23\x81\x20\xa2\x38\x45\xa0\x6f\xc0\x32\x01\x58\xd2\x5c\xe4\x70\x19\x94\x19\x60\x43\xec\xe1\xa4\xbf\xc1\x7e\x31\xdd\xe7\xc8\x69\x94\xc2\x81\xd3\x8f\x88\x1f\xe1\x1d\x8f\x64\x6b\xef\xd4\x5d\xa5\x5b\x00\x10\x58\x0a\x87\xc6\xee\xac\x3c\xa4\x1a\xa9\xeb\x35\x92\x57\x39\x4a\xb3\x42\x83\xfa\x32\x6a\x74\x88\x6c\x0b\x46\x3f\x0b\xdc\xdc\x7f\x13\x90\x20\xfc\x57\xdf\xa8\xbe\xb3\xfa\xd3\x61\xd1\xff\xcb\xdf\x5e\x5a\x82\x52\x26\x70\x8f\xdc\xe1\xee\xd6\x2a\x03\x8b\xb1\x65\xad\x6c\x14\x78\x6c\xa8\x2f\x95\xcf\x6a\xdd\x9e\x7d\xd6\x1b\x7d\x9d\xe6\x0f\x71\x96\xa5\x18\xb1\xb9\xdc\x25\xf6\x22\x2f\xad\x57\x89\x29\x4b\xb0\xf4\x12\xeb\x9f\xd3\xca\x37\x63\xf3\x10\xee\x38\x08\x9f\xe9\x30\x0f\xc2\xeb\xe0\xf0\xa4\xf1\xb8\x47\x49\x77\x6b\x09\x49\x78\x76\x70\x0f\x61\x6b\xc2\x47\x62\x77\x29\x24\xbf\x01\x00\x00\xff\xff\x1e\xfd\x38\xa0\x7e\x02\x00\x00") func postgres001_initSqlBytes() ([]byte, error) { return bindataRead( @@ -383,12 +383,12 @@ func postgres001_initSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "postgres/001_init.sql", size: 638, mode: os.FileMode(420), modTime: time.Unix(1481147727, 0)} + info := bindataFileInfo{name: "postgres/001_init.sql", size: 638, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _postgres002_orgSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x4a\x2d\xc8\x2f\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\xe7\x17\xa5\x2b\x38\xf9\xfb\xfb\xb8\x3a\xfa\x29\xb8\xb8\xba\x39\x86\xfa\x84\x28\xb8\x39\xfa\x04\xbb\x5a\x73\x71\x21\x9b\xe6\x92\x5f\x9e\x87\xcd\x3c\x97\x20\xff\x00\x74\x03\xad\x01\x01\x00\x00\xff\xff\x25\x2b\x07\x70\x87\x00\x00\x00") +var _postgres002_orgSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x4a\x2d\xc8\x2f\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\xe7\x17\xa5\x2b\x38\xf9\xfb\xfb\xb8\x3a\xfa\x29\xb8\xb8\xba\x39\x86\xfa\x84\x28\xb8\x39\xfa\x04\xbb\x5a\x73\x71\x21\x9b\xe6\x92\x5f\x9e\x87\xcd\x3c\x97\x20\xff\x00\x74\x03\xad\x01\x01\x00\x00\xff\xff\x25\x2b\x07\x70\x87\x00\x00\x00") func postgres002_orgSqlBytes() ([]byte, error) { return bindataRead( @@ -403,12 +403,12 @@ func postgres002_orgSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "postgres/002_org.sql", size: 135, mode: os.FileMode(420), modTime: time.Unix(1483464365, 0)} + info := bindataFileInfo{name: "postgres/002_org.sql", size: 135, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _postgres003_drop_emailsSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x09\xf2\x0f\x50\x70\xf6\xf7\x09\xf5\xf5\x03\x8b\xc4\xa7\xe6\x26\x66\xe6\x58\x73\x71\x21\x6b\x75\xc9\x2f\xcf\xc3\xa6\xd9\xd1\xc5\x05\x53\xaf\x42\x98\x63\x90\xb3\x87\x63\x90\x86\x91\xa9\xa9\xa6\x82\x8b\xab\x9b\x63\xa8\x4f\x88\x82\xba\xba\x35\x20\x00\x00\xff\xff\xe3\x75\x50\xf8\x8d\x00\x00\x00") +var _postgres003_drop_emailsSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x09\xf2\x0f\x50\x70\xf6\xf7\x09\xf5\xf5\x03\x8b\xc4\xa7\xe6\x26\x66\xe6\x58\x73\x71\x21\x6b\x75\xc9\x2f\xcf\xc3\xa6\xd9\xd1\xc5\x05\x53\xaf\x42\x98\x63\x90\xb3\x87\x63\x90\x86\x91\xa9\xa9\xa6\x82\x8b\xab\x9b\x63\xa8\x4f\x88\x82\xba\xba\x35\x20\x00\x00\xff\xff\xe3\x75\x50\xf8\x8d\x00\x00\x00") func postgres003_drop_emailsSqlBytes() ([]byte, error) { return bindataRead( @@ -423,12 +423,12 @@ func postgres003_drop_emailsSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "postgres/003_drop_emails.sql", size: 141, mode: os.FileMode(420), modTime: time.Unix(1483464365, 0)} + info := bindataFileInfo{name: "postgres/003_drop_emails.sql", size: 141, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _postgres004_limit_usersSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\xce\xc1\x0a\x82\x40\x10\xc6\xf1\xfb\x3c\xc5\x77\x54\xca\x27\xf0\x64\x39\xc1\x42\x68\xe9\x2c\x78\x8b\x0e\xb2\x2c\xa8\x1b\xa3\xd1\xeb\x47\x2a\xe1\xa1\x43\x73\xfd\xe0\x37\xff\x24\xc1\xae\xf7\x4e\xef\x53\x0b\xfb\x20\x3a\x56\x9c\x09\x43\xb2\xc3\x99\x61\x4e\x28\x4a\x01\x37\xa6\x96\x1a\x9d\xef\xfd\x74\x7b\x8e\xad\x8e\x88\x08\xe8\x82\xf3\x03\xe6\x13\x6e\x84\x80\xbd\x2d\xcc\xd5\x72\x34\x2f\x31\xc5\xe9\x1f\x5e\x50\xb7\x70\x41\xdd\xd7\xc1\x0a\x05\x75\x0b\xb3\xcd\xcc\xc3\x6b\x20\xca\xab\xf2\xb2\xb2\x9b\xb0\xf4\xc7\xf0\xf9\x90\xd2\x3b\x00\x00\xff\xff\x2f\x48\xf5\xe6\xe9\x00\x00\x00") +var _postgres004_limit_usersSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\xce\xc1\x0a\x82\x40\x10\xc6\xf1\xfb\x3c\xc5\x77\x54\xca\x27\xf0\x64\x39\xc1\x42\x68\xe9\x2c\x78\x8b\x0e\xb2\x2c\xa8\x1b\xa3\xd1\xeb\x47\x2a\xe1\xa1\x43\x73\xfd\xe0\x37\xff\x24\xc1\xae\xf7\x4e\xef\x53\x0b\xfb\x20\x3a\x56\x9c\x09\x43\xb2\xc3\x99\x61\x4e\x28\x4a\x01\x37\xa6\x96\x1a\x9d\xef\xfd\x74\x7b\x8e\xad\x8e\x88\x08\xe8\x82\xf3\x03\xe6\x13\x6e\x84\x80\xbd\x2d\xcc\xd5\x72\x34\x2f\x31\xc5\xe9\x1f\x5e\x50\xb7\x70\x41\xdd\xd7\xc1\x0a\x05\x75\x0b\xb3\xcd\xcc\xc3\x6b\x20\xca\xab\xf2\xb2\xb2\x9b\xb0\xf4\xc7\xf0\xf9\x90\xd2\x3b\x00\x00\xff\xff\x2f\x48\xf5\xe6\xe9\x00\x00\x00") func postgres004_limit_usersSqlBytes() ([]byte, error) { return bindataRead( @@ -443,12 +443,12 @@ func postgres004_limit_usersSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "postgres/004_limit_users.sql", size: 233, mode: os.FileMode(420), modTime: time.Unix(1483464365, 0)} + info := bindataFileInfo{name: "postgres/004_limit_users.sql", size: 233, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _postgres005_oauth_scopeSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\x17\x27\xe7\x17\xa4\x16\x2b\x84\x39\x06\x39\x7b\x38\x06\x69\x18\x99\x9a\x6a\x2a\xb8\xb8\xba\x39\x86\xfa\x84\x28\xa8\xab\x5b\x73\x71\x21\x1b\xe9\x92\x5f\x9e\x87\xcd\x50\x97\x20\xff\x00\x2c\xa6\x5a\x03\x02\x00\x00\xff\xff\x8c\x08\x6c\xbb\x8f\x00\x00\x00") +var _postgres005_oauth_scopeSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd5\x55\xd0\xce\xcd\x4c\x2f\x4a\x2c\x49\x55\x08\x2d\xe0\xe2\x72\xf4\x09\x71\x0d\x52\x08\x71\x74\xf2\x71\x55\x28\x2d\x4e\x2d\x2a\x56\x70\x74\x71\x51\x70\xf6\xf7\x09\xf5\xf5\x03\x0b\xc4\x17\x27\xe7\x17\xa4\x16\x2b\x84\x39\x06\x39\x7b\x38\x06\x69\x18\x99\x9a\x6a\x2a\xb8\xb8\xba\x39\x86\xfa\x84\x28\xa8\xab\x5b\x73\x71\x21\x1b\xe9\x92\x5f\x9e\x87\xcd\x50\x97\x20\xff\x00\x2c\xa6\x5a\x03\x02\x00\x00\xff\xff\x8c\x08\x6c\xbb\x8f\x00\x00\x00") func postgres005_oauth_scopeSqlBytes() ([]byte, error) { return bindataRead( @@ -463,12 +463,12 @@ func postgres005_oauth_scopeSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "postgres/005_oauth_scope.sql", size: 143, mode: os.FileMode(420), modTime: time.Unix(1495121623, 0)} + info := bindataFileInfo{name: "postgres/005_oauth_scope.sql", size: 143, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _postgres006_add_orgs_tableSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x50\xb1\x4e\xc3\x30\x14\xdc\xfd\x15\x37\x26\x82\x4a\x50\xd1\x29\x93\xd3\x3c\x8a\x45\xb0\x8b\xe3\xa0\x76\xaa\x10\x58\x95\x05\x24\x95\x53\x08\x9f\x8f\x0c\x89\x09\x88\x01\x4f\xd6\xdd\xbb\xf7\xee\x6e\x36\xc3\xc9\x8b\xdb\xfb\xfb\xa3\x45\x7d\x60\x6c\xa9\x89\x1b\x82\xe1\x79\x49\x10\x97\x90\xca\x80\x36\xa2\x32\x15\x5a\xbf\xef\x90\x30\x20\xfc\x76\xee\x11\x5f\x2f\x17\xab\x8a\xb4\xe0\x25\xd6\x5a\xdc\x70\xbd\xc5\x35\x6d\x19\x70\x1a\xa6\x5e\x3b\xeb\x3f\x47\x85\x34\xb4\x22\x3d\xe2\x6d\xdf\x58\x1f\xd4\x77\x5c\x2f\xaf\xb8\x4e\xe6\x8b\x45\x3a\x92\xcf\xae\x79\xc2\x94\x3c\x3f\x9b\x5f\x44\xf6\xe0\xdd\x5b\x70\x8b\x5c\xa9\x92\xb8\x1c\xf1\xce\x3e\x78\x7b\xfc\x63\x65\x2d\xc5\x6d\x4d\x49\x3c\x9b\xb2\x34\x8b\x41\x85\x2c\x68\xf3\x2b\xa8\x7b\xdf\x4d\x3d\x2a\x39\x44\xff\xde\x90\xfd\x43\x1e\xa3\xff\xd0\x0f\x68\x70\x30\xad\xbe\x68\xfb\x86\xb1\x42\xab\xf5\x50\x7d\x50\x64\xec\x23\x00\x00\xff\xff\xd2\x89\x99\x08\x9e\x01\x00\x00") +var _postgres006_add_orgs_tableSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x50\xb1\x4e\xc3\x30\x14\xdc\xfd\x15\x37\x26\x82\x4a\x50\xd1\x29\x93\xd3\x3c\x8a\x45\xb0\x8b\xe3\xa0\x76\xaa\x10\x58\x95\x05\x24\x95\x53\x08\x9f\x8f\x0c\x89\x09\x88\x01\x4f\xd6\xdd\xbb\xf7\xee\x6e\x36\xc3\xc9\x8b\xdb\xfb\xfb\xa3\x45\x7d\x60\x6c\xa9\x89\x1b\x82\xe1\x79\x49\x10\x97\x90\xca\x80\x36\xa2\x32\x15\x5a\xbf\xef\x90\x30\x20\xfc\x76\xee\x11\x5f\x2f\x17\xab\x8a\xb4\xe0\x25\xd6\x5a\xdc\x70\xbd\xc5\x35\x6d\x19\x70\x1a\xa6\x5e\x3b\xeb\x3f\x47\x85\x34\xb4\x22\x3d\xe2\x6d\xdf\x58\x1f\xd4\x77\x5c\x2f\xaf\xb8\x4e\xe6\x8b\x45\x3a\x92\xcf\xae\x79\xc2\x94\x3c\x3f\x9b\x5f\x44\xf6\xe0\xdd\x5b\x70\x8b\x5c\xa9\x92\xb8\x1c\xf1\xce\x3e\x78\x7b\xfc\x63\x65\x2d\xc5\x6d\x4d\x49\x3c\x9b\xb2\x34\x8b\x41\x85\x2c\x68\xf3\x2b\xa8\x7b\xdf\x4d\x3d\x2a\x39\x44\xff\xde\x90\xfd\x43\x1e\xa3\xff\xd0\x0f\x68\x70\x30\xad\xbe\x68\xfb\x86\xb1\x42\xab\xf5\x50\x7d\x50\x64\xec\x23\x00\x00\xff\xff\xd2\x89\x99\x08\x9e\x01\x00\x00") func postgres006_add_orgs_tableSqlBytes() ([]byte, error) { return bindataRead( @@ -483,12 +483,12 @@ func postgres006_add_orgs_tableSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "postgres/006_add_orgs_table.sql", size: 414, mode: os.FileMode(420), modTime: time.Unix(1496351647, 0)} + info := bindataFileInfo{name: "postgres/006_add_orgs_table.sql", size: 414, mode: os.FileMode(420), modTime: time.Unix(1585151454, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _postgres007_add_slack_urlsSql = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x6c\x8e\xbd\x8a\x83\x40\x14\x46\xfb\xfb\x14\x5f\xa9\xac\x3e\x81\x95\xa2\x2c\xb2\x2e\x2b\xb3\x49\x61\x25\x13\x73\x93\x0c\x19\xc7\x64\x7e\x88\x8f\x1f\xb4\x08\x16\x76\x97\x73\xf9\x0e\x27\x4d\xf1\x35\xaa\xab\x95\x9e\x71\x7c\x10\x0d\x96\x97\xd3\xcb\x93\x66\xa8\x0b\xcc\xe4\xc1\xb3\x72\xde\xc1\x69\x39\xdc\xfb\x60\xb5\x8b\x08\x50\x67\x14\xf5\xf7\x7f\x25\xea\xbc\x41\x2b\xea\xdf\x5c\x74\xf8\xa9\xba\x84\x80\xdb\xe4\x7c\x6f\xe4\xc8\xf0\x3c\xfb\xd5\x61\x82\xd6\xcb\x2b\x38\xb6\x3b\xd4\xea\x1d\x68\xd4\x33\x70\xf4\x91\x25\xeb\x38\xa6\x38\x23\xda\x66\x97\xd3\xcb\x10\x95\xe2\xaf\xc5\x21\x2f\x9a\x6a\x13\x9a\xd1\x3b\x00\x00\xff\xff\x35\x28\x1e\xb2\xe0\x00\x00\x00") +var _postgres007_add_slack_urlsSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8e\xcd\x6a\x83\x40\x14\x46\xf7\xf7\x29\x3e\x5c\x29\xd5\x27\x70\xa5\x28\x45\x6a\xa9\x4c\xdb\x85\x2b\x99\xda\x9b\x64\xc8\x38\x26\xf3\x43\x7c\xfc\x60\x08\x41\x48\x76\x97\x73\xf9\x0e\x27\xcb\xf0\x36\xa9\xbd\x95\x9e\xf1\x7b\x22\x1a\x2d\xaf\xa7\x97\x7f\x9a\xa1\x76\x30\xb3\x07\x2f\xca\x79\x07\xa7\xe5\x78\x1c\x82\xd5\x2e\x26\x40\xfd\xa3\x6c\xde\xbf\x6b\xd1\x14\x2d\x3a\xd1\x7c\x16\xa2\xc7\x47\xdd\xa7\x04\x1c\x66\xe7\x07\x23\x27\x86\xe7\xc5\xdf\x1c\x26\x68\xbd\xbe\xa2\xe0\xd8\x46\xcf\x3c\x58\xfd\x02\x1a\x75\x0e\x1c\x3f\x74\xe9\x7d\x9e\x50\x92\x13\x6d\xd3\xab\xf9\x62\x88\x2a\xf1\xd5\xe1\xa7\x28\xdb\x7a\x13\x9b\xd3\x35\x00\x00\xff\xff\x28\x08\x6b\x88\xe4\x00\x00\x00") func postgres007_add_slack_urlsSqlBytes() ([]byte, error) { return bindataRead( @@ -503,7 +503,7 @@ func postgres007_add_slack_urlsSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "postgres/007_add_slack_urls.sql", size: 224, mode: os.FileMode(420), modTime: time.Unix(1497971713, 0)} + info := bindataFileInfo{name: "postgres/007_add_slack_urls.sql", size: 228, mode: os.FileMode(420), modTime: time.Unix(1586277869, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/store/migration/postgres/007_add_slack_urls.sql b/store/migration/postgres/007_add_slack_urls.sql index b2c83ca..27dbf8b 100644 --- a/store/migration/postgres/007_add_slack_urls.sql +++ b/store/migration/postgres/007_add_slack_urls.sql @@ -3,9 +3,9 @@ create table if not exists slack_urls( id BIGSERIAL PRIMARY KEY, host_name text not null, - user text not null, + "user" text not null, url text not null, - unique(host_name, user) + unique(host_name, "user") ); -- +migrate Down diff --git a/strings/lowercase/lowercase_test.go b/strings/lowercase/lowercase_test.go index 5d50360..4fbc708 100644 --- a/strings/lowercase/lowercase_test.go +++ b/strings/lowercase/lowercase_test.go @@ -41,4 +41,4 @@ func TestEmpty(t *testing.T) { if l.String() != "" { t.Error("empty lowercase not handled correctly") } -} \ No newline at end of file +} diff --git a/usage/usage.go b/usage/usage.go index 2d1ad9b..f4a2867 100644 --- a/usage/usage.go +++ b/usage/usage.go @@ -23,7 +23,7 @@ import ( "sync" "time" - log "github.com/Sirupsen/logrus" + log "github.com/sirupsen/logrus" ) type usageType int diff --git a/usage/usage_test.go b/usage/usage_test.go index 5391c20..f7b08c0 100644 --- a/usage/usage_test.go +++ b/usage/usage_test.go @@ -19,8 +19,8 @@ See the License for the specific language governing permissions and limitations package usage import ( - "testing" "context" + "testing" ) func TestContextUnique(t *testing.T) { @@ -33,6 +33,6 @@ func TestContextUnique(t *testing.T) { } v2 := GetEventFromContext(c2) if v2 != "Hello" { - t.Errorf("Expected Hello, got %v",v2) + t.Errorf("Expected Hello, got %v", v2) } -} \ No newline at end of file +} diff --git a/web/approval.go b/web/approval.go index a348d57..4cd434a 100644 --- a/web/approval.go +++ b/web/approval.go @@ -32,7 +32,7 @@ import ( "github.com/capitalone/checks-out/set" "github.com/capitalone/checks-out/strings/lowercase" - log "github.com/Sirupsen/logrus" + log "github.com/sirupsen/logrus" ) // https://help.github.com/articles/closing-issues-via-commit-messages/ diff --git a/web/confirm_template.go b/web/confirm_template.go new file mode 100644 index 0000000..ad2899d --- /dev/null +++ b/web/confirm_template.go @@ -0,0 +1,29 @@ +/* + +SPDX-Copyright: Copyright (c) Brad Rydzewski, project contributors, Capital One Services, LLC +SPDX-License-Identifier: Apache-2.0 +Copyright 2020 Brad Rydzewski, project contributors, Capital One Services, LLC + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and limitations under the License. + +*/ +package web + +import ( + "github.com/capitalone/checks-out/envvars" + "github.com/gin-gonic/gin" +) + +func ConfirmTemplate(c *gin.Context) { + brand := envvars.Env.Branding.ShortName + c.HTML(200, "_confirm_template.html", gin.H{"BrandName": brand}) +} diff --git a/web/github_create.go b/web/github_create.go index 89ab143..0d41754 100644 --- a/web/github_create.go +++ b/web/github_create.go @@ -32,8 +32,8 @@ import ( "github.com/capitalone/checks-out/strings/lowercase" "github.com/capitalone/checks-out/usage" - log "github.com/Sirupsen/logrus" - "github.com/google/go-github/github" + "github.com/google/go-github/v30/github" + log "github.com/sirupsen/logrus" ) // TODO: move this into its own package when diff --git a/web/index.go b/web/index.go index b744599..497069d 100644 --- a/web/index.go +++ b/web/index.go @@ -23,8 +23,8 @@ import ( "github.com/capitalone/checks-out/router/middleware/session" "github.com/capitalone/checks-out/shared/token" - "github.com/gin-gonic/gin" "github.com/capitalone/checks-out/envvars" + "github.com/gin-gonic/gin" ) func Index(c *gin.Context) { diff --git a/web/login.go b/web/login.go index 19f55cc..f37bc1c 100644 --- a/web/login.go +++ b/web/login.go @@ -26,7 +26,6 @@ import ( "net/http" "time" - log "github.com/Sirupsen/logrus" "github.com/capitalone/checks-out/envvars" "github.com/capitalone/checks-out/exterror" "github.com/capitalone/checks-out/model" @@ -35,6 +34,7 @@ import ( "github.com/capitalone/checks-out/shared/token" "github.com/capitalone/checks-out/store" "github.com/gin-gonic/gin" + log "github.com/sirupsen/logrus" ) // Login attempts to authorize a user via GitHub oauth2. If the user does not @@ -68,7 +68,7 @@ func Login(c *gin.Context) { // get the user from the database u, err := store.GetUserLogin(c, tmpuser.Login) if err != nil && err != sql.ErrNoRows { - c.HTML(500, "error.html", gin.H{"error": err}) + c.HTML(500, "error.html", gin.H{"error": err.Error()}) return } else if err == sql.ErrNoRows { err = validateUserAccess(c, tmpuser) diff --git a/web/merge.go b/web/merge.go index 3cf4fb9..7ebe41b 100644 --- a/web/merge.go +++ b/web/merge.go @@ -21,9 +21,9 @@ package web import ( "context" - log "github.com/Sirupsen/logrus" "github.com/capitalone/checks-out/model" "github.com/capitalone/checks-out/remote" + log "github.com/sirupsen/logrus" ) func isBehind(c context.Context, user *model.User, repo *model.Repo, branch model.Branch) (bool, error) { diff --git a/web/notification.go b/web/notification.go index 19c0e9d..045b108 100644 --- a/web/notification.go +++ b/web/notification.go @@ -24,7 +24,7 @@ import ( "github.com/capitalone/checks-out/model" "github.com/capitalone/checks-out/notifier" - log "github.com/Sirupsen/logrus" + log "github.com/sirupsen/logrus" ) func handleApprovalNotification(hook *ApprovalHook, curCommentInfo *CurCommentInfo) *notifier.MessageWrapper { diff --git a/web/pr_hook.go b/web/pr_hook.go index 9b6db25..dfd0fd3 100644 --- a/web/pr_hook.go +++ b/web/pr_hook.go @@ -27,8 +27,8 @@ import ( "github.com/capitalone/checks-out/remote" "github.com/capitalone/checks-out/set" - log "github.com/Sirupsen/logrus" multierror "github.com/mspiegel/go-multierror" + log "github.com/sirupsen/logrus" ) type ApprovalOutput struct { diff --git a/web/static/files/checksout.html b/web/static/files/checksout.html index ae58f7b..337cf00 100644 --- a/web/static/files/checksout.html +++ b/web/static/files/checksout.html @@ -1,6 +1,9 @@ + + +