Repository: raviqqe/muffet
Pull request #47 (2019-05-28 16:34:06)

Configure Renovate
Welcome to [Renovate](https://renovatebot.com)! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

:vertical_traffic_light: To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.



---
### Detected Package Files

 * `.circleci/config.yml` (circleci)
 * `Dockerfile` (dockerfile)

### Configuration Summary

Based on the default config's presets, Renovate will:

  - Start dependency updates only once this Configure Renovate PR is merged
  - Separate major versions of dependencies into individual branches/PRs
  - Do not separate patch and minor upgrades into separate PRs for the same dependency
  - Upgrade to unstable versions only if the existing version is unstable
  - Raise PRs immediately (after branch is created)
  - Use <code>renovate/</code> as prefix for all branch names
  - If semantic commits detected, use semantic commit type <code>fix</code> for dependencies and <code>chore</code> for all others
  - Keep existing branches updated even when not scheduled
  - Disable automerging feature - wait for humans to merge all PRs
  - Ignore `node_modules`, `bower_components`, `vendor` and various test/tests directories
  - Update existing lock files only when <code>package.json</code> is modified
  - Autodetect whether to pin dependencies or maintain ranges
  - Rate limit PR creation to a maximum of two per hour
  - Limit to maximum 20 open PRs at any time
  - Group known monorepo packages together
  - Use curated list of recommended non-monorepo package groupings

:abcd: Would you like to change the way Renovate is upgrading your dependencies? Simply edit the `renovate.json` in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.

---

### What to Expect

It looks like your repository dependencies are already up-to-date and no Pull Requests will be necessary right away.

---

:question: Got questions? Check out Renovate's [Docs](https://renovatebot.com/docs/), particularly the Getting Started section.
If you need any further assistance then you can also [request help here](https://togithub.com/renovatebot/config-help/issues).


---

This PR has been generated by [Renovate Bot](https://togithub.com/marketplace/renovate). View repository job log [here](https://renovatebot.com/dashboard#raviqqe/muffet).


codecov-io: # [Codecov](https://codecov.io/gh/raviqqe/muffet/pull/47?src=pr&el=h1) Report
> Merging [#47](https://codecov.io/gh/raviqqe/muffet/pull/47?src=pr&el=desc) into [master](https://codecov.io/gh/raviqqe/muffet/commit/a9058ce505d0d7cc01c316c66bf1cc7fd3a2b01d?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/raviqqe/muffet/pull/47/graphs/tree.svg?width=650&token=qXJG42bGNw&height=150&src=pr)](https://codecov.io/gh/raviqqe/muffet/pull/47?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##           master      #47   +/-   ##
=======================================
  Coverage   97.49%   97.49%           
=======================================
  Files          14       14           
  Lines         399      399           
=======================================
  Hits          389      389           
  Misses          8        8           
  Partials        2        2
```



------

[Continue to review full report at Codecov](https://codecov.io/gh/raviqqe/muffet/pull/47?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/raviqqe/muffet/pull/47?src=pr&el=footer). Last update [a9058ce...b0d469e](https://codecov.io/gh/raviqqe/muffet/pull/47?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Patch:
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 5e24d54..d21a1f7 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -11,6 +11,8 @@ jobs:
   build:
     docker:
       - image: golang
+    environment:
+      GO111MODULE: 'on'
     working_directory: /go/src/github.com/raviqqe/muffet
     steps:
       - checkout
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..0f2760b
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,22 @@
+module github.com/raviqqe/muffet
+
+go 1.12
+
+require (
+	github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
+	github.com/fatih/color v1.7.0
+	github.com/klauspost/compress v1.6.2 // indirect
+	github.com/klauspost/cpuid v1.2.1 // indirect
+	github.com/mattn/go-colorable v0.1.2 // indirect
+	github.com/stretchr/objx v0.2.0 // indirect
+	github.com/stretchr/testify v1.3.0
+	github.com/temoto/robotstxt v0.0.0-20180810133444-97ee4a9ee6ea
+	github.com/valyala/fasthttp v1.3.0
+	github.com/yhat/scrape v0.0.0-20161128144610-24b7890b0945
+	github.com/yterajima/go-sitemap v0.2.2
+	golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 // indirect
+	golang.org/x/net v0.0.0-20190606173856-1492cefac77f
+	golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444 // indirect
+	golang.org/x/text v0.3.2 // indirect
+	golang.org/x/tools v0.0.0-20190607135518-5aed7825b13e // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..115c50f
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,57 @@
+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/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/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ=
+github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
+github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
+github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/klauspost/compress v1.4.0 h1:8nsMz3tWa9SWWPL60G1V6CUsf4lLjWLTNEtibhe8gh8=
+github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
+github.com/klauspost/compress v1.6.2 h1:D9kM6nOc1x+yA/DW/k81uG1xdmwqCMQ/A266P1edQEw=
+github.com/klauspost/compress v1.6.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
+github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e h1:+lIPJOWl+jSiJOc70QXJ07+2eg2Jy2EC7Mi11BWujeM=
+github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
+github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w=
+github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
+github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
+github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
+github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE=
+github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
+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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
+github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/temoto/robotstxt v0.0.0-20180810133444-97ee4a9ee6ea h1:hH8P1IiDpzRU6ZDbDh/RDnVuezi2oOXJpApa06M0zyI=
+github.com/temoto/robotstxt v0.0.0-20180810133444-97ee4a9ee6ea/go.mod h1:aOux3gHPCftJ3KHq6Pz/AlDjYJ7Y+yKfm1gU/3B0u04=
+github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
+github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
+github.com/valyala/fasthttp v1.3.0 h1:++0WUtakkqBuHHY5JRFFl6O44I03XLBqxNnrBX0yH7Y=
+github.com/valyala/fasthttp v1.3.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s=
+github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
+github.com/yhat/scrape v0.0.0-20161128144610-24b7890b0945 h1:6Ju8pZBYFTN9FaV/JvNBiIHcsgEmP4z4laciqjfjY8E=
+github.com/yhat/scrape v0.0.0-20161128144610-24b7890b0945/go.mod h1:4vRFPPNYllgCacoj+0FoKOjTW68rUhEfqPLiEJaK2w8=
+github.com/yterajima/go-sitemap v0.2.2 h1:dAHyYPKS2nzdYhpDMuYEJ6sUZO5PX6xViSROFAi4eBU=
+github.com/yterajima/go-sitemap v0.2.2/go.mod h1:PVTH3uB0Tk0FYtK2JEmqRU57uymq84f1dBhWuL1NQVA=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/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 h1:+rhAzEzT3f4JtomfC371qB+0Ola2caSKcY69NUBZrRQ=
+golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/net v0.0.0-20190606173856-1492cefac77f h1:IWHgpgFqnL5AhBUBZSgBdjl2vkQUEzcY+JNKWfcgAU0=
+golang.org/x/net v0.0.0-20190606173856-1492cefac77f/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8=
+golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/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-20190606203320-7fc4e5ec1444 h1:/d2cWp6PSamH4jDPFLyO150psQdqvtoNX8Zjg3AQ31g=
+golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/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-20190607135518-5aed7825b13e/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
diff --git a/rakefile.rb b/rakefile.rb
index d0ac647..45291a6 100644
--- a/rakefile.rb
+++ b/rakefile.rb
@@ -1,11 +1,12 @@
+# frozen_string_literal: true
+
 task :deps do
-  sh 'go get -u github.com/alecthomas/gometalinter'
-  sh 'gometalinter --install'
+  sh 'GO111MODULE=off go get -u github.com/golangci/golangci-lint/cmd/golangci-lint'
   sh 'go get -d -t ./...'
 end
 
 task :lint do
-  sh 'gometalinter ./...'
+  sh 'golangci-lint run'
 end
 
 task :build do
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 0000000..f45d8f1
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,5 @@
+{
+  "extends": [
+    "config:base"
+  ]
+}


Test patch:
diff --git a/fetcher_test.go b/fetcher_test.go
index 27ebfa9..3f12b4b 100644
--- a/fetcher_test.go
+++ b/fetcher_test.go
@@ -56,7 +56,8 @@ func TestFetcherFetchCacheConcurrency(t *testing.T) {
 	for i := 0; i < 1000; i++ {
 		g.Add(1)
 		go func() {
-			f.Fetch(countingURL)
+			_, err := f.Fetch(countingURL)
+			assert.Nil(t, err)
 			g.Done()
 		}()
 	}
diff --git a/setup_test.go b/setup_test.go
index a6f3ce3..3d84478 100644
--- a/setup_test.go
+++ b/setup_test.go
@@ -45,6 +45,7 @@ const (
 
 type handler struct{}
 
+// nolint:errcheck
 func (handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	w.Header().Add("Content-Type", "text/html")
 
@@ -172,6 +173,7 @@ func (noMetadataHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 
 type invalidRobotsTxtHandler struct{}
 
+// nolint:errcheck
 func (invalidRobotsTxtHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	w.Header().Add("Content-Type", "text/html")
 
@@ -209,6 +211,7 @@ func (h *countingHandler) ServeHTTP(w http.ResponseWriter, _ *http.Request) {
 	w.WriteHeader(200)
 }
 
+// nolint:errcheck
 func TestMain(m *testing.M) {
 	go http.ListenAndServe(":8080", handler{})
 	go http.ListenAndServe(":8081", noMetadataHandler{})
@@ -230,6 +233,7 @@ func TestMain(m *testing.M) {
 	os.Exit(m.Run())
 }
 
+// nolint:errcheck
 func prepareTLSServer(a string) (func(), func(), error) {
 	d, err := ioutil.TempDir("", "")