From 70deeb63d9c8b8871a9e8765ae63ef580fe91283 Mon Sep 17 00:00:00 2001 From: Tarasovych Date: Fri, 17 Apr 2020 17:04:18 +0300 Subject: [PATCH 1/6] added packages --- go.mod | 5 +++-- go.sum | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 193320caa8e..ae19e58c6bf 100644 --- a/go.mod +++ b/go.mod @@ -22,8 +22,9 @@ require ( github.com/spf13/cobra v0.0.6 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 // indirect - golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4 - golang.org/x/net v0.0.0-20200219183655-46282727080f // indirect + golang.org/x/crypto v0.0.0-20200414173820-0848c9571904 + golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e // indirect + golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 // indirect golang.org/x/text v0.3.2 gopkg.in/yaml.v2 v2.2.8 // indirect gopkg.in/yaml.v3 v3.0.0-20200121175148-a6ecf24a6d71 diff --git a/go.sum b/go.sum index 807e68f62dd..be96a0ae683 100644 --- a/go.sum +++ b/go.sum @@ -190,6 +190,8 @@ golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5 h1:8dUaAV7K4uHsF56JQWkpre golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4 h1:4icQlpeqbz3WxfgP6Eq3szTj95KTrlH/CwzBzoxuFd0= golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200414173820-0848c9571904 h1:bXoxMPcSLOq08zI3/c5dEBT6lE4eh+jOh886GHrn6V8= +golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -201,6 +203,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20200219183655-46282727080f h1:dB42wwhNuwPvh8f+5zZWNcU+F2Xs/B9wXXwvUCOH7r8= golang.org/x/net v0.0.0-20200219183655-46282727080f/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -218,6 +222,9 @@ golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 h1:opSr2sbRXk5X5/givKrrKj9HXxFpW2sdCiP8MJSKLQY= +golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= From 797020a7870b51079ef74c1624cfc115c5160dd3 Mon Sep 17 00:00:00 2001 From: Tarasovych Date: Fri, 17 Apr 2020 17:04:38 +0300 Subject: [PATCH 2/6] check if output is terminal --- command/pr.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/command/pr.go b/command/pr.go index a5b1f0079af..02a447d4a9e 100644 --- a/command/pr.go +++ b/command/pr.go @@ -2,7 +2,9 @@ package command import ( "fmt" + "golang.org/x/crypto/ssh/terminal" "io" + "os" "regexp" "strconv" "strings" @@ -206,8 +208,10 @@ func prList(cmd *cobra.Command, args []string) error { }) title := listHeader(ghrepo.FullName(baseRepo), "pull request", len(listResult.PullRequests), listResult.TotalCount, hasFilters) - // TODO: avoid printing header if piped to a script - fmt.Fprintf(colorableErr(cmd), "\n%s\n\n", title) + + if terminal.IsTerminal(int(os.Stdout.Fd())) { + fmt.Fprintf(colorableErr(cmd), "\n%s\n\n", title) + } table := utils.NewTablePrinter(cmd.OutOrStdout()) for _, pr := range listResult.PullRequests { From 67584dec42439ebad9969e1697776f6c2893b5d6 Mon Sep 17 00:00:00 2001 From: Tarasovych Date: Fri, 17 Apr 2020 17:16:35 +0300 Subject: [PATCH 3/6] updated tests --- command/pr_test.go | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/command/pr_test.go b/command/pr_test.go index 00cabcbb95f..8b9f0b990e8 100644 --- a/command/pr_test.go +++ b/command/pr_test.go @@ -264,7 +264,7 @@ Requesting a code review from you } } -func TestPRList(t *testing.T) { +func TestPRList_stdout_is_not_a_tty(t *testing.T) { initBlankContext("OWNER/REPO", "master") http := initFakeHTTP() http.StubRepoResponse("OWNER", "REPO") @@ -278,17 +278,14 @@ func TestPRList(t *testing.T) { t.Fatal(err) } - eq(t, output.Stderr(), ` -Showing 3 of 3 pull requests in OWNER/REPO - -`) + eq(t, output.Stderr(), ``) eq(t, output.String(), `32 New feature feature 29 Fixed bad bug hubot:bug-fix 28 Improve documentation docs `) } -func TestPRList_filtering(t *testing.T) { +func TestPRList_filtering_stdout_is_not_a_tty(t *testing.T) { initBlankContext("OWNER/REPO", "master") http := initFakeHTTP() http.StubRepoResponse("OWNER", "REPO") @@ -302,10 +299,7 @@ func TestPRList_filtering(t *testing.T) { } eq(t, output.String(), "") - eq(t, output.Stderr(), ` -No pull requests match your search in OWNER/REPO - -`) + eq(t, output.Stderr(), ``) bodyBytes, _ := ioutil.ReadAll(http.Requests[1].Body) reqBody := struct { From 95a0f2c0fc889117373d00e5392f8b329b892bbf Mon Sep 17 00:00:00 2001 From: Tarasovych Date: Tue, 21 Apr 2020 17:28:31 +0300 Subject: [PATCH 4/6] used utils --- command/pr.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/command/pr.go b/command/pr.go index 02a447d4a9e..f6da86e4609 100644 --- a/command/pr.go +++ b/command/pr.go @@ -2,7 +2,6 @@ package command import ( "fmt" - "golang.org/x/crypto/ssh/terminal" "io" "os" "regexp" @@ -209,7 +208,7 @@ func prList(cmd *cobra.Command, args []string) error { title := listHeader(ghrepo.FullName(baseRepo), "pull request", len(listResult.PullRequests), listResult.TotalCount, hasFilters) - if terminal.IsTerminal(int(os.Stdout.Fd())) { + if utils.IsTerminal(os.Stdout) { fmt.Fprintf(colorableErr(cmd), "\n%s\n\n", title) } From 08c774c565418e3c3cfd9f36ba8521db97668e1f Mon Sep 17 00:00:00 2001 From: Tarasovych Date: Tue, 21 Apr 2020 17:29:03 +0300 Subject: [PATCH 5/6] Revert "added packages" This reverts commit 70deeb63d9c8b8871a9e8765ae63ef580fe91283. --- go.mod | 5 ++--- go.sum | 7 ------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index ae19e58c6bf..193320caa8e 100644 --- a/go.mod +++ b/go.mod @@ -22,9 +22,8 @@ require ( github.com/spf13/cobra v0.0.6 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 // indirect - golang.org/x/crypto v0.0.0-20200414173820-0848c9571904 - golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e // indirect - golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 // indirect + golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4 + golang.org/x/net v0.0.0-20200219183655-46282727080f // indirect golang.org/x/text v0.3.2 gopkg.in/yaml.v2 v2.2.8 // indirect gopkg.in/yaml.v3 v3.0.0-20200121175148-a6ecf24a6d71 diff --git a/go.sum b/go.sum index be96a0ae683..807e68f62dd 100644 --- a/go.sum +++ b/go.sum @@ -190,8 +190,6 @@ golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5 h1:8dUaAV7K4uHsF56JQWkpre golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4 h1:4icQlpeqbz3WxfgP6Eq3szTj95KTrlH/CwzBzoxuFd0= golang.org/x/crypto v0.0.0-20200219234226-1ad67e1f0ef4/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200414173820-0848c9571904 h1:bXoxMPcSLOq08zI3/c5dEBT6lE4eh+jOh886GHrn6V8= -golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -203,8 +201,6 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20200219183655-46282727080f h1:dB42wwhNuwPvh8f+5zZWNcU+F2Xs/B9wXXwvUCOH7r8= golang.org/x/net v0.0.0-20200219183655-46282727080f/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -222,9 +218,6 @@ golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 h1:opSr2sbRXk5X5/givKrrKj9HXxFpW2sdCiP8MJSKLQY= -golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= From fb97c006c4e05e60cd6607dadb5b282a081e26ef Mon Sep 17 00:00:00 2001 From: Tarasovych Date: Thu, 23 Apr 2020 09:41:54 +0300 Subject: [PATCH 6/6] used cmd.OutOrStdout() --- command/pr.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/command/pr.go b/command/pr.go index f6da86e4609..81dd0bb8018 100644 --- a/command/pr.go +++ b/command/pr.go @@ -208,8 +208,11 @@ func prList(cmd *cobra.Command, args []string) error { title := listHeader(ghrepo.FullName(baseRepo), "pull request", len(listResult.PullRequests), listResult.TotalCount, hasFilters) - if utils.IsTerminal(os.Stdout) { - fmt.Fprintf(colorableErr(cmd), "\n%s\n\n", title) + out := cmd.OutOrStdout() + if outFile, isFile := out.(*os.File); isFile { + if utils.IsTerminal(outFile) { + fmt.Fprintf(colorableErr(cmd), "\n%s\n\n", title) + } } table := utils.NewTablePrinter(cmd.OutOrStdout())