From 2fc08c1b957734d622637bd8d8d997572074cd33 Mon Sep 17 00:00:00 2001 From: Jingwen Owen Ou Date: Wed, 29 May 2013 10:49:30 -0700 Subject: [PATCH] Change all reference to GitHubProject --- git.go | 28 ---------------------------- git_hub.go | 30 +++++++++++++++--------------- git_hub_test.go | 2 +- git_test.go | 12 ------------ pull_request.go | 2 +- repo.go | 12 +++++------- 6 files changed, 22 insertions(+), 64 deletions(-) diff --git a/git.go b/git.go index 13de6eb8..9558c64f 100644 --- a/git.go +++ b/git.go @@ -77,34 +77,6 @@ func (git *Git) EditorPath() (string, error) { return editorPath, nil } -func (git *Git) Owner() (string, error) { - remote, err := git.Remote() - if err != nil { - return "", err - } - - url, err := mustMatchGitUrl(remote) - if err != nil { - return "", err - } - - return url[1], nil -} - -func (git *Git) Project() (string, error) { - remote, err := git.Remote() - if err != nil { - return "", err - } - - url, err := mustMatchGitUrl(remote) - if err != nil { - return "", err - } - - return url[2], nil -} - func (git *Git) Head() (string, error) { output, err := git.execGitCmd([]string{"symbolic-ref", "-q", "--short", "HEAD"}) if err != nil { diff --git a/git_hub.go b/git_hub.go index a498b050..bcd75285 100644 --- a/git_hub.go +++ b/git_hub.go @@ -55,18 +55,8 @@ func NewGitHub() *GitHub { auth = config.Token } - if len(user) == 0 { - owner, err := git.Owner() - if err != nil { - // prompt for user - log.Fatal(err) - } - - user = owner - } - - if len(auth) > 0 { - auth = "token " + auth + if auth != "" { + auth = fmt.Sprintf("token %s", auth) } return &GitHub{&http.Client{}, user, "", auth} @@ -85,7 +75,17 @@ type GitHub struct { } func (gh *GitHub) performBasicAuth() error { - msg := fmt.Sprintf("%s password for %s (never stored): ", GitHubHost, gh.User) + user := gh.User + if user == "" { + user = CurrentProject().Owner + gh.User = user + } + if user == "" { + // TODO: prompt user + log.Fatal("TODO: prompt user for basic auth") + } + + msg := fmt.Sprintf("%s password for %s (never stored): ", GitHubHost, user) fmt.Print(msg) pass := gopass.GetPasswd() @@ -291,14 +291,14 @@ type PullRequestResponse struct { IssueUrl string `json:"issue_url"` } -func (gh *GitHub) CreatePullRequest(owner, repo string, params PullRequestParams) (*PullRequestResponse, error) { +func (gh *GitHub) CreatePullRequest(project *GitHubProject, params PullRequestParams) (*PullRequestResponse, error) { b, err := json.Marshal(params) if err != nil { return nil, err } buffer := bytes.NewBuffer(b) - url := fmt.Sprintf("/repos/%s/%s/pulls", owner, repo) + url := fmt.Sprintf("/repos/%s/%s/pulls", project.Owner, project.Name) response, err := gh.httpPost(url, nil, buffer) if err != nil { return nil, err diff --git a/git_hub_test.go b/git_hub_test.go index 2c3b9b86..c0fa04a2 100644 --- a/git_hub_test.go +++ b/git_hub_test.go @@ -12,6 +12,6 @@ func _TestCreatePullRequest(t *testing.T) { client := &http.Client{} gh := GitHub{client, "jingweno", "123", config.Token} params := PullRequestParams{"title", "body", "jingweno:master", "jingweno:pull_request"} - _, err := gh.CreatePullRequest("jingweno", "gh", params) + _, err := gh.CreatePullRequest(CurrentProject(), params) assert.Equal(t, nil, err) } diff --git a/git_test.go b/git_test.go index 8358be38..0a2dd85c 100644 --- a/git_test.go +++ b/git_test.go @@ -44,18 +44,6 @@ func TestGitRemote(t *testing.T) { assert.T(t, strings.Contains(gitRemote, "jingweno/gh.git")) } -func TestGitOwner(t *testing.T) { - git := setupGit() - gitOwner, _ := git.Owner() - assert.Equal(t, "jingweno", gitOwner) -} - -func TestGitProject(t *testing.T) { - git := setupGit() - gitProject, _ := git.Project() - assert.Equal(t, "gh", gitProject) -} - func TestGitHead(t *testing.T) { git := setupGit() gitHead, _ := git.Head() diff --git a/pull_request.go b/pull_request.go index 3fb0ee74..35a54209 100644 --- a/pull_request.go +++ b/pull_request.go @@ -60,7 +60,7 @@ func pullRequest(cmd *Command, args []string) { params := PullRequestParams{title, body, repo.Base, repo.Head} gh := NewGitHub() - pullRequestResponse, err := gh.CreatePullRequest(repo.Owner, repo.Project, params) + pullRequestResponse, err := gh.CreatePullRequest(repo.Project, params) check(err) fmt.Println(pullRequestResponse.HtmlUrl) diff --git a/repo.go b/repo.go index 01bafd78..4c2b6164 100644 --- a/repo.go +++ b/repo.go @@ -5,17 +5,16 @@ import ( ) type Repo struct { - Owner string - Project string Base string Head string + Project *GitHubProject } func (r *Repo) FullBase() string { if strings.Contains(r.Base, ":") { return r.Base } else { - return r.Owner + ":" + r.Base + return r.Project.Owner + ":" + r.Base } } @@ -23,7 +22,7 @@ func (r *Repo) FullHead() string { if strings.Contains(r.Head, ":") { return r.Head } else { - return r.Owner + ":" + r.Head + return r.Project.Owner + ":" + r.Head } } @@ -35,8 +34,7 @@ func NewRepo(base, head string) *Repo { head, _ = git.Head() } - owner, _ := git.Owner() - project, _ := git.Project() + project := CurrentProject() - return &Repo{owner, project, base, head} + return &Repo{base, head, project} } -- GitLab