From 443c83bbfc75a6dd2b7673f7c97fbdb01dac7aac Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Wed, 27 Jan 2021 18:20:59 +0100 Subject: [PATCH 01/13] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5112c2a..352d48b 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ At the moment, the following functionality is exposed via REST: - Create/List/Remove groups - List/Serve/Delete attachments - Update profile +and [many more](https://bbernhard.github.io/signal-cli-rest-api/) ## Examples From 445cff9516ead9225ccf0b5bb14c19ad47b9373e Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Wed, 27 Jan 2021 18:21:15 +0100 Subject: [PATCH 02/13] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 352d48b..5c5e42e 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ At the moment, the following functionality is exposed via REST: - Create/List/Remove groups - List/Serve/Delete attachments - Update profile + and [many more](https://bbernhard.github.io/signal-cli-rest-api/) ## Examples From d278ecddb16dbc9b129a412f2ea6751e0b111df9 Mon Sep 17 00:00:00 2001 From: Andrzej Date: Sat, 30 Jan 2021 00:39:27 +0100 Subject: [PATCH 03/13] Add link to API docs --- doc/HOMEASSISTANT.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/HOMEASSISTANT.md b/doc/HOMEASSISTANT.md index d889e65..c2bdb53 100644 --- a/doc/HOMEASSISTANT.md +++ b/doc/HOMEASSISTANT.md @@ -84,6 +84,10 @@ Next, use the following endpoint to obtain the group id: The group id then needs to be added to the Signal Messenger's `recipients` list in the `configuration.yaml`. (see [here](https://www.home-assistant.io/integrations/signal_messenger/) for details) +## API details + +Details regarding API (in example for receiving messages through REST) can be found [here](https://bbernhard.github.io/signal-cli-rest-api/) + ## Troubleshooting In case you've problems with the `signal-cli-rest-api` container, have a look [here](TROUBLESHOOTING.md) From de777799b6481e1b01bceed393fe40abaac38347 Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Sat, 30 Jan 2021 21:40:54 +0100 Subject: [PATCH 04/13] fixed documentation error --- src/api/api.go | 2 +- src/docs/docs.go | 2 +- src/docs/swagger.json | 2 +- src/docs/swagger.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/api/api.go b/src/api/api.go index 4c9bc43..d09b4cd 100644 --- a/src/api/api.go +++ b/src/api/api.go @@ -1023,7 +1023,7 @@ func (a *Api) ListIdentities(c *gin.Context) { // @Param data body TrustIdentityRequest true "Input Data" // @Param number path string true "Registered Phone Number" // @Param numberToTrust path string true "Number To Trust" -// @Router /v1/identities/{number}/{numberToTrust} [put] +// @Router /v1/identities/{number}/trust/{numberToTrust} [put] func (a *Api) TrustIdentity(c *gin.Context) { number := c.Param("number") diff --git a/src/docs/docs.go b/src/docs/docs.go index 49e3bab..49dbea3 100644 --- a/src/docs/docs.go +++ b/src/docs/docs.go @@ -561,7 +561,7 @@ var doc = `{ } } }, - "/v1/identities/{number}/{numberToTrust}": { + "/v1/identities/{number}/trust/{numberToTrust}": { "put": { "description": "Trust an identity.", "produces": [ diff --git a/src/docs/swagger.json b/src/docs/swagger.json index 293bf3e..588c155 100644 --- a/src/docs/swagger.json +++ b/src/docs/swagger.json @@ -546,7 +546,7 @@ } } }, - "/v1/identities/{number}/{numberToTrust}": { + "/v1/identities/{number}/trust/{numberToTrust}": { "put": { "description": "Trust an identity.", "produces": [ diff --git a/src/docs/swagger.yaml b/src/docs/swagger.yaml index 56f6de4..8e64e57 100644 --- a/src/docs/swagger.yaml +++ b/src/docs/swagger.yaml @@ -478,7 +478,7 @@ paths: summary: List Identities tags: - Identities - /v1/identities/{number}/{numberToTrust}: + /v1/identities/{number}/trust/{numberToTrust}: put: description: Trust an identity. parameters: From 7e547fead94f350ae8f8bef4f90bdcf82d29994f Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Sat, 30 Jan 2021 21:49:38 +0100 Subject: [PATCH 05/13] Update TROUBLESHOOTING.md --- doc/TROUBLESHOOTING.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/TROUBLESHOOTING.md b/doc/TROUBLESHOOTING.md index f4aef0c..3737822 100644 --- a/doc/TROUBLESHOOTING.md +++ b/doc/TROUBLESHOOTING.md @@ -1,3 +1,8 @@ # The signal-cli-rest-api docker container won't start (signal_messenger_signal-cli-rest-api_1 exited with code 0) If your docker container stops with `signal_messenger_signal-cli-rest-api_1 exited with code 0`, make sure that the host port isn't already occupied by another process (see [here](https://github.com/bbernhard/signal-cli-rest-api/issues/2)). + +# Sending a message suceeds, but no message is sent + +According to [this](https://github.com/AsamK/signal-cli/issues/202) signal-cli ticket here, the receive endpoint needs to be called regularily. So, if sending a message seems to work, but no message is sent, please try to call the [Receive API endpoint](https://bbernhard.github.io/signal-cli-rest-api/#/Messages/get_v1_receive__number_). + From 637131d4f7bbc09dc0171576cbc9f23d8702c1b2 Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Sat, 30 Jan 2021 21:54:47 +0100 Subject: [PATCH 06/13] Update TROUBLESHOOTING.md --- doc/TROUBLESHOOTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/TROUBLESHOOTING.md b/doc/TROUBLESHOOTING.md index 3737822..17c4403 100644 --- a/doc/TROUBLESHOOTING.md +++ b/doc/TROUBLESHOOTING.md @@ -6,3 +6,6 @@ If your docker container stops with `signal_messenger_signal-cli-rest-api_1 exit According to [this](https://github.com/AsamK/signal-cli/issues/202) signal-cli ticket here, the receive endpoint needs to be called regularily. So, if sending a message seems to work, but no message is sent, please try to call the [Receive API endpoint](https://bbernhard.github.io/signal-cli-rest-api/#/Messages/get_v1_receive__number_). +# Cannot send message to group - please first update your profile + +If you get this message, it means that you first need to [update your profile](https://bbernhard.github.io/signal-cli-rest-api/#/Profiles/put_v1_profiles__number_) to set a name (and optionally an avatar). From 0ff3cb764683fe84799e0109b8a1995111eac57a Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Sat, 30 Jan 2021 22:02:57 +0100 Subject: [PATCH 07/13] Update issue templates --- .github/ISSUE_TEMPLATE/bug-report.md | 10 ++++++++ .github/ISSUE_TEMPLATE/bug_report.md | 38 ++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug-report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 0000000..9ead354 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,10 @@ +--- +name: Bug Report +about: Something doesn't work as expected. +title: '' +labels: '' +assignees: '' + +--- + +Before creating an issue, please have a look at the [Troubleshooting](https://github.com/bbernhard/signal-cli-rest-api/blob/master/doc/TROUBLESHOOTING.md) page. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..dd84ea7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. From 3d4f1a7bcc99971f4edb632683e9288930e575e6 Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Sat, 30 Jan 2021 22:03:49 +0100 Subject: [PATCH 08/13] Delete bug_report.md --- .github/ISSUE_TEMPLATE/bug_report.md | 38 ---------------------------- 1 file changed, 38 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index dd84ea7..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. From 48728541f6009c2c8622f964674092e8ee13a102 Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Sat, 30 Jan 2021 22:05:21 +0100 Subject: [PATCH 09/13] Update issue templates --- .github/ISSUE_TEMPLATE/feature-request.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/feature-request.md diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000..6f99393 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,11 @@ +--- +name: Feature Request +about: You have a neat idea that should be implemented? +title: '' +labels: '' +assignees: '' + +--- + +### Feature Request + From 39dab6abbe2d9612f90eadc580c81b3692771ad6 Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Sat, 30 Jan 2021 22:06:48 +0100 Subject: [PATCH 10/13] Update bug-report.md --- .github/ISSUE_TEMPLATE/bug-report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index 9ead354..b26e99a 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -7,4 +7,4 @@ assignees: '' --- -Before creating an issue, please have a look at the [Troubleshooting](https://github.com/bbernhard/signal-cli-rest-api/blob/master/doc/TROUBLESHOOTING.md) page. +Before creating an issue, please have a look at the Troubleshooting page: https://github.com/bbernhard/signal-cli-rest-api/blob/master/doc/TROUBLESHOOTING.md From bd5f568ffc82117fb420ed527e3ab509c17e6c5f Mon Sep 17 00:00:00 2001 From: Bernhard B Date: Fri, 12 Feb 2021 17:11:08 +0100 Subject: [PATCH 11/13] Some endpoints return "null" although successful see #91 --- src/api/api.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/api/api.go b/src/api/api.go index d09b4cd..590522b 100644 --- a/src/api/api.go +++ b/src/api/api.go @@ -245,7 +245,7 @@ func send(c *gin.Context, attachmentTmpDir string, signalCliConfig string, numbe } cleanupTmpFiles(attachmentTmpPaths) - c.JSON(201, nil) + c.Writer.WriteHeader(201) } func parseWhitespaceDelimitedKeyValueStringList(in string, keys []string) []map[string]string { @@ -441,7 +441,7 @@ func (a *Api) RegisterNumber(c *gin.Context) { c.JSON(400, gin.H{"error": err.Error()}) return } - c.JSON(201, nil) + c.Writer.WriteHeader(201) } // @Summary Verify a registered phone number. @@ -494,7 +494,7 @@ func (a *Api) VerifyRegisteredNumber(c *gin.Context) { c.JSON(400, gin.H{"error": err.Error()}) return } - c.JSON(201, nil) + c.Writer.WriteHeader(201) } // @Summary Send a signal message. From 8a09bf553b8c3bb688aa492578f49918216b3cec Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Fri, 12 Feb 2021 14:16:04 -0500 Subject: [PATCH 12/13] Add info on captcha verification --- doc/EXAMPLES.md | 10 ++++++++++ doc/HOMEASSISTANT.md | 8 ++++++++ src/api/api.go | 3 ++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/doc/EXAMPLES.md b/doc/EXAMPLES.md index 4c8668b..56bca12 100644 --- a/doc/EXAMPLES.md +++ b/doc/EXAMPLES.md @@ -17,6 +17,16 @@ e.g: `curl -X POST -H "Content-Type: application/json" --data '{"use_voice": true}' 'http://127.0.0.1:8080/v1/register/+431212131491291'` +- Register a number (with captcha) + + When you try to register a number, if you receive a response like `{"error":"Captcha required for verification (null)\n"}` then Signal is requiring a captcha. To register the number you must do the following: + 1. Go to [https://signalcaptchas.org/registration/generate.html](https://signalcaptchas.org/registration/generate.html) + 2. Open the developer console + 3. Find the line that looks like this: `Prevented navigation to “signalcaptcha://{captcha value}” due to an unknown protocol.` Copy the captcha value + 4. Use it to make the registration call like this: + + `curl -X POST -H "Content-Type: application/json" -d '{"captcha":"{captcha value}"}' 'http://127.0.0.1:8080/v1/register/` + - Verify the number using the code received via SMS/voice `curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:8080/v1/register//verify/'` diff --git a/doc/HOMEASSISTANT.md b/doc/HOMEASSISTANT.md index c2bdb53..9d16e45 100644 --- a/doc/HOMEASSISTANT.md +++ b/doc/HOMEASSISTANT.md @@ -57,6 +57,14 @@ e.g: `curl -X POST -H "Content-Type: application/json" 'http://127.0.0.1:8080/v1/register/+431212131491291/verify/123-456'` +When you try to register a number, if you receive a response like `{"error":"Captcha required for verification (null)\n"}` then Signal is requiring a captcha. To register the number you must do the following: +1. Go to [https://signalcaptchas.org/registration/generate.html](https://signalcaptchas.org/registration/generate.html) +2. Open the developer console +3. Find the line that looks like this: `Prevented navigation to “signalcaptcha://{captcha value}” due to an unknown protocol.` Copy the captcha value +4. Use it to make the registration call like this: + +`curl -X POST -H "Content-Type: application/json" -d '{"captcha":"{captcha value}"}' 'http://127.0.0.1:8080/v1/register/` + ## Sending messages to Signal Messenger groups The `signal-cli-rest-api` docker container is also capable of sending messages to a Signal Messenger group. diff --git a/src/api/api.go b/src/api/api.go index 590522b..fbcc783 100644 --- a/src/api/api.go +++ b/src/api/api.go @@ -401,6 +401,7 @@ func (a *Api) About(c *gin.Context) { // @Success 201 // @Failure 400 {object} Error // @Param number path string true "Registered Phone Number" +// @Param data body RegisterNumberRequest false "Additional Settings" // @Router /v1/register/{number} [post] func (a *Api) RegisterNumber(c *gin.Context) { number := c.Param("number") @@ -452,7 +453,7 @@ func (a *Api) RegisterNumber(c *gin.Context) { // @Success 201 {string} string "OK" // @Failure 400 {object} Error // @Param number path string true "Registered Phone Number" -// @Param data body VerifyNumberSettings true "Additional Settings" +// @Param data body VerifyNumberSettings false "Additional Settings" // @Param token path string true "Verification Code" // @Router /v1/register/{number}/verify/{token} [post] func (a *Api) VerifyRegisteredNumber(c *gin.Context) { From 889f37d9511040f6c7bce621b81f50ff116e976f Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Sat, 13 Feb 2021 14:43:37 -0500 Subject: [PATCH 13/13] Regenerated swagger --- src/docs/docs.go | 26 ++++++++++++++++++++++---- src/docs/swagger.json | 26 ++++++++++++++++++++++---- src/docs/swagger.yaml | 18 ++++++++++++++---- src/go.mod | 2 ++ src/go.sum | 5 +++++ 5 files changed, 65 insertions(+), 12 deletions(-) diff --git a/src/docs/docs.go b/src/docs/docs.go index 49dbea3..811ea13 100644 --- a/src/docs/docs.go +++ b/src/docs/docs.go @@ -19,7 +19,6 @@ var doc = `{ "description": "{{.Description}}", "title": "{{.Title}}", "contact": {}, - "license": {}, "version": "{{.Version}}" }, "host": "{{.Host}}", @@ -743,10 +742,20 @@ var doc = `{ "name": "number", "in": "path", "required": true + }, + { + "description": "Additional Settings", + "name": "data", + "in": "body", + "schema": { + "$ref": "#/definitions/api.RegisterNumberRequest" + } } ], "responses": { - "201": {}, + "201": { + "description": "" + }, "400": { "description": "Bad Request", "schema": { @@ -781,7 +790,6 @@ var doc = `{ "description": "Additional Settings", "name": "data", "in": "body", - "required": true, "schema": { "$ref": "#/definitions/api.VerifyNumberSettings" } @@ -911,7 +919,6 @@ var doc = `{ "type": "object", "properties": { "logging": { - "type": "object", "$ref": "#/definitions/api.LoggingConfiguration" } } @@ -998,6 +1005,17 @@ var doc = `{ } } }, + "api.RegisterNumberRequest": { + "type": "object", + "properties": { + "captcha": { + "type": "string" + }, + "use_voice": { + "type": "boolean" + } + } + }, "api.SendMessageV1": { "type": "object", "properties": { diff --git a/src/docs/swagger.json b/src/docs/swagger.json index 588c155..321dc93 100644 --- a/src/docs/swagger.json +++ b/src/docs/swagger.json @@ -4,7 +4,6 @@ "description": "This is the Signal Cli REST API documentation.", "title": "Signal Cli REST API", "contact": {}, - "license": {}, "version": "1.0" }, "host": "127.0.0.1:8080", @@ -728,10 +727,20 @@ "name": "number", "in": "path", "required": true + }, + { + "description": "Additional Settings", + "name": "data", + "in": "body", + "schema": { + "$ref": "#/definitions/api.RegisterNumberRequest" + } } ], "responses": { - "201": {}, + "201": { + "description": "" + }, "400": { "description": "Bad Request", "schema": { @@ -766,7 +775,6 @@ "description": "Additional Settings", "name": "data", "in": "body", - "required": true, "schema": { "$ref": "#/definitions/api.VerifyNumberSettings" } @@ -896,7 +904,6 @@ "type": "object", "properties": { "logging": { - "type": "object", "$ref": "#/definitions/api.LoggingConfiguration" } } @@ -983,6 +990,17 @@ } } }, + "api.RegisterNumberRequest": { + "type": "object", + "properties": { + "captcha": { + "type": "string" + }, + "use_voice": { + "type": "boolean" + } + } + }, "api.SendMessageV1": { "type": "object", "properties": { diff --git a/src/docs/swagger.yaml b/src/docs/swagger.yaml index 8e64e57..29b5897 100644 --- a/src/docs/swagger.yaml +++ b/src/docs/swagger.yaml @@ -13,7 +13,6 @@ definitions: properties: logging: $ref: '#/definitions/api.LoggingConfiguration' - type: object type: object api.CreateGroup: properties: @@ -68,6 +67,13 @@ definitions: Level: type: string type: object + api.RegisterNumberRequest: + properties: + captcha: + type: string + use_voice: + type: boolean + type: object api.SendMessageV1: properties: base64_attachment: @@ -119,7 +125,6 @@ host: 127.0.0.1:8080 info: contact: {} description: This is the Signal Cli REST API documentation. - license: {} title: Signal Cli REST API version: "1.0" paths: @@ -596,10 +601,16 @@ paths: name: number required: true type: string + - description: Additional Settings + in: body + name: data + schema: + $ref: '#/definitions/api.RegisterNumberRequest' produces: - application/json responses: - "201": {} + "201": + description: "" "400": description: Bad Request schema: @@ -621,7 +632,6 @@ paths: - description: Additional Settings in: body name: data - required: true schema: $ref: '#/definitions/api.VerifyNumberSettings' - description: Verification Code diff --git a/src/go.mod b/src/go.mod index 6337774..458ab57 100644 --- a/src/go.mod +++ b/src/go.mod @@ -5,6 +5,8 @@ go 1.14 require ( github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect + github.com/cyphar/filepath-securejoin v0.2.2 + github.com/gabriel-vasile/mimetype v1.1.2 github.com/gin-gonic/gin v1.6.3 github.com/go-openapi/spec v0.19.8 // indirect github.com/go-openapi/swag v0.19.9 // indirect diff --git a/src/go.sum b/src/go.sum index d900900..1b66949 100644 --- a/src/go.sum +++ b/src/go.sum @@ -12,8 +12,12 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSY github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gabriel-vasile/mimetype v1.1.2 h1:gaPnPcNor5aZSVCJVSGipcpbgMWiAAj9z182ocSGbHU= +github.com/gabriel-vasile/mimetype v1.1.2/go.mod h1:6CDPel/o/3/s4+bp6kIbsWATq8pmgOisOPG40CJa6To= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w= @@ -87,6 +91,7 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=