From 03278453db200139a53ec3982b2391cc2bc39b2c Mon Sep 17 00:00:00 2001 From: Sam Coe Date: Thu, 18 Nov 2021 12:17:59 -0800 Subject: [PATCH] Escape workflow information when generating URLs --- pkg/cmd/workflow/view/view.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/cmd/workflow/view/view.go b/pkg/cmd/workflow/view/view.go index 9370a0e26..d6b71e6c1 100644 --- a/pkg/cmd/workflow/view/view.go +++ b/pkg/cmd/workflow/view/view.go @@ -3,6 +3,7 @@ package view import ( "fmt" "net/http" + "net/url" "strings" "github.com/MakeNowJust/heredoc" @@ -101,7 +102,7 @@ func runView(opts *ViewOptions) error { } if opts.Web { - var url string + var address string if opts.YAML { ref := opts.Ref if ref == "" { @@ -112,14 +113,14 @@ func runView(opts *ViewOptions) error { return err } } - url = ghrepo.GenerateRepoURL(repo, "blob/%s/%s", ref, workflow.Path) + address = ghrepo.GenerateRepoURL(repo, "blob/%s/%s", url.QueryEscape(ref), url.QueryEscape(workflow.Path)) } else { - url = ghrepo.GenerateRepoURL(repo, "actions/workflows/%s", workflow.Base()) + address = ghrepo.GenerateRepoURL(repo, "actions/workflows/%s", url.QueryEscape(workflow.Base())) } if opts.IO.IsStdoutTTY() { - fmt.Fprintf(opts.IO.Out, "Opening %s in your browser.\n", utils.DisplayURL(url)) + fmt.Fprintf(opts.IO.Out, "Opening %s in your browser.\n", utils.DisplayURL(address)) } - return opts.Browser.Browse(url) + return opts.Browser.Browse(address) } if opts.YAML {