diff --git a/.fossa.yml b/.fossa.yml deleted file mode 100755 index b746ea8..0000000 --- a/.fossa.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: 2 -cli: - server: https://app.fossa.com - fetcher: git - project: github.com:elyby/chrly -analyze: - modules: - - name: chrly - type: go - target: github.com/elyby/chrly - path: . - options: - strategy: dep diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..b4faf8f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,48 @@ +name: Build + +on: + push: + branches: + - '**' + tags: + - '*.*.*' + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + + services: + redis: + image: redis:7-alpine + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 6379:6379 + + steps: + - uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v4 + with: + cache-dependency-path: go.sum + go-version-file: go.mod + + - name: Install dependencies + run: go get . + + - name: Go Format + run: gofmt -s -w . && git diff --exit-code + + - name: Go Vet + run: go vet ./... + + - name: Go Test + run: go test -v -race --tags redis -coverprofile=coverage.txt -covermode=atomic ./... + + - name: Build + run: go build ./... diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..e1ca05d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,42 @@ +name: Release + +on: + workflow_run: + workflows: + - Build + types: + - completed + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - id: meta + name: Docker meta + uses: docker/metadata-action@v5 + with: + images: ${{ github.repository }} + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and Push + uses: docker/build-push-action@v5 + with: + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 92fa5ee..0000000 --- a/.travis.yml +++ /dev/null @@ -1,66 +0,0 @@ -os: linux -dist: xenial -language: go -go: - - "1.14" - -stages: - - Tests - - name: Deploy - if: env(TRAVIS_PULL_REQUEST) IS false AND (branch = master OR tag IS present) AND commit_message !~ /(\[skip deploy\])/ - -install: - - go get -u github.com/golang/dep/cmd/dep - - dep ensure - -cache: - directories: - - $GOPATH/pkg/dep - -jobs: - include: - # Tests stage - - name: Unit tests - stage: Tests - services: - - redis - script: - - go test -v -race --tags redis -coverprofile=coverage.txt -covermode=atomic ./... - - bash <(curl -s https://codecov.io/bash) - - - name: FOSSA - stage: Tests - if: branch = master - before_script: - - curl https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | bash - script: - - fossa init - - fossa analyze - # Disable until https://github.com/fossas/fossa-cli/issues/596 will be resolved - # - fossa test - - # Deploy stage - - name: Docker image - stage: Deploy - services: - - docker - script: - - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" - - export DOCKER_TAG="${TRAVIS_TAG:-dev}" - - export APP_VERSION="${TRAVIS_TAG:-dev-${TRAVIS_COMMIT:0:7}}" - - export BUILD_TAGS="" - - if [ "$DOCKER_TAG" == "dev" ]; then export BUILD_TAGS="$BUILD_TAGS --tags profiling"; fi - - > - env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 - go build - $BUILD_TAGS - -o release/chrly - -ldflags "-extldflags '-static' -X github.com/elyby/chrly/version.version=$APP_VERSION -X github.com/elyby/chrly/version.commit=$TRAVIS_COMMIT" - main.go - - docker build -t elyby/chrly:$DOCKER_TAG . - - docker push elyby/chrly:$DOCKER_TAG - - | - if [ ! -z ${TRAVIS_TAG:+x} ]; then - docker tag elyby/chrly:$DOCKER_TAG elyby/chrly:latest - docker push elyby/chrly:latest - fi diff --git a/Gopkg.lock b/Gopkg.lock deleted file mode 100644 index 4e787f2..0000000 --- a/Gopkg.lock +++ /dev/null @@ -1,350 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[[projects]] - digest = "1:8855efc2aff3afd6319da41b22a8ca1cfd1698af05a24852c01636ba65b133f0" - name = "github.com/SermoDigital/jose" - packages = [ - ".", - "crypto", - "jws", - "jwt", - ] - pruneopts = "" - revision = "f6df55f235c24f236d11dbcf665249a59ac2021f" - version = "1.1" - -[[projects]] - branch = "publish_nil_values" - digest = "1:d02c8323070a3d8d8ca039d0d180198ead0a75eac4fb1003af812435a2b391e8" - name = "github.com/asaskevich/EventBus" - packages = ["."] - pruneopts = "" - revision = "33b3bc6a7ddca2f99683c5c3ee86b24f80a7a075" - source = "https://github.com/erickskrauch/EventBus.git" - -[[projects]] - digest = "1:c7b11da9bf0707e6920e1b361fbbbbe9b277ef3a198377baa4527f6e31049be0" - name = "github.com/certifi/gocertifi" - packages = ["."] - pruneopts = "" - revision = "3fd9e1adb12b72d2f3f82191d49be9b93c69f67c" - version = "2017.07.27" - -[[projects]] - digest = "1:56c130d885a4aacae1dd9c7b71cfe39912c7ebc1ff7d2b46083c8812996dc43b" - name = "github.com/davecgh/go-spew" - packages = ["spew"] - pruneopts = "" - revision = "346938d642f2ec3594ed81d874461961cd0faa76" - version = "v1.1.0" - -[[projects]] - digest = "1:2e7c296138d042515eb2995fe58026eaef2c08f660a5f36584faecf34eea3cf0" - name = "github.com/etherlabsio/healthcheck" - packages = ["."] - pruneopts = "" - revision = "dd3d2fd8c3f620a32b7f3cd9b4f0d2f7d0875ab1" - version = "2.0.3" - -[[projects]] - digest = "1:9f1e571696860f2b4f8a241b43ce91c6085e7aaed849ccca53f590a4dc7b95bd" - name = "github.com/fsnotify/fsnotify" - packages = ["."] - pruneopts = "" - revision = "629574ca2a5df945712d3079857300b5e4da0236" - version = "v1.4.2" - -[[projects]] - branch = "master" - digest = "1:904b0b847f705de43c15e6c8f3dd639044db5601dedfb2f3fdb3021a28491d15" - name = "github.com/getsentry/raven-go" - packages = ["."] - pruneopts = "" - revision = "919484f041ea21e7e27be291cee1d6af7bc98864" - -[[projects]] - branch = "master" - digest = "1:8c9f13aac9e92f3754ea591b39ada87b9f89f1e75c4b90ccbd0b1084069c436f" - name = "github.com/goava/di" - packages = [ - ".", - "internal/reflection", - "internal/stacktrace", - ] - pruneopts = "" - revision = "1eb6eb721bf050edff0efbf15c31636def701b4b" - -[[projects]] - digest = "1:65c7ed49d9f36dd4752e43013323fa9229db60b29aa4f5a75aaecda3130c74e2" - name = "github.com/gorilla/mux" - packages = ["."] - pruneopts = "" - revision = "c5c6c98bc25355028a63748a498942a6398ccd22" - version = "v1.7.1" - -[[projects]] - digest = "1:0f31ddb2589297fc1d716f45b34e34bff34e968de1aa239543274c87522e86f4" - name = "github.com/h2non/parth" - packages = ["."] - pruneopts = "" - revision = "b4df798d65426f8c8ab5ca5f9987aec5575d26c9" - version = "v2.0.1" - -[[projects]] - branch = "master" - digest = "1:8017a99c7fa4dac90c7a34e08d5f890043fc27e91e561f3267a09f65595b158c" - name = "github.com/hashicorp/hcl" - packages = [ - ".", - "hcl/ast", - "hcl/parser", - "hcl/printer", - "hcl/scanner", - "hcl/strconv", - "hcl/token", - "json/parser", - "json/scanner", - "json/token", - ] - pruneopts = "" - revision = "8f6b1344a92ff8877cf24a5de9177bf7d0a2a187" - -[[projects]] - digest = "1:870d441fe217b8e689d7949fef6e43efbc787e50f200cb1e70dbca9204a1d6be" - name = "github.com/inconshreveable/mousetrap" - packages = ["."] - pruneopts = "" - revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" - version = "v1.0" - -[[projects]] - digest = "1:1ce378ab2352c756c6d7a0172c22ecbd387659d32712a4ce3bc474273309a5dc" - name = "github.com/magiconair/properties" - packages = ["."] - pruneopts = "" - revision = "be5ece7dd465ab0765a9682137865547526d1dfb" - version = "v1.7.3" - -[[projects]] - branch = "master" - digest = "1:19a9f4143462f07553e9bf6ae0f1b8633a2c44763b1df90d4e9e49f51cd8423a" - name = "github.com/mediocregopher/radix.v2" - packages = [ - "cluster", - "pool", - "redis", - "util", - ] - pruneopts = "" - revision = "b67df6e626f993b64b3ca9f4b8630900e61002e3" - -[[projects]] - branch = "master" - digest = "1:c9ede10a9ded782d25d1f0be87c680e11409c23554828f19a19d691a95e76130" - name = "github.com/mitchellh/mapstructure" - packages = ["."] - pruneopts = "" - revision = "d0303fe809921458f417bcf828397a65db30a7e4" - -[[projects]] - branch = "master" - digest = "1:c62e653e0a78bcf08fd56c764e5725e604693ffbd35b2b283b360f174d073a75" - name = "github.com/mono83/slf" - packages = [ - ".", - "filters", - "params", - "rays", - "recievers", - "recievers/sentry", - "recievers/statsd", - "recievers/writer", - "wd", - ] - pruneopts = "" - revision = "79153e9636db86e1c6b74d74dd04176f257a4f2d" - -[[projects]] - branch = "master" - digest = "1:270261c28f6e71a8a31b9d308ec9145147040fd80d21563307767a8e844bfabc" - name = "github.com/mono83/udpwriter" - packages = ["."] - pruneopts = "" - revision = "a064bd7e3acfda563ea680b913b9ef24b7a73e15" - -[[projects]] - digest = "1:049b5bee78dfdc9628ee0e557219c41f683e5b06c5a5f20eaba0105ccc586689" - name = "github.com/pelletier/go-buffruneio" - packages = ["."] - pruneopts = "" - revision = "c37440a7cf42ac63b919c752ca73a85067e05992" - version = "v0.2.0" - -[[projects]] - digest = "1:6d5a9728ae27e477a07bb69f02ea0bade74eb8b0c7346d046337904bbf7af065" - name = "github.com/pelletier/go-toml" - packages = ["."] - pruneopts = "" - revision = "5ccdfb18c776b740aecaf085c4d9a2779199c279" - version = "v1.0.0" - -[[projects]] - digest = "1:256484dbbcd271f9ecebc6795b2df8cad4c458dd0f5fd82a8c2fa0c29f233411" - name = "github.com/pmezard/go-difflib" - packages = ["difflib"] - pruneopts = "" - revision = "792786c7400a136282c1664665ae0a8db921c6c2" - version = "v1.0.0" - -[[projects]] - branch = "master" - digest = "1:c189f11a84aa8b868a4b7cd4605653160424ab299cf7cfb1c5bd2740b949928f" - name = "github.com/spf13/afero" - packages = [ - ".", - "mem", - ] - pruneopts = "" - revision = "ee1bd8ee15a1306d1f9201acc41ef39cd9f99a1b" - -[[projects]] - digest = "1:6ff9b74bfea2625f805edec59395dc37e4a06458dd3c14e3372337e3d35a2ed6" - name = "github.com/spf13/cast" - packages = ["."] - pruneopts = "" - revision = "acbeb36b902d72a7a4c18e8f3241075e7ab763e4" - version = "v1.1.0" - -[[projects]] - digest = "1:a1403cc8a94b8d7956ee5e9694badef0e7b051af289caad1cf668331e3ffa4f6" - name = "github.com/spf13/cobra" - packages = ["."] - pruneopts = "" - revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385" - version = "v0.0.3" - -[[projects]] - branch = "master" - digest = "1:5cb42b990db5dc48b8bc23b6ee77b260713ba3244ca495cd1ed89533dc482a49" - name = "github.com/spf13/jwalterweatherman" - packages = ["."] - pruneopts = "" - revision = "12bd96e66386c1960ab0f74ced1362f66f552f7b" - -[[projects]] - digest = "1:cbaf13cdbfef0e4734ed8a7504f57fe893d471d62a35b982bf6fb3f036449a66" - name = "github.com/spf13/pflag" - packages = ["."] - pruneopts = "" - revision = "298182f68c66c05229eb03ac171abe6e309ee79a" - version = "v1.0.3" - -[[projects]] - digest = "1:90fe60ab6f827e308b0c8cc1e11dce8ff1e96a927c8b171271a3cb04dd517606" - name = "github.com/spf13/viper" - packages = ["."] - pruneopts = "" - revision = "9e56dacc08fbbf8c9ee2dbc717553c758ce42bc9" - version = "v1.3.2" - -[[projects]] - digest = "1:711eebe744c0151a9d09af2315f0bb729b2ec7637ef4c410fa90a18ef74b65b6" - name = "github.com/stretchr/objx" - packages = ["."] - pruneopts = "" - revision = "477a77ecc69700c7cdeb1fa9e129548e1c1c393c" - version = "v0.1.1" - -[[projects]] - digest = "1:cc4eb6813da8d08694e557fcafae8fcc24f47f61a0717f952da130ca9a486dfc" - name = "github.com/stretchr/testify" - packages = [ - "assert", - "mock", - "require", - "suite", - ] - pruneopts = "" - revision = "3ebf1ddaeb260c4b1ae502a01c7844fa8c1fa0e9" - version = "v1.5.1" - -[[projects]] - digest = "1:061754b9de261d8e1cf804970dff7b3e105d1cb4883ef446dbe911489ba8e9eb" - name = "github.com/thedevsaddam/govalidator" - packages = ["."] - pruneopts = "" - revision = "0413a0eb80cac8ab2d666639130658ce49a0c967" - version = "v1.9.6" - -[[projects]] - branch = "master" - digest = "1:19adc71218d62052cd18b83ebaab77961378876094081f4b1581ca28ef80395d" - name = "golang.org/x/sys" - packages = ["unix"] - pruneopts = "" - revision = "7ddbeae9ae08c6a06a59597f0c9edbc5ff2444ce" - -[[projects]] - branch = "master" - digest = "1:653926785eac385fd1d61dc16360a5194c68d4bf2541234363a9375d2e88a039" - name = "golang.org/x/text" - packages = [ - "internal/gen", - "internal/triegen", - "internal/ucd", - "transform", - "unicode/cldr", - "unicode/norm", - ] - pruneopts = "" - revision = "bd91bbf73e9a4a801adbfb97133c992678533126" - -[[projects]] - digest = "1:2a7fe9cf6ed8bca3f0ef319592db1621ce244e7ffefba3c2c21ee40d6898a9c8" - name = "gopkg.in/h2non/gock.v1" - packages = ["."] - pruneopts = "" - revision = "3ffff9b1aa8200275a5eb219c5f9c62bd27acb31" - version = "v1.0.15" - -[[projects]] - branch = "v2" - digest = "1:81314a486195626940617e43740b4fa073f265b0715c9f54ce2027fee1cb5f61" - name = "gopkg.in/yaml.v2" - packages = ["."] - pruneopts = "" - revision = "eb3733d160e74a9c7e442f435eb3bea458e1d19f" - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - input-imports = [ - "github.com/SermoDigital/jose/crypto", - "github.com/SermoDigital/jose/jws", - "github.com/asaskevich/EventBus", - "github.com/etherlabsio/healthcheck", - "github.com/getsentry/raven-go", - "github.com/goava/di", - "github.com/gorilla/mux", - "github.com/mediocregopher/radix.v2/pool", - "github.com/mediocregopher/radix.v2/redis", - "github.com/mediocregopher/radix.v2/util", - "github.com/mono83/slf", - "github.com/mono83/slf/params", - "github.com/mono83/slf/rays", - "github.com/mono83/slf/recievers/sentry", - "github.com/mono83/slf/recievers/statsd", - "github.com/mono83/slf/recievers/writer", - "github.com/mono83/slf/wd", - "github.com/spf13/cobra", - "github.com/spf13/viper", - "github.com/stretchr/testify/assert", - "github.com/stretchr/testify/mock", - "github.com/stretchr/testify/require", - "github.com/stretchr/testify/suite", - "github.com/thedevsaddam/govalidator", - "gopkg.in/h2non/gock.v1", - ] - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml deleted file mode 100644 index e9bd248..0000000 --- a/Gopkg.toml +++ /dev/null @@ -1,56 +0,0 @@ -ignored = ["github.com/elyby/chrly"] - -[[constraint]] - name = "github.com/gorilla/mux" - version = "^1.6.1" - -[[constraint]] - name = "github.com/mediocregopher/radix.v2" - branch = "master" - -[[constraint]] - name = "github.com/mono83/slf" - branch = "master" - -[[constraint]] - name = "github.com/spf13/cobra" - version = "^0.0.3" - -[[constraint]] - name = "github.com/spf13/viper" - version = "^1.0.0" - -[[constraint]] - name = "github.com/getsentry/raven-go" - branch = "master" - -[[constraint]] - name = "github.com/SermoDigital/jose" - version = "~1.1.0" - -[[constraint]] - name = "github.com/thedevsaddam/govalidator" - version = "^1.9.6" - -[[constraint]] - name = "github.com/asaskevich/EventBus" - source = "https://github.com/erickskrauch/EventBus.git" - branch = "publish_nil_values" - -[[constraint]] - name = "github.com/etherlabsio/healthcheck" - version = "2.0.3" - -[[constraint]] - name = "github.com/goava/di" - branch = "master" - -# Testing dependencies - -[[constraint]] - name = "github.com/stretchr/testify" - version = "^1.3.0" - -[[constraint]] - name = "gopkg.in/h2non/gock.v1" - version = "^1.0.15" diff --git a/README.md b/README.md index 8fde0f7..dbaa28c 100644 --- a/README.md +++ b/README.md @@ -454,18 +454,15 @@ If any of the checks fails, the server will return `503` status code with the fo First of all you should install the [latest stable version of Go](https://golang.org/doc/install) and set `GOPATH` environment variable. -This project uses [`dep`](https://github.com/golang/dep) for dependencies management, so it -[should be installed](https://github.com/golang/dep#installation) too. - Then you must fork this repository. Now follow these steps: ```sh # Get the source code -go get github.com/elyby/chrly +git clone https://github.com/elyby/chrly.git # Switch to the project folder -cd $GOPATH/src/github.com/elyby/chrly -# Install dependencies (it can take a while) -dep ensure +cd chrly +# Install dependencies +go mod download # Add your fork link as a remote git remote add fork git@github.com:your-username/chrly.git # Create a new branch for your task diff --git a/cmd/root_profiling.go b/cmd/root_profiling.go index bbd7e18..7e0d5c2 100644 --- a/cmd/root_profiling.go +++ b/cmd/root_profiling.go @@ -1,3 +1,4 @@ +//go:build profiling // +build profiling package cmd diff --git a/db/redis/redis_integration_test.go b/db/redis/redis_integration_test.go index fd9c078..5224ab5 100644 --- a/db/redis/redis_integration_test.go +++ b/db/redis/redis_integration_test.go @@ -1,10 +1,13 @@ +//go:build redis // +build redis package redis import ( "fmt" + "os" "reflect" + "strconv" "testing" "time" @@ -15,7 +18,21 @@ import ( "github.com/elyby/chrly/model" ) -const redisAddr = "localhost:6379" +var redisAddr string + +func init() { + host := "localhost" + port := 6379 + if os.Getenv("STORAGE_REDIS_HOST") != "" { + host = os.Getenv("STORAGE_REDIS_HOST") + } + + if os.Getenv("STORAGE_REDIS_PORT") != "" { + port, _ = strconv.Atoi(os.Getenv("STORAGE_REDIS_PORT")) + } + + redisAddr = fmt.Sprintf("%s:%d", host, port) +} func TestNew(t *testing.T) { t.Run("should connect", func(t *testing.T) { diff --git a/eventsubscribers/health_checkers_test.go b/eventsubscribers/health_checkers_test.go index a3e9187..9f36a7f 100644 --- a/eventsubscribers/health_checkers_test.go +++ b/eventsubscribers/health_checkers_test.go @@ -43,7 +43,9 @@ func TestDatabaseChecker(t *testing.T) { waitChan := make(chan time.Time, 1) p.On("Ping").WaitUntil(waitChan).Return(nil) - ctx, _ := context.WithTimeout(context.Background(), 0) + ctx, cancel := context.WithTimeout(context.Background(), 0) + defer cancel() + checker := DatabaseChecker(p) assert.Errorf(t, checker(ctx), "check timeout") close(waitChan) diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..7a8629d --- /dev/null +++ b/go.mod @@ -0,0 +1,52 @@ +module github.com/elyby/chrly + +go 1.21 + +replace github.com/asaskevich/EventBus v0.0.0-20200330115301-33b3bc6a7ddc => github.com/erickskrauch/EventBus v0.0.0-20200330115301-33b3bc6a7ddc + +// Main dependencies +require ( + github.com/SermoDigital/jose v0.9.2-0.20161205224733-f6df55f235c2 + github.com/asaskevich/EventBus v0.0.0-20200330115301-33b3bc6a7ddc + github.com/etherlabsio/healthcheck v0.0.0-20191224061800-dd3d2fd8c3f6 + github.com/getsentry/raven-go v0.2.1-0.20190419175539-919484f041ea + github.com/goava/di v1.1.1-0.20200420103225-1eb6eb721bf0 + github.com/gorilla/mux v1.7.1 + github.com/mediocregopher/radix.v2 v0.0.0-20181115013041-b67df6e626f9 + github.com/mono83/slf v0.0.0-20170919161409-79153e9636db + github.com/spf13/cobra v0.0.3 + github.com/spf13/viper v1.3.2 + github.com/thedevsaddam/govalidator v1.9.6 +) + +// Dev dependencies +require ( + github.com/stretchr/testify v1.8.4 + gopkg.in/h2non/gock.v1 v1.0.15 +) + +require ( + github.com/BurntSushi/toml v1.3.2 // indirect + github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/fsnotify/fsnotify v1.4.7 // indirect + github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/levenlabs/golib v0.0.0-20180911183212-0f8974794783 // indirect + github.com/magiconair/properties v1.8.0 // indirect + github.com/mitchellh/mapstructure v1.1.2 // indirect + github.com/mono83/udpwriter v1.0.2 // indirect + github.com/oschwald/geoip2-golang v1.9.0 // indirect + github.com/pelletier/go-toml v1.2.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/spf13/afero v1.1.2 // indirect + github.com/spf13/cast v1.3.0 // indirect + github.com/spf13/jwalterweatherman v1.0.0 // indirect + github.com/spf13/pflag v1.0.3 // indirect + github.com/stretchr/objx v0.5.0 // indirect + golang.org/x/sys v0.9.0 // indirect + golang.org/x/text v0.3.0 // indirect + gopkg.in/yaml.v2 v2.2.2 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..06dd7af --- /dev/null +++ b/go.sum @@ -0,0 +1,96 @@ +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/SermoDigital/jose v0.9.2-0.20161205224733-f6df55f235c2 h1:koK7z0nSsRiRiBWwa+E714Puh+DO+ZRdIyAXiXzL+lg= +github.com/SermoDigital/jose v0.9.2-0.20161205224733-f6df55f235c2/go.mod h1:ARgCUhI1MHQH+ONky/PAtmVHQrP5JlGY0F3poXOp/fA= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d h1:S2NE3iHSwP0XV47EEXL8mWmRdEfGscSJ+7EgePNgt0s= +github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +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/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +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/erickskrauch/EventBus v0.0.0-20200330115301-33b3bc6a7ddc h1:kz3f5uMA1LxfRvJjZmMYG7Zu2rddTfJy6QZofz2YoGQ= +github.com/erickskrauch/EventBus v0.0.0-20200330115301-33b3bc6a7ddc/go.mod h1:RHSo3YFV/SbOGyFR36RKWaXPy3g9nKAmn6ebNLpbco4= +github.com/etherlabsio/healthcheck v0.0.0-20191224061800-dd3d2fd8c3f6 h1:az9jaEKre+mwUWiS9Pl8h1FuOvdiFM7UqplmCmJtHUQ= +github.com/etherlabsio/healthcheck v0.0.0-20191224061800-dd3d2fd8c3f6/go.mod h1:ZMSmptAGNIg5UAxsJzmw5DMW6uQvxr/hvCklNwtFz1k= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/getsentry/raven-go v0.2.1-0.20190419175539-919484f041ea h1:t6e33/eet/VyiHHHKs0cBytUISUWQ/hmQwOlqtFoGEo= +github.com/getsentry/raven-go v0.2.1-0.20190419175539-919484f041ea/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= +github.com/goava/di v1.1.1-0.20200420103225-1eb6eb721bf0 h1:H3F0kM3sIh3fVZlaSE3VF5J9bsMg/+CdFuh3P/QZLio= +github.com/goava/di v1.1.1-0.20200420103225-1eb6eb721bf0/go.mod h1:ToepvYlpTdC7DrFggmv/TyKIuezBLvAXlRxJkOvtemo= +github.com/gorilla/mux v1.7.1 h1:Dw4jY2nghMMRsh1ol8dv1axHkDwMQK2DHerMNJsIpJU= +github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw= +github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/levenlabs/golib v0.0.0-20180911183212-0f8974794783 h1:ErBsqZpyadTBr2zGsgMau0JdyghyLdwRRHAKJukexrQ= +github.com/levenlabs/golib v0.0.0-20180911183212-0f8974794783/go.mod h1:zw8z7nRRkGDZHexz1aMbZGtwxli5so0CBVZeIa3G+RE= +github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mediocregopher/radix.v2 v0.0.0-20181115013041-b67df6e626f9 h1:ViNuGS149jgnttqhc6XQNPwdupEMBXqCx9wtlW7P3sA= +github.com/mediocregopher/radix.v2 v0.0.0-20181115013041-b67df6e626f9/go.mod h1:fLRUbhbSd5Px2yKUaGYYPltlyxi1guJz1vCmo1RQL50= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mono83/slf v0.0.0-20170919161409-79153e9636db h1:tlz4fTklh5mttoq5M+0yEc5Lap8W/02A2HCXCJn5iz0= +github.com/mono83/slf v0.0.0-20170919161409-79153e9636db/go.mod h1:MfF+zNMZz+5IGY9h8jpFaGLyGoJ2ZPri2FmUVftBoUU= +github.com/mono83/udpwriter v1.0.2 h1:JiQ/N646oZoJA1G0FOMvn2teMt6SdL1KwNH2mszOlQs= +github.com/mono83/udpwriter v1.0.2/go.mod h1:mTDiyLtA0tXoxckkV9T4NUkJTgSQIuO8pAUKx/dSRkQ= +github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32 h1:W6apQkHrMkS0Muv8G/TipAy/FJl/rCYT0+EuS8+Z0z4= +github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= +github.com/oschwald/geoip2-golang v1.9.0 h1:uvD3O6fXAXs+usU+UGExshpdP13GAqp4GBrzN7IgKZc= +github.com/oschwald/geoip2-golang v1.9.0/go.mod h1:BHK6TvDyATVQhKNbQBdrj9eAvuwOMi2zSFXizL3K81Y= +github.com/oschwald/maxminddb-golang v1.11.0 h1:aSXMqYR/EPNjGE8epgqwDay+P30hCBZIveY0WZbAWh0= +github.com/oschwald/maxminddb-golang v1.11.0/go.mod h1:YmVI+H0zh3ySFR3w+oz8PCfglAFj3PuCmui13+P9zDg= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +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/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2 h1:VUFqw5KcqRf7i70GOzW7N+Q7+gxVBkSSqiXB12+JQ4M= +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.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/thedevsaddam/govalidator v1.9.6 h1:hWLpGOHkDjzM+uQh4xankDUm8dgXaRft/B1/sDAShKU= +github.com/thedevsaddam/govalidator v1.9.6/go.mod h1:Ilx8u7cg5g3LXbSS943cx5kczyNuUn7LH/cK5MYuE90= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/h2non/gock.v1 v1.0.15 h1:SzLqcIlb/fDfg7UvukMpNcWsu7sI5tWwL+KCATZqks0= +gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/http/api.go b/http/api.go index dec6cc6..a01bcdc 100644 --- a/http/api.go +++ b/http/api.go @@ -13,7 +13,7 @@ import ( "github.com/elyby/chrly/model" ) -//noinspection GoSnakeCaseUsage +// noinspection GoSnakeCaseUsage const UUID_ANY = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" var regexUuidAny = regexp.MustCompile(UUID_ANY) diff --git a/http/jwt_test.go b/http/jwt_test.go index 92c9846..7e710b6 100644 --- a/http/jwt_test.go +++ b/http/jwt_test.go @@ -32,7 +32,7 @@ func TestJwtAuth_Authenticate(t *testing.T) { emitter.On("Emit", "authentication:success") req := httptest.NewRequest("POST", "http://localhost", nil) - req.Header.Add("Authorization", "Bearer " + jwt) + req.Header.Add("Authorization", "Bearer "+jwt) jwt := &JwtAuth{Key: []byte("secret"), Emitter: emitter} err := jwt.Authenticate(req) @@ -99,7 +99,7 @@ func TestJwtAuth_Authenticate(t *testing.T) { })) req := httptest.NewRequest("POST", "http://localhost", nil) - req.Header.Add("Authorization", "Bearer " + jwt) + req.Header.Add("Authorization", "Bearer "+jwt) jwt := &JwtAuth{Emitter: emitter} err := jwt.Authenticate(req) @@ -116,7 +116,7 @@ func TestJwtAuth_Authenticate(t *testing.T) { })) req := httptest.NewRequest("POST", "http://localhost", nil) - req.Header.Add("Authorization", "Bearer " + jwt) + req.Header.Add("Authorization", "Bearer "+jwt) jwt := &JwtAuth{Key: []byte("this is another secret"), Emitter: emitter} err := jwt.Authenticate(req) diff --git a/http/skinsystem.go b/http/skinsystem.go index c586a49..041c209 100644 --- a/http/skinsystem.go +++ b/http/skinsystem.go @@ -264,7 +264,8 @@ func (ctx *Skinsystem) signatureVerificationKeyHandler(response http.ResponseWri } // TODO: in v5 should be extracted into some ProfileProvider interface, -// which will encapsulate all logics, declared in this method +// +// which will encapsulate all logics, declared in this method func (ctx *Skinsystem) getProfile(request *http.Request, proxy bool) (*profile, error) { username := parseUsername(mux.Vars(request)["username"]) diff --git a/mojangtextures/batch_uuids_provider_test.go b/mojangtextures/batch_uuids_provider_test.go index 4f13fd8..c0bbd55 100644 --- a/mojangtextures/batch_uuids_provider_test.go +++ b/mojangtextures/batch_uuids_provider_test.go @@ -412,7 +412,8 @@ func TestFullBusStrategy(t *testing.T) { // Don't assert iteration.Queue length since it might be unstable // Don't call iteration.Done() case <-time.After(d): - t.Fatalf("iteration should be provided as soon as the bus is full") + t.Errorf("iteration should be provided as soon as the bus is full") + return } } diff --git a/mojangtextures/remote_api_uuids_provider.go b/mojangtextures/remote_api_uuids_provider.go index b468dd0..235bab8 100644 --- a/mojangtextures/remote_api_uuids_provider.go +++ b/mojangtextures/remote_api_uuids_provider.go @@ -19,7 +19,7 @@ var HttpClient = &http.Client{ type RemoteApiUuidsProvider struct { Emitter - Url URL + Url URL } func (ctx *RemoteApiUuidsProvider) GetUuid(username string) (*mojang.ProfileInfo, error) {