Remove the bug command
This commit is contained in:
parent
ebded2cbc0
commit
3419f9aeb9
8 changed files with 1 additions and 231 deletions
1
.github/ISSUE_TEMPLATE.md
vendored
1
.github/ISSUE_TEMPLATE.md
vendored
|
@ -23,7 +23,6 @@ If you intend to ask a support question: DO NOT FILE AN ISSUE.
|
||||||
HOW TO WRITE A GOOD ISSUE?
|
HOW TO WRITE A GOOD ISSUE?
|
||||||
|
|
||||||
- Respect the issue template as much as possible.
|
- Respect the issue template as much as possible.
|
||||||
- If possible, use the command `traefik bug`. See https://www.youtube.com/watch?v=Lyz62L8m93I.
|
|
||||||
- The title should be short and descriptive.
|
- The title should be short and descriptive.
|
||||||
- Explain the conditions which led you to report this issue: the context.
|
- Explain the conditions which led you to report this issue: the context.
|
||||||
- The context should lead to something, an idea or a problem that you’re facing.
|
- The context should lead to something, an idea or a problem that you’re facing.
|
||||||
|
|
1
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
1
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
|
@ -27,7 +27,6 @@ Bug
|
||||||
HOW TO WRITE A GOOD BUG REPORT?
|
HOW TO WRITE A GOOD BUG REPORT?
|
||||||
|
|
||||||
- Respect the issue template as much as possible.
|
- Respect the issue template as much as possible.
|
||||||
- If possible, use the command `traefik bug`. See https://www.youtube.com/watch?v=Lyz62L8m93I.
|
|
||||||
- The title should be short and descriptive.
|
- The title should be short and descriptive.
|
||||||
- Explain the conditions which led you to report this issue: the context.
|
- Explain the conditions which led you to report this issue: the context.
|
||||||
- The context should lead to something, an idea or a problem that you’re facing.
|
- The context should lead to something, an idea or a problem that you’re facing.
|
||||||
|
|
1
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
1
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
|
@ -27,7 +27,6 @@ Feature
|
||||||
HOW TO WRITE A GOOD ISSUE?
|
HOW TO WRITE A GOOD ISSUE?
|
||||||
|
|
||||||
- Respect the issue template as much as possible.
|
- Respect the issue template as much as possible.
|
||||||
- If possible, use the command `traefik bug`. See https://www.youtube.com/watch?v=Lyz62L8m93I.
|
|
||||||
- The title should be short and descriptive.
|
- The title should be short and descriptive.
|
||||||
- Explain the conditions which led you to report this issue: the context.
|
- Explain the conditions which led you to report this issue: the context.
|
||||||
- The context should lead to something, an idea or a problem that you’re facing.
|
- The context should lead to something, an idea or a problem that you’re facing.
|
||||||
|
|
171
cmd/bug/bug.go
171
cmd/bug/bug.go
|
@ -1,171 +0,0 @@
|
||||||
package bug
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"fmt"
|
|
||||||
"net/url"
|
|
||||||
"os/exec"
|
|
||||||
"runtime"
|
|
||||||
"text/template"
|
|
||||||
|
|
||||||
"github.com/containous/flaeg"
|
|
||||||
"github.com/containous/traefik/anonymize"
|
|
||||||
"github.com/containous/traefik/cmd"
|
|
||||||
"github.com/containous/traefik/cmd/version"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
bugTracker = "https://github.com/containous/traefik/issues/new"
|
|
||||||
bugTemplate = `<!--
|
|
||||||
DO NOT FILE ISSUES FOR GENERAL SUPPORT QUESTIONS.
|
|
||||||
|
|
||||||
The issue tracker is for reporting bugs and feature requests only.
|
|
||||||
For end-user related support questions, refer to one of the following:
|
|
||||||
|
|
||||||
- Stack Overflow (using the "traefik" tag): https://stackoverflow.com/questions/tagged/traefik
|
|
||||||
- the Traefik community Slack channel: https://slack.traefik.io
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
### Do you want to request a *feature* or report a *bug*?
|
|
||||||
|
|
||||||
(If you intend to ask a support question: **DO NOT FILE AN ISSUE**.
|
|
||||||
Use [Stack Overflow](https://stackoverflow.com/questions/tagged/traefik)
|
|
||||||
or [Slack](https://slack.traefik.io) instead.)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### What did you do?
|
|
||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
HOW TO WRITE A GOOD ISSUE?
|
|
||||||
|
|
||||||
- Respect the issue template as more as possible.
|
|
||||||
- If it's possible use the command ` + "`" + "traefik bug" + "`" + `. See https://www.youtube.com/watch?v=Lyz62L8m93I.
|
|
||||||
- The title must be short and descriptive.
|
|
||||||
- Explain the conditions which led you to write this issue: the context.
|
|
||||||
- The context should lead to something, an idea or a problem that you’re facing.
|
|
||||||
- Remain clear and concise.
|
|
||||||
- Format your messages to help the reader focus on what matters and understand the structure of your message, use Markdown syntax https://help.github.com/articles/github-flavored-markdown
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
### What did you expect to see?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### What did you see instead?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Output of ` + "`" + `traefik version` + "`" + `: (_What version of Traefik are you using?_)
|
|
||||||
|
|
||||||
` + "```" + `
|
|
||||||
{{.Version}}
|
|
||||||
` + "```" + `
|
|
||||||
|
|
||||||
### What is your environment & configuration (arguments, toml, provider, platform, ...)?
|
|
||||||
|
|
||||||
` + "```" + `json
|
|
||||||
{{.Configuration}}
|
|
||||||
` + "```" + `
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Add more configuration information here.
|
|
||||||
-->
|
|
||||||
|
|
||||||
### If applicable, please paste the log output at DEBUG level (` + "`" + `--logLevel=DEBUG` + "`" + ` switch)
|
|
||||||
|
|
||||||
` + "```" + `
|
|
||||||
(paste your output here)
|
|
||||||
` + "```" + `
|
|
||||||
|
|
||||||
`
|
|
||||||
)
|
|
||||||
|
|
||||||
// NewCmd builds a new Bug command
|
|
||||||
func NewCmd(traefikConfiguration *cmd.TraefikConfiguration, traefikPointersConfiguration *cmd.TraefikConfiguration) *flaeg.Command {
|
|
||||||
|
|
||||||
// version Command init
|
|
||||||
return &flaeg.Command{
|
|
||||||
Name: "bug",
|
|
||||||
Description: `Report an issue on Traefik bugtracker`,
|
|
||||||
Config: traefikConfiguration,
|
|
||||||
DefaultPointersConfig: traefikPointersConfiguration,
|
|
||||||
Run: runCmd(traefikConfiguration),
|
|
||||||
Metadata: map[string]string{
|
|
||||||
"parseAllSources": "true",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func runCmd(traefikConfiguration *cmd.TraefikConfiguration) func() error {
|
|
||||||
return func() error {
|
|
||||||
|
|
||||||
body, err := createReport(traefikConfiguration)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
sendReport(body)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func createReport(traefikConfiguration *cmd.TraefikConfiguration) (string, error) {
|
|
||||||
var versionPrint bytes.Buffer
|
|
||||||
if err := version.GetPrint(&versionPrint); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
tmpl, err := template.New("bug").Parse(bugTemplate)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
config, err := anonymize.Do(traefikConfiguration, true)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
v := struct {
|
|
||||||
Version string
|
|
||||||
Configuration string
|
|
||||||
}{
|
|
||||||
Version: versionPrint.String(),
|
|
||||||
Configuration: config,
|
|
||||||
}
|
|
||||||
|
|
||||||
var bug bytes.Buffer
|
|
||||||
if err := tmpl.Execute(&bug, v); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
return bug.String(), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func sendReport(body string) {
|
|
||||||
URL := bugTracker + "?body=" + url.QueryEscape(body)
|
|
||||||
if err := openBrowser(URL); err != nil {
|
|
||||||
fmt.Printf("Please file a new issue at %s using this template:\n\n", bugTracker)
|
|
||||||
fmt.Print(body)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func openBrowser(u string) error {
|
|
||||||
var err error
|
|
||||||
switch runtime.GOOS {
|
|
||||||
case "linux":
|
|
||||||
err = exec.Command("xdg-open", u).Start()
|
|
||||||
case "windows":
|
|
||||||
err = exec.Command("rundll32", "url.dll,FileProtocolHandler", u).Start()
|
|
||||||
case "darwin":
|
|
||||||
err = exec.Command("open", u).Start()
|
|
||||||
default:
|
|
||||||
err = fmt.Errorf("unsupported platform")
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
package bug
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/containous/traefik/anonymize"
|
|
||||||
"github.com/containous/traefik/cmd"
|
|
||||||
"github.com/containous/traefik/config/static"
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Test_createReport(t *testing.T) {
|
|
||||||
traefikConfiguration := &cmd.TraefikConfiguration{
|
|
||||||
ConfigFile: "FOO",
|
|
||||||
Configuration: static.Configuration{
|
|
||||||
EntryPoints: static.EntryPoints{
|
|
||||||
"goo": &static.EntryPoint{
|
|
||||||
Address: "hoo.bar",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
report, err := createReport(traefikConfiguration)
|
|
||||||
assert.NoError(t, err, report)
|
|
||||||
|
|
||||||
// exported anonymous configuration
|
|
||||||
assert.NotContains(t, "hoo.bar", report)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Test_anonymize_traefikConfiguration(t *testing.T) {
|
|
||||||
traefikConfiguration := &cmd.TraefikConfiguration{
|
|
||||||
ConfigFile: "FOO",
|
|
||||||
Configuration: static.Configuration{
|
|
||||||
EntryPoints: static.EntryPoints{
|
|
||||||
"goo": &static.EntryPoint{
|
|
||||||
Address: "hoo.bar",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
_, err := anonymize.Do(traefikConfiguration, true)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
assert.Equal(t, "hoo.bar", traefikConfiguration.Configuration.EntryPoints["goo"].Address)
|
|
||||||
}
|
|
|
@ -17,7 +17,6 @@ import (
|
||||||
"github.com/containous/staert"
|
"github.com/containous/staert"
|
||||||
"github.com/containous/traefik/autogen/genstatic"
|
"github.com/containous/traefik/autogen/genstatic"
|
||||||
"github.com/containous/traefik/cmd"
|
"github.com/containous/traefik/cmd"
|
||||||
"github.com/containous/traefik/cmd/bug"
|
|
||||||
"github.com/containous/traefik/cmd/healthcheck"
|
"github.com/containous/traefik/cmd/healthcheck"
|
||||||
"github.com/containous/traefik/cmd/storeconfig"
|
"github.com/containous/traefik/cmd/storeconfig"
|
||||||
cmdVersion "github.com/containous/traefik/cmd/version"
|
cmdVersion "github.com/containous/traefik/cmd/version"
|
||||||
|
@ -134,7 +133,6 @@ Complete documentation is available at https://traefik.io`,
|
||||||
|
|
||||||
// add commands
|
// add commands
|
||||||
f.AddCommand(cmdVersion.NewCmd())
|
f.AddCommand(cmdVersion.NewCmd())
|
||||||
f.AddCommand(bug.NewCmd(traefikConfiguration, traefikPointersConfiguration))
|
|
||||||
f.AddCommand(storeConfigCmd)
|
f.AddCommand(storeConfigCmd)
|
||||||
f.AddCommand(healthcheck.NewCmd(traefikConfiguration, traefikPointersConfiguration))
|
f.AddCommand(healthcheck.NewCmd(traefikConfiguration, traefikPointersConfiguration))
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ The title must be short and descriptive. (~60 characters)
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
Follow the [issue template](https://github.com/containous/traefik/blob/master/.github/ISSUE_TEMPLATE.md) as much as possible, and make use of the `traefik bug` command if you can (see the [video on Youtube](https://www.youtube.com/watch?v=Lyz62L8m93I)).
|
Follow the [issue template](https://github.com/containous/traefik/blob/master/.github/ISSUE_TEMPLATE.md) as much as possible.
|
||||||
|
|
||||||
Explain us in which conditions you encountered the issue, what is your context.
|
Explain us in which conditions you encountered the issue, what is your context.
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@ Available commands:
|
||||||
|
|
||||||
- `version` : Print version
|
- `version` : Print version
|
||||||
- `storeconfig` : Store the static Traefik configuration into a Key-value stores. Please refer to the `Store Traefik configuration`(TODO: add doc and link) section to get documentation on it.
|
- `storeconfig` : Store the static Traefik configuration into a Key-value stores. Please refer to the `Store Traefik configuration`(TODO: add doc and link) section to get documentation on it.
|
||||||
- `bug`: The easiest way to submit a pre-filled issue.
|
|
||||||
- `healthcheck`: Calls Traefik `/ping` to check health.
|
- `healthcheck`: Calls Traefik `/ping` to check health.
|
||||||
|
|
||||||
Each command can have additional flags.
|
Each command can have additional flags.
|
||||||
|
@ -35,14 +34,6 @@ docker run traefik[:version] --help
|
||||||
# ex: docker run traefik:1.5 --help
|
# ex: docker run traefik:1.5 --help
|
||||||
```
|
```
|
||||||
|
|
||||||
## Command: bug
|
|
||||||
|
|
||||||
The easiest way to submit a pre-filled issue on [Traefik GitHub](https://github.com/containous/traefik)! Watch [this demo](https://www.youtube.com/watch?v=Lyz62L8m93I) for more information.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
traefik bug
|
|
||||||
```
|
|
||||||
|
|
||||||
### Command: healthcheck
|
### Command: healthcheck
|
||||||
|
|
||||||
Checks the health of Traefik.
|
Checks the health of Traefik.
|
||||||
|
|
Loading…
Reference in a new issue