From a5400effd80ba12ebdb5deb39628e002dfeaee08 Mon Sep 17 00:00:00 2001 From: Shion Ichikawa Date: Mon, 28 Aug 2023 23:09:02 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20(repo=20create)execute=20clone?= =?UTF-8?q?=20when=20readme=20option=20is=20enabled=20(#7837)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🐛 (repo create)execute clone when readme option is enabled * ✅ (repo/create)noninteractive clone with readme * 🔥 (repo/create)remove printing statement --- pkg/cmd/repo/create/create.go | 2 +- pkg/cmd/repo/create/create_test.go | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/pkg/cmd/repo/create/create.go b/pkg/cmd/repo/create/create.go index 1bd37769b..097bd1935 100644 --- a/pkg/cmd/repo/create/create.go +++ b/pkg/cmd/repo/create/create.go @@ -396,7 +396,7 @@ func createFromScratch(opts *CreateOptions) error { remoteURL := ghrepo.FormatRemoteURL(repo, protocol) - if opts.LicenseTemplate == "" && opts.GitIgnoreTemplate == "" && opts.Template == "" { + if !opts.AddReadme && opts.LicenseTemplate == "" && opts.GitIgnoreTemplate == "" && opts.Template == "" { // cloning empty repository or template if err := localInit(opts.GitClient, remoteURL, repo.RepoName()); err != nil { return err diff --git a/pkg/cmd/repo/create/create_test.go b/pkg/cmd/repo/create/create_test.go index 5b5fd72bb..b0d21460e 100644 --- a/pkg/cmd/repo/create/create_test.go +++ b/pkg/cmd/repo/create/create_test.go @@ -602,6 +602,35 @@ func Test_createRun(t *testing.T) { }, wantStdout: "https://github.com/OWNER/REPO\n", }, + { + name: "noninteractive clone with readme", + opts: &CreateOptions{ + Interactive: false, + Name: "ElliotAlderson", + Visibility: "PRIVATE", + Clone: true, + AddReadme: true, + }, + tty: false, + httpStubs: func(reg *httpmock.Registry) { + reg.Register( + httpmock.REST("POST", "user/repos"), + httpmock.RESTPayload(200, "{\"name\":\"ElliotAlderson\", \"owner\":{\"login\": \"OWNER\"}, \"html_url\":\"https://github.com/OWNER/ElliotAlderson\"}", + func(payload map[string]interface{}) { + payload["name"] = "ElliotAlderson" + payload["owner"] = map[string]interface{}{"login": "OWNER"} + payload["auto_init"] = true + payload["private"] = true + }, + ), + ) + }, + execStubs: func(cs *run.CommandStubber) { + cs.Register(`git clone https://github.com/OWNER/ElliotAlderson`, 128, "") + cs.Register(`git clone https://github.com/OWNER/ElliotAlderson`, 0, "") + }, + wantStdout: "https://github.com/OWNER/ElliotAlderson\n", + }, { name: "noninteractive create from template with retry", opts: &CreateOptions{