diff --git a/.conform.yaml b/.conform.yaml index 9254be31..740c4e83 100644 --- a/.conform.yaml +++ b/.conform.yaml @@ -41,7 +41,7 @@ pipeline: stages: test: artifacts: - - source: /go/src/github.com/autonomy/conform/coverage.txt + - source: /src/github.com/autonomy/conform/coverage.txt destination: coverage.txt tasks: - test @@ -53,8 +53,8 @@ stages: tasks: binary: template: | - FROM autonomy/golang:1.9 as {{ .Docker.CurrentStage }} - WORKDIR $GOPATH/src/{{ index .Variables "gitRepository" }} + FROM golang:1.11.1 AS {{ .Docker.CurrentStage }} + WORKDIR /src/{{ index .Variables "gitRepository" }} COPY ./ ./ {{ if and .Git.IsClean .Git.IsTag }} RUN go build -o {{ index .Variables "binaryPath" }} -ldflags "-X \"{{ index .Variables "gitRepository" }}/cmd.Tag={{ trimAll "v" .Git.Tag }}\" -X \"{{ index .Variables "gitRepository" }}/cmd.SHA={{ .Git.SHA }}\" -X \"{{ index .Variables "gitRepository" }}/cmd.Built={{ .Built }}\"" @@ -65,14 +65,21 @@ tasks: {{ end }} test: template: | - FROM autonomy/golang:1.9 as {{ .Docker.CurrentStage }} - WORKDIR $GOPATH/src/{{ index .Variables "gitRepository" }} + FROM golang:1.11.1 AS {{ .Docker.CurrentStage }} + ENV GO111MODULE auto + RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b $GOPATH/bin v1.10.1 + WORKDIR /src/{{ index .Variables "gitRepository" }} COPY ./ ./ - RUN test.sh + RUN go mod download + RUN go mod verify + RUN chmod +x ./hack/test.sh + RUN ./hack/test.sh --lint ./hack/golangci-lint.yaml + RUN ./hack/test.sh --unit + RUN ./hack/test.sh --coverage image: template: | - FROM alpine:3.6 as {{ .Docker.CurrentStage }} + FROM alpine:3.6 AS {{ .Docker.CurrentStage }} LABEL maintainer="{{ index .Variables "maintainer" }}" RUN apk --update add bash \ && rm -rf /var/cache/apk/* diff --git a/.dockerignore b/.dockerignore index bc888e23..6efd296c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,8 @@ * !cmd -!Gopkg* +!go.mod +!go.sum +!hack !main.go !pkg !scripts diff --git a/README.md b/README.md index 9ab0aa88..71002452 100644 --- a/README.md +++ b/README.md @@ -59,11 +59,8 @@ tasks: In the same directory, run: ``` -$ conform enforce +$ conform build ``` -Developing Conform ----------------- - ### License [![license](https://img.shields.io/github/license/autonomy/conform.svg?style=flat-square)](https://github.com/autonomy/conform/blob/master/LICENSE) diff --git a/go.mod b/go.mod new file mode 100644 index 00000000..68bebaf9 --- /dev/null +++ b/go.mod @@ -0,0 +1,102 @@ +module github.com/andrewrynhard/conform + +require ( + 9fans.net/go v0.0.0-20180727211846-5d4fa602e1e8 // indirect + github.com/GoASTScanner/gas v0.0.0-20180828043407-7fd94463edcb // indirect + github.com/Masterminds/semver v1.3.0 + github.com/Masterminds/sprig v0.0.0-20170516202909-9526be0327b2 + github.com/Microsoft/go-winio v0.4.2 + github.com/OpenPeeDeeP/depguard v0.0.0-20180806142446-a69c782687b2 // indirect + github.com/Sirupsen/logrus v1.0.0 + github.com/acroca/go-symbols v0.0.0-20180523203557-953befd75e22 // indirect + github.com/aokoli/goutils v1.0.1 + github.com/autonomy/conform v0.1.0-alpha.4 + github.com/client9/misspell v0.3.4 // indirect + github.com/cosiner/argv v0.0.0-20170225145430-13bacc38a0a5 // indirect + github.com/davidrjenni/reftools v0.0.0-20180509164333-3813a62570d2 // indirect + github.com/derekparker/delve v1.1.0 // indirect + github.com/docker/distribution v2.6.1+incompatible + github.com/docker/docker v1.13.1 + github.com/docker/go-connections v0.2.1 + github.com/docker/go-units v0.3.1 + github.com/fatih/color v1.7.0 // indirect + github.com/fatih/gomodifytags v0.0.0-20180826164257-7987f52a7108 // indirect + github.com/fsnotify/fsnotify v1.4.2 + github.com/gobwas/glob v0.2.3 // indirect + github.com/gogo/protobuf v1.1.1 // indirect + github.com/golang/lint v0.0.0-20180702182130-06c8688daad7 // indirect + github.com/golang/protobuf v1.1.0 + github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 // indirect + github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 // indirect + github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3 // indirect + github.com/golangci/gocyclo v0.0.0-20180528144436-0a533e8fa43d // indirect + github.com/golangci/gofmt v0.0.0-20180506063654-2076e05ced53 // indirect + github.com/golangci/golangci-lint v1.10.1 // indirect + github.com/golangci/govet v0.0.0-20180818181408-44ddbe260190 // indirect + github.com/golangci/ineffassign v0.0.0-20180808204949-2ee8f2867dde // indirect + github.com/golangci/lint-1 v0.0.0-20180610141402-4bf9709227d1 // indirect + github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca // indirect + github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21 // indirect + github.com/golangci/revgrep v0.0.0-20180812185044-276a5c0a1039 // indirect + github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect + github.com/google/go-github v15.0.0+incompatible + github.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135 + github.com/hashicorp/hcl v0.0.0-20170509225359-392dba7d905e + github.com/haya14busa/goplay v1.0.0 // indirect + github.com/huandu/xstrings v0.0.0-20151130125119-3959339b3335 + github.com/imdario/mergo v0.0.0-20160216103600-3e95a51e0639 + github.com/inconshreveable/mousetrap v1.0.0 + github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 + github.com/josharian/impl v0.0.0-20180228163738-3d0f908298c4 // indirect + github.com/karrick/godirwalk v1.7.3 // indirect + github.com/kevinburke/ssh_config v0.0.0-20170525151105-fa48d7ff1cfb + github.com/magiconair/properties v1.7.2 + github.com/mattn/go-colorable v0.0.9 // indirect + github.com/mattn/go-isatty v0.0.3 // indirect + github.com/mdempsky/gocode v0.0.0-20180727200127-00e7f5ac290a // indirect + github.com/mibk/dupl v1.0.0 // indirect + github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747 + github.com/mitchellh/mapstructure v0.0.0-20170523030023-d0303fe80992 + github.com/nbutton23/zxcvbn-go v0.0.0-20180829150819-3cb5938f3fc9 // indirect + github.com/opencontainers/runc v0.1.1 + github.com/pelletier/go-buffruneio v0.2.0 + github.com/pelletier/go-toml v1.0.0 + github.com/peterh/liner v1.1.0 // indirect + github.com/pkg/errors v0.8.0 + github.com/ramya-rao-a/go-outline v0.0.0-20170803230019-9e9d089bb61a // indirect + github.com/rogpeppe/godef v0.0.0-20170920080713-b692db1de522 // indirect + github.com/satori/go.uuid v1.1.0 + github.com/securego/gosec v0.0.0-20180828043407-7fd94463edcb // indirect + github.com/sergi/go-diff v0.0.0-20170409071739-feef008d51ad + github.com/sirupsen/logrus v1.0.6 // indirect + github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c // indirect + github.com/sourcegraph/go-langserver v1.0.0 // indirect + github.com/spf13/afero v0.0.0-20170217164146-9be650865eab + github.com/spf13/cast v1.1.0 + github.com/spf13/cobra v0.0.0-20170629105234-8c6fa02d2225 + github.com/spf13/jwalterweatherman v0.0.0-20170523133247-0efa5202c046 + github.com/spf13/pflag v1.0.0 + github.com/spf13/viper v0.0.0-20170619124313-c1de95864d73 + github.com/sqs/goreturns v0.0.0-20180302073349-83e02874ec12 // indirect + github.com/src-d/gcfg v1.3.0 + github.com/uudashr/gopkgs v1.3.2 // indirect + github.com/xanzy/ssh-agent v0.1.0 + golang.org/x/arch v0.0.0-20180516175055-5de9028c2478 // indirect + golang.org/x/crypto v0.0.0-20170703161049-69be088f8606 + golang.org/x/lint v0.0.0-20180702182130-06c8688daad7 // indirect + golang.org/x/net v0.0.0-20170629171032-1f9224279e98 + golang.org/x/oauth2 v0.0.0-20180620175406-ef147856a6dd + golang.org/x/sys v0.0.0-20170703210155-94b76065f2d2 + golang.org/x/text v0.0.0-20170630100924-2bf8f2a19ec0 + golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52 // indirect + google.golang.org/appengine v1.1.0 + gopkg.in/src-d/go-billy.v4 v4.0.1 + gopkg.in/src-d/go-git.v4 v4.0.0 + gopkg.in/warnings.v0 v0.1.1 + gopkg.in/yaml.v2 v2.0.0-20170407172122-cd8b52f8269e + honnef.co/go/tools v0.0.0-20180728063816-88497007e858 // indirect + mvdan.cc/interfacer v0.0.0-20180326104626-822e100dd73a // indirect + mvdan.cc/unparam v0.0.0-20180827003406-8eb9bf77f9de // indirect + sourcegraph.com/sourcegraph/go-diff v0.0.0-20171119081133-3f415a150aec // indirect + sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 00000000..4351456b --- /dev/null +++ b/go.sum @@ -0,0 +1,204 @@ +9fans.net/go v0.0.0-20180727211846-5d4fa602e1e8 h1:I5as7fR6RT+wVrs+vOeEtOHJ4z2vnUnIR+cqvAiQ80s= +9fans.net/go v0.0.0-20180727211846-5d4fa602e1e8/go.mod h1:diCsxrliIURU9xsYtjCp5AbpQKqdhKmf0ujWDUSkfoY= +github.com/GoASTScanner/gas v0.0.0-20180828043407-7fd94463edcb h1:qCLLlYX1gZKNP1Jp23mSLHt61ErfZi2EGmzAs/XJE4w= +github.com/GoASTScanner/gas v0.0.0-20180828043407-7fd94463edcb/go.mod h1:gd/XflKpbkQ306GtH3uroyevays7ewwXckPAYA4Fq/I= +github.com/Masterminds/semver v1.3.0 h1:7H8mLwaeisxNSFxW39uQ9UHGv7HOevcDtjFjgbPDE/4= +github.com/Masterminds/semver v1.3.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/sprig v0.0.0-20170516202909-9526be0327b2 h1:N6GC4DMeuyK2NHsNyb1sLGGiFYfoklLFon86X/siC10= +github.com/Masterminds/sprig v0.0.0-20170516202909-9526be0327b2/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/Microsoft/go-winio v0.4.2/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/OpenPeeDeeP/depguard v0.0.0-20180806142446-a69c782687b2 h1:HTOmFEEYrWi4MW5ZKUx6xfeyM10Sx3kQF65xiQJMPYA= +github.com/OpenPeeDeeP/depguard v0.0.0-20180806142446-a69c782687b2/go.mod h1:7/4sitnI9YlQgTLLk734QlzXT8DuHVnAyztLplQjk+o= +github.com/Sirupsen/logrus v1.0.0 h1:Rb4797caW6l6qnpZqL25Z79EjY2OG26Bbqwf7ozOIgQ= +github.com/Sirupsen/logrus v1.0.0/go.mod h1:rmk17hk6i8ZSAJkSDa7nOxamrG+SP4P0mm+DAvExv4U= +github.com/acroca/go-symbols v0.0.0-20180523203557-953befd75e22 h1:Lfw7U4QD/rq1M7QEOcj5uttr9pybuV6YS6w6OeCN3yc= +github.com/acroca/go-symbols v0.0.0-20180523203557-953befd75e22/go.mod h1:RKAIDWtcELAw6/wjNJGWRYZ7QEinSWoJeJ2H5cfK6AM= +github.com/aokoli/goutils v1.0.1 h1:7fpzNGoJ3VA8qcrm++XEE1QUe0mIwNeLa02Nwq7RDkg= +github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= +github.com/autonomy/conform v0.1.0-alpha.4 h1:b4sqt9mndttaBOcQIbdRzwj9vwXiegJ9VUUKq1szjUc= +github.com/autonomy/conform v0.1.0-alpha.4/go.mod h1:V/VbGjFKeL4o0R3uvlcCuhzMrz7lW0YM6P8JJCDf7GE= +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cosiner/argv v0.0.0-20170225145430-13bacc38a0a5 h1:rIXlvz2IWiupMFlC45cZCXZFvKX/ExBcSLrDy2G0Lp8= +github.com/cosiner/argv v0.0.0-20170225145430-13bacc38a0a5/go.mod h1:p/NrK5tF6ICIly4qwEDsf6VDirFiWWz0FenfYBwJaKQ= +github.com/davidrjenni/reftools v0.0.0-20180509164333-3813a62570d2 h1:s9FFqeh2hSpBk09NiFLaHHQddrrLBlTrT2p26sPUfd4= +github.com/davidrjenni/reftools v0.0.0-20180509164333-3813a62570d2/go.mod h1:8o/GRMvsb9VyFbSEZGXfa0dkSXml4G23W0D/h9FksWM= +github.com/derekparker/delve v1.1.0 h1:icd65nMp7s2HiLz6y/6RCVXBdoED3xxYLwX09EMaRCc= +github.com/derekparker/delve v1.1.0/go.mod h1:pMSZMfp0Nhbm8qdZJkuE/yPGOkLpGXLS1I4poXQpuJU= +github.com/docker/distribution v2.6.1+incompatible h1:nWLG5KfUJK1PBt7i7iLBE8KpgWVF4uXwNfK1YOi1K/I= +github.com/docker/distribution v2.6.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v1.13.1 h1:5VBhsO6ckUxB0A8CE5LlUJdXzik9cbEbBTQ/ggeml7M= +github.com/docker/docker v1.13.1/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.2.1 h1:XB0Pr+bR+RGw8D0C/ADeRiiPVyMftTtKFblUw3sNFXQ= +github.com/docker/go-connections v0.2.1/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-units v0.3.1 h1:QAFdsA6jLCnglbqE6mUsHuPcJlntY94DkxHf4deHKIU= +github.com/docker/go-units v0.3.1/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= +github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= +github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/gomodifytags v0.0.0-20180826164257-7987f52a7108 h1:CIkmEYX6OO/UB9pBSdFvVlhkpT0pXjqXYo9lMmGVaLI= +github.com/fatih/gomodifytags v0.0.0-20180826164257-7987f52a7108/go.mod h1:p2/x7bnOQsbq/deXsDIlj2yLiKFGPkD2nuoYqwn8R4Y= +github.com/fatih/structtag v1.0.0 h1:pTHj65+u3RKWYPSGaU290FpI/dXxTaHdVwVwbcPKmEc= +github.com/fatih/structtag v1.0.0/go.mod h1:IKitwq45uXL/yqi5mYghiD3w9H6eTOvI9vnk8tXMphA= +github.com/fsnotify/fsnotify v1.4.2 h1:v5tKwtf2hNhBV24eNYfQ5UmvFOGlOCmRqk7/P1olxtk= +github.com/fsnotify/fsnotify v1.4.2/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/golang/lint v0.0.0-20180702182130-06c8688daad7 h1:2hRPrmiwPrp3fQX967rNJIhQPtiGXdlQWAxKbKw3VHA= +github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= +github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= +github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= +github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 h1:WadunOE/TeHR8U7f0TXiJACHeU3cuFOXuKafw4rozqU= +github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= +github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3 h1:pe9JHs3cHHDQgOFXJJdYkK6fLz2PWyYtP4hthoCMvs8= +github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o= +github.com/golangci/gocyclo v0.0.0-20180528144436-0a533e8fa43d h1:pXTK/gkVNs7Zyy7WKgLXmpQ5bHTrq5GDsp8R9Qs67g0= +github.com/golangci/gocyclo v0.0.0-20180528144436-0a533e8fa43d/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU= +github.com/golangci/gofmt v0.0.0-20180506063654-2076e05ced53 h1:8jBcdanEIu0YqTWHt9SUjObv3T0WnlTcmo/ZYm7qkRM= +github.com/golangci/gofmt v0.0.0-20180506063654-2076e05ced53/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= +github.com/golangci/golangci-lint v1.10.1 h1:jINimpUfHBQd3B9vQy1wKHVxRzZTahPHiIjvipX6pck= +github.com/golangci/golangci-lint v1.10.1/go.mod h1:SIy+ptlcOZw7K7jXSbBf13o2wTLrxN9rmBoAdnVAhYY= +github.com/golangci/govet v0.0.0-20180818181408-44ddbe260190 h1:SLIgprnxQNjBpkz55PK1vfb64/gKU/TgVi0obFw8Lec= +github.com/golangci/govet v0.0.0-20180818181408-44ddbe260190/go.mod h1:pPwb+AK755h3/r73avHz5bEN6sa51/2HEZlLaV53hCo= +github.com/golangci/ineffassign v0.0.0-20180808204949-2ee8f2867dde h1:qEGp3ZF1Qw6TkbWKn6GdJ12Ssu/CpJBaBcJ4hrUjrSo= +github.com/golangci/ineffassign v0.0.0-20180808204949-2ee8f2867dde/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU= +github.com/golangci/lint-1 v0.0.0-20180610141402-4bf9709227d1 h1:PHK2kIh21Zt4IcG0bBRzQwEDVKF64LnkoSXnm8lfJUk= +github.com/golangci/lint-1 v0.0.0-20180610141402-4bf9709227d1/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= +github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= +github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= +github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21 h1:leSNB7iYzLYSSx3J/s5sVf4Drkc68W2wm4Ixh/mr0us= +github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI= +github.com/golangci/revgrep v0.0.0-20180812185044-276a5c0a1039 h1:XQKc8IYQOeRwVs36tDrEmTgDgP88d5iEURwpmtiAlOM= +github.com/golangci/revgrep v0.0.0-20180812185044-276a5c0a1039/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4= +github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= +github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= +github.com/google/go-github v15.0.0+incompatible h1:jlPg2Cpsxb/FyEV/MFiIE9tW/2RAevQNZDPeHbf5a94= +github.com/google/go-github v15.0.0+incompatible/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/hcl v0.0.0-20170509225359-392dba7d905e h1:KJWs1uTCkN3E/J5ofCH9Pf8KKsibTFc3fv0CA9+WsVo= +github.com/hashicorp/hcl v0.0.0-20170509225359-392dba7d905e/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= +github.com/haya14busa/goplay v1.0.0 h1:ED4BMrGQ3WH7H3YXrcnWMVzj1xeSepaYTkLh1DtFi/4= +github.com/haya14busa/goplay v1.0.0/go.mod h1:TUcdOVV7TTx0Fo9CmTf16Erfju/DzXTbB70+RYb43h8= +github.com/huandu/xstrings v0.0.0-20151130125119-3959339b3335 h1:KZOP9q7J/P4eMBibPuVwuloXgd2dTbLAHRPqxw7NXOw= +github.com/huandu/xstrings v0.0.0-20151130125119-3959339b3335/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= +github.com/imdario/mergo v0.0.0-20160216103600-3e95a51e0639 h1:VMd01CgpBpmLpuERyY4Oibn2PpcVS1fK9sjh5UZG8+o= +github.com/imdario/mergo v0.0.0-20160216103600-3e95a51e0639/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/josharian/impl v0.0.0-20180228163738-3d0f908298c4 h1:gmIVMdGlVf5e6Yo6+ZklxdOrvtOvyrAjJyXAbmOznyo= +github.com/josharian/impl v0.0.0-20180228163738-3d0f908298c4/go.mod h1:t4Tr0tn92eq5ISef4cS5plFAMYAqZlAXtgUcKE6y8nw= +github.com/karrick/godirwalk v1.7.3 h1:UP4CfXf1LfNwXrX6vqWf1DOhuiFRn2hXsqtRAQlQOUQ= +github.com/karrick/godirwalk v1.7.3/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= +github.com/kevinburke/ssh_config v0.0.0-20170525151105-fa48d7ff1cfb h1:4qB7kGgjot2tlCOW66sJ+ai5tv81oIDM9t6cvyFTKLM= +github.com/kevinburke/ssh_config v0.0.0-20170525151105-fa48d7ff1cfb/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kisielk/errcheck v1.1.0 h1:ZqfnKyx9KGpRcW04j5nnPDgRgoXUeLh2YFBeFzphcA0= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/magiconair/properties v1.7.2 h1:de14gtQSJmD380aERiT7g/BPsA0iDosrVRaU+EhZAio= +github.com/magiconair/properties v1.7.2/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= +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-runewidth v0.0.3 h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mdempsky/gocode v0.0.0-20180727200127-00e7f5ac290a h1:ecO2aKe95WVgaFwU2NH0OefPUnwrGcsC4+hfokbKESM= +github.com/mdempsky/gocode v0.0.0-20180727200127-00e7f5ac290a/go.mod h1:hltEC42XzfMNgg0S1v6JTywwra2Mu6F6cLR03debVQ8= +github.com/mibk/dupl v1.0.0 h1:aZc3jqrF9n0tUHwHt/+jsRxA8cRgA0Gdl56M7W7PoqE= +github.com/mibk/dupl v1.0.0/go.mod h1:pCr4pNxxIbFGvtyCOi0c7LVjmV6duhKWV+ex5vh38ME= +github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747 h1:eQox4Rh4ewJF+mqYPxCkmBAirRnPaHEB26UkNuPyjlk= +github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v0.0.0-20170523030023-d0303fe80992 h1:W7VHAEVflA5/eTyRvQ53Lz5j8bhRd1myHZlI/IZFvbU= +github.com/mitchellh/mapstructure v0.0.0-20170523030023-d0303fe80992/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/nbutton23/zxcvbn-go v0.0.0-20180829150819-3cb5938f3fc9 h1:E8GjgePYkDRQAnd/DiSmJj7lLciracxtwLDDzLGySM4= +github.com/nbutton23/zxcvbn-go v0.0.0-20180829150819-3cb5938f3fc9/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= +github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/pelletier/go-buffruneio v0.2.0 h1:U4t4R6YkofJ5xHm3dJzuRpPZ0mr5MMCoAWooScCR7aA= +github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= +github.com/pelletier/go-toml v1.0.0 h1:QFDlmAXZrfPXEF6c9+15fMqhQIS3O0pxszhnk936vg4= +github.com/pelletier/go-toml v1.0.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/peterh/liner v1.1.0 h1:f+aAedNJA6uk7+6rXsYBnhdo4Xux7ESLe+kcuVUF5os= +github.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= +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/ramya-rao-a/go-outline v0.0.0-20170803230019-9e9d089bb61a h1:B4BHwip49jjfBeBBIh2WrAuvgGNHQgpxMg7V2Dv7BsE= +github.com/ramya-rao-a/go-outline v0.0.0-20170803230019-9e9d089bb61a/go.mod h1:1WL5IqM+CnRCAbXetRnL1YVoS9KtU2zMhOi/5oAVPo4= +github.com/rogpeppe/godef v0.0.0-20170920080713-b692db1de522 h1:MzB6wOOru/yUkJs6iTkTa0UuKZlc2WAo/jr1TnBH+Sw= +github.com/rogpeppe/godef v0.0.0-20170920080713-b692db1de522/go.mod h1:ZBiG/aArN4rqpDocvOY8PVZIVqBTm7A2uOasqHjXt9Y= +github.com/satori/go.uuid v1.1.0 h1:B9KXyj+GzIpJbV7gmr873NsY6zpbxNy24CBtGrk7jHo= +github.com/satori/go.uuid v1.1.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/securego/gosec v0.0.0-20180828043407-7fd94463edcb h1:OmO/Ah/Md0lr3Fb1oCumv++7+1CpdoiPkTNW0MJ+4v8= +github.com/securego/gosec v0.0.0-20180828043407-7fd94463edcb/go.mod h1:hj549zYAYwKuYqvz+sOJ3SSzGhRV88MPtLDqkBWzjFw= +github.com/sergi/go-diff v0.0.0-20170409071739-feef008d51ad h1:tSFsPEWlyDYLf376k3+aunLH2qE7TMd/8arj5jZtqg8= +github.com/sergi/go-diff v0.0.0-20170409071739-feef008d51ad/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sirupsen/logrus v1.0.6 h1:hcP1GmhGigz/O7h1WVUM5KklBp1JoNS9FggWKdj/j3s= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c h1:fyKiXKO1/I/B6Y2U8T7WdQGWzwehOuGIrljPtt7YTTI= +github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= +github.com/sourcegraph/go-langserver v1.0.0 h1:fy1vrT1KGfdOaj7/XKO7ULGO/JdMOiuQ1JfUWIqCpYE= +github.com/sourcegraph/go-langserver v1.0.0/go.mod h1:bBMjfpzEHd6ijPRoQ7f+knFfw+e8R+W158/MsqAy77c= +github.com/spf13/afero v0.0.0-20170217164146-9be650865eab h1:IVAbBHQR8rXL2Fc8Zba/lMF7KOnTi70lqdx91UTuAwQ= +github.com/spf13/afero v0.0.0-20170217164146-9be650865eab/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.1.0 h1:0Rhw4d6C8J9VPu6cjZLIhZ8+aAOHcDvGeKn+cq5Aq3k= +github.com/spf13/cast v1.1.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= +github.com/spf13/cobra v0.0.0-20170629105234-8c6fa02d2225 h1:q3+5ddm9WXXqHG+6uw1mo2su75ES27vhNCqi/xflZY0= +github.com/spf13/cobra v0.0.0-20170629105234-8c6fa02d2225/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/jwalterweatherman v0.0.0-20170523133247-0efa5202c046 h1:RpxSq53NruItMGgp6q5MsDYoZynisJgEpisQdWJ7PyM= +github.com/spf13/jwalterweatherman v0.0.0-20170523133247-0efa5202c046/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.0 h1:oaPbdDe/x0UncahuwiPxW1GYJyilRAdsPnq3e1yaPcI= +github.com/spf13/pflag v1.0.0/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v0.0.0-20170619124313-c1de95864d73 h1:qJXvCTq/ZNWp7kk3MGbyDByJaCWFLT7uXIbksXFxITQ= +github.com/spf13/viper v0.0.0-20170619124313-c1de95864d73/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM= +github.com/sqs/goreturns v0.0.0-20180302073349-83e02874ec12 h1:/iJCbsc+t41LGK/YJblzm1o3HwM162j66hkq2L57nis= +github.com/sqs/goreturns v0.0.0-20180302073349-83e02874ec12/go.mod h1:CKI4AZ4XmGV240rTHfO0hfE83S6/a3/Q1siZJ/vXf7A= +github.com/src-d/gcfg v1.3.0 h1:2BEDr8r0I0b8h/fOqwtxCEiq2HJu8n2JGZJQFGXWLjg= +github.com/src-d/gcfg v1.3.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= +github.com/uudashr/gopkgs v1.3.2 h1:ACme7LZyeSNIRIl9HtAA0RsT0eePUsrkHDVb2+aswhg= +github.com/uudashr/gopkgs v1.3.2/go.mod h1:MtCdKVJkxW7hNKWXPNWfpaeEp8+Ml3Q8myb4yWhn2Hg= +github.com/xanzy/ssh-agent v0.1.0 h1:lOhdXLxtmYjaHc76ZtNmJWPg948y/RnT+3N3cvKWFzY= +github.com/xanzy/ssh-agent v0.1.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnWhgSqHD8= +golang.org/x/arch v0.0.0-20180516175055-5de9028c2478 h1:fvOqz8ZzX1us9kyff4JaBYTLClOQbLu2TkJGizMew9w= +golang.org/x/arch v0.0.0-20180516175055-5de9028c2478/go.mod h1:cYlCBUl1MsqxdiKgmc4uh7TxZfWSFLOGSRR090WDxt8= +golang.org/x/crypto v0.0.0-20170703161049-69be088f8606 h1:i72l9b8scUpp6IdZyG/amRbdITs8cYMY5HnSypqSt5I= +golang.org/x/crypto v0.0.0-20170703161049-69be088f8606/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/lint v0.0.0-20180702182130-06c8688daad7 h1:00BeQWmeaGazuOrq8Q5K5d3/cHaGuFrZzpaHBXfrsUA= +golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/net v0.0.0-20170629171032-1f9224279e98 h1:7wZTjEl3uuLKP9GWY+XYHTXYLUtBChvsVHCNZBouFMA= +golang.org/x/net v0.0.0-20170629171032-1f9224279e98/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/oauth2 v0.0.0-20180620175406-ef147856a6dd h1:QQhib242ErYDSMitlBm8V7wYCm/1a25hV8qMadIKLPA= +golang.org/x/oauth2 v0.0.0-20180620175406-ef147856a6dd/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sys v0.0.0-20170703210155-94b76065f2d2 h1:t5pPVtKY5FQGuFxgVhQzf4GN4yt7pMhcjKkJ6NIB5Ec= +golang.org/x/sys v0.0.0-20170703210155-94b76065f2d2/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.0.0-20170630100924-2bf8f2a19ec0 h1:M4kywXOhV3F38kTr0IZZYueKhR5dVnpaVmGSeYrklJY= +golang.org/x/text v0.0.0-20170630100924-2bf8f2a19ec0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20180824175216-6c1c5e93cdc1/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180826000951-f6ba57429505/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52 h1:JG/0uqcGdTNgq7FdU+61l5Pdmb8putNZlXb65bJBROs= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +gopkg.in/src-d/go-billy.v4 v4.0.1 h1:iMxwQPj2cuKRyaIZ985zxClkcdTtT5VpXYf4PTJc0Ek= +gopkg.in/src-d/go-billy.v4 v4.0.1/go.mod h1:ZHSF0JP+7oD97194otDUCD7Ofbk63+xFcfWP5bT6h+Q= +gopkg.in/src-d/go-git.v4 v4.0.0 h1:9ZRNKHuhaTaJRGcGaH6Qg7uUORO2X0MNB5WL/CDdqto= +gopkg.in/src-d/go-git.v4 v4.0.0/go.mod h1:CzbUWqMn4pvmvndg3gnh5iZFmSsbhyhUWdI0IQ60AQo= +gopkg.in/warnings.v0 v0.1.1 h1:XM28wIgFzaBmeZ5dNHIpWLQpt/9DGKxk+rCg/22nnYE= +gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170407172122-cd8b52f8269e h1:o/mfNjxpTLivuKEfxzzwrJ8PmulH2wEp7t713uMwKAA= +gopkg.in/yaml.v2 v2.0.0-20170407172122-cd8b52f8269e/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858 h1:wN+eVZ7U+gqdqkec6C6VXR1OFf9a5Ul9ETzeYsYv20g= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +mvdan.cc/interfacer v0.0.0-20180326104626-822e100dd73a h1:BdF4B1NgxIhmqSzfc0aikOU3WlPCFyUQ4JFHMTV0sCQ= +mvdan.cc/interfacer v0.0.0-20180326104626-822e100dd73a/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= +mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= +mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= +mvdan.cc/unparam v0.0.0-20180827003406-8eb9bf77f9de h1:AN030Gpbh3zQGmUbEKt5379Pdp9QQn9kaTCEeDcErAk= +mvdan.cc/unparam v0.0.0-20180827003406-8eb9bf77f9de/go.mod h1:tC+aoVWJCzHfbH9PgkZ1waI175w0Sx5GA40rBgdPeo0= +sourcegraph.com/sourcegraph/go-diff v0.0.0-20171119081133-3f415a150aec h1:wAAdENPXC7bE1oxY4VqSDdhaA+XQ8TgQHsZMMnrXjEk= +sourcegraph.com/sourcegraph/go-diff v0.0.0-20171119081133-3f415a150aec/go.mod h1:R09mWeb9JcPbO+A3cYDc11xjz0wp6r9+KnqdqROAoRU= +sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4 h1:JPJh2pk3+X4lXAkZIk2RuE/7/FoK9maXw+TNPJhVS/c= +sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/hack/golangci-lint.yaml b/hack/golangci-lint.yaml new file mode 100644 index 00000000..896cfc63 --- /dev/null +++ b/hack/golangci-lint.yaml @@ -0,0 +1,131 @@ +# This file contains all available configuration options +# with their default values. + +# options for analysis running +run: + # default concurrency is a available CPU number + concurrency: 4 + + # timeout for analysis, e.g. 30s, 5m, default is 1m + deadline: 5m + + # exit code when at least one issue was found, default is 1 + issues-exit-code: 1 + + # include test files or not, default is true + tests: true + +# output configuration options +output: + # colored-line-number|line-number|json|tab|checkstyle, default is "colored-line-number" + format: line-number + +# all available settings of specific linters +linters-settings: + errcheck: + # report about not checking of errors in type assetions: `a := b.(MyStruct)`; + # default is false: such cases aren't reported by default. + check-type-assertions: true + + # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; + # default is false: such cases aren't reported by default. + check-blank: true + govet: + # report about shadowed variables + check-shadowing: true + golint: + # minimal confidence for issues, default is 0.8 + min-confidence: 0.8 + gofmt: + # simplify code: gofmt with `-s` option, true by default + simplify: true + gocyclo: + # minimal code complexity to report, 30 by default (but we recommend 10-20) + min-complexity: 10 + maligned: + # print struct with more effective memory layout or not, false by default + suggest-new: true + dupl: + # tokens count to trigger issue, 150 by default + threshold: 100 + goconst: + # minimal length of string constant, 3 by default + min-len: 3 + # minimal occurrences count to trigger, 3 by default + min-occurrences: 3 + depguard: {} + misspell: + # Correct spellings using locale preferences for US or UK. + # Default is to use a neutral variety of English. + # Setting locale to US will correct the British spelling of 'colour' to 'color'. + locale: US + lll: + # max line length, lines longer will be reported. Default is 120. + # '\t' is counted as 1 character by default, and can be changed with the tab-width option + line-length: 200 + # tab width in spaces. Default to 1. + tab-width: 1 + unused: + # treat code as a program (not a library) and report unused exported identifiers; default is false. + # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: + # if it's called for subdir of a project it can't find funcs usages. All text editor integrations + # with golangci-lint call it on a directory with the changed file. + check-exported: false + unparam: + # call graph construction algorithm (cha, rta). In general, use cha for libraries, + # and rta for programs with main packages. Default is cha. + algo: cha + + # Inspect exported functions, default is false. Set to true if no external program/library imports your code. + # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: + # if it's called for subdir of a project it can't find external interfaces. All text editor integrations + # with golangci-lint call it on a directory with the changed file. + check-exported: false + nakedret: + # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 + max-func-lines: 30 + prealloc: + # XXX: we don't recommend using this linter before doing performance profiling. + # For most programs usage of prealloc will be a premature optimization. + + # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. + # True by default. + simple: true + range-loops: true # Report preallocation suggestions on range loops, true by default + for-loops: false # Report preallocation suggestions on for loops, false by default + +linters: + enable-all: true + disable: + - gas + - typecheck + disable-all: false + fast: false + + +issues: + # List of regexps of issue texts to exclude, empty list by default. + # But independently from this option we use default exclude patterns, + # it can be disabled by `exclude-use-default: false`. To list all + # excluded by default patterns execute `golangci-lint run --help` + exclude: [] + + # Independently from option `exclude` we use default exclude patterns, + # it can be disabled by this option. To list all + # excluded by default patterns execute `golangci-lint run --help`. + # Default value for this option is true. + exclude-use-default: false + + # Maximum issues count per one linter. Set to 0 to disable. Default is 50. + max-per-linter: 0 + + # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. + max-same: 0 + + # Show only new issues: if there are unstaged changes or untracked files, + # only those changes are analyzed, else only changes in HEAD~ are analyzed. + # It's a super-useful option for integration of golangci-lint into existing + # large codebase. It's not practical to fix all existing issues at the moment + # of integration: much better don't allow issues in new code. + # Default is false. + new: false diff --git a/hack/test.sh b/hack/test.sh new file mode 100644 index 00000000..1c9db7bd --- /dev/null +++ b/hack/test.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +set -e + +CGO_ENABLED=1 +GOPACKAGES=$(go list ./...) + +lint_packages() { + echo "Linting packages" + golangci-lint run --config ${1} +} + +perform_unit_tests() { + echo "Performing unit tests" + go test -v -short ./... +} + +perform_integration_tests() { + echo "Performing integration tests" + go test -v ./... +} + +perform_coverage_tests() { + echo "Performing coverage tests" + local coverage_report="coverage.txt" + local profile="profile.out" + if [[ -f ${coverage_report} ]]; then + rm ${coverage_report} + fi + touch ${coverage_report} + for package in ${GOPACKAGES[@]}; do + go test -v -short -race -coverprofile=${profile} -covermode=atomic $package + if [ -f ${profile} ]; then + cat ${profile} >> ${coverage_report} + rm ${profile} + fi + done +} + +case $1 in + --lint) + lint_packages ${2} + ;; + --unit) + perform_unit_tests + ;; + --integration) + perform_integration_tests + ;; + --coverage) + perform_coverage_tests + ;; + *) + exit 1 + ;; +esac + +exit 0