提交 32e57d23 编写于 作者: J Jingwen Owen Ou

Change pull request API to use octokit

上级 9ae43f29
......@@ -3,7 +3,7 @@ package commands
import (
"fmt"
"github.com/jingweno/gh/utils"
"github.com/jingweno/octokat"
"github.com/octokit/go-octokit"
)
var cmdCheckout = &Command{
......@@ -46,7 +46,7 @@ func transformCheckoutArgs(args *Args) error {
return nil
}
func buildArgsFromPullRequest(args *Args, pullRequest *octokat.PullRequest) error {
func buildArgsFromPullRequest(args *Args, pullRequest *octokit.PullRequest) error {
user, branch := parseUserBranchFromPR(pullRequest)
args.RemoveParam(0) // Remove the pull request URL
......
......@@ -3,7 +3,7 @@ package commands
import (
"fmt"
"github.com/jingweno/gh/utils"
"github.com/jingweno/octokat"
"github.com/octokit/go-octokit"
)
var cmdMerge = &Command{
......@@ -45,7 +45,7 @@ func transformMergeArgs(args *Args) error {
return nil
}
func fetchAndMerge(args *Args, pullRequest *octokat.PullRequest) error {
func fetchAndMerge(args *Args, pullRequest *octokit.PullRequest) error {
user, branch := parseUserBranchFromPR(pullRequest)
url, err := convertToGitURL(pullRequest.HTMLURL, user, pullRequest.Head.Repo.Private)
if err != nil {
......
......@@ -2,7 +2,7 @@ package commands
import (
"github.com/bmizerany/assert"
"github.com/jingweno/octokat"
"github.com/octokit/go-octokit"
"testing"
)
......@@ -14,15 +14,15 @@ func TestFetchAndMerge(t *testing.T) {
args := NewArgs([]string{"merge", url})
userLogin := "jingweno"
user := octokat.User{Login: userLogin}
user := octokit.User{Login: userLogin}
repoPrivate := true
repo := octokat.Repository{Private: repoPrivate}
repo := octokit.Repository{Private: repoPrivate}
headRef := "new-feature"
head := octokat.Commit{Ref: headRef, Repo: repo, Label: "jingweno:new-feature"}
head := octokit.Commit{Ref: headRef, Repo: repo, Label: "jingweno:new-feature"}
pullRequest := octokat.PullRequest{Number: number, Title: title, HTMLURL: url, User: user, Head: head}
pullRequest := octokit.PullRequest{Number: number, Title: title, HTMLURL: url, User: user, Head: head}
err := fetchAndMerge(args, &pullRequest)
assert.Equal(t, nil, err)
......
......@@ -5,7 +5,7 @@ import (
"github.com/jingweno/gh/git"
"github.com/jingweno/gh/github"
"github.com/jingweno/gh/utils"
"github.com/jingweno/octokat"
"github.com/octokit/go-octokit"
"os"
"regexp"
"strings"
......@@ -41,7 +41,7 @@ func parsePullRequestId(rawurl string) (id string) {
return
}
func fetchPullRequest(id string) (*octokat.PullRequest, error) {
func fetchPullRequest(id string) (*octokit.PullRequest, error) {
gh := github.New()
pullRequest, err := gh.PullRequest(id)
if err != nil {
......@@ -65,7 +65,7 @@ func convertToGitURL(pullRequestURL, user string, isSSH bool) (string, error) {
return url.GitURL("", user, isSSH), nil
}
func parseUserBranchFromPR(pullRequest *octokat.PullRequest) (user string, branch string) {
func parseUserBranchFromPR(pullRequest *octokit.PullRequest) (user string, branch string) {
userBranch := strings.SplitN(pullRequest.Head.Label, ":", 2)
user = userBranch[0]
if len(userBranch) > 1 {
......
......@@ -16,34 +16,55 @@ type GitHub struct {
Config *Config
}
func (gh *GitHub) PullRequest(id string) (*octokat.PullRequest, error) {
client := gh.client()
func (gh *GitHub) PullRequest(id string) (pr *octokit.PullRequest, err error) {
client := gh.octokit()
prService, err := client.PullRequests(&octokit.PullRequestsURL, octokit.M{"owner": gh.Project.Owner, "repo": gh.Project.Name, "number": id})
if err != nil {
return
}
return client.PullRequest(gh.repo(), id, nil)
pr, result := prService.Get()
if result.HasError() {
err = result.Err
}
return
}
func (gh *GitHub) CreatePullRequest(base, head, title, body string) (string, error) {
client := gh.client()
params := octokat.PullRequestParams{Base: base, Head: head, Title: title, Body: body}
options := octokat.Options{Params: params}
pullRequest, err := client.CreatePullRequest(gh.repo(), &options)
func (gh *GitHub) CreatePullRequest(base, head, title, body string) (url string, err error) {
client := gh.octokit()
prService, err := client.PullRequests(&octokit.PullRequestsURL, octokit.M{"owner": gh.Project.Owner, "repo": gh.Project.Name})
if err != nil {
return "", err
return
}
params := octokit.PullRequestParams{Base: base, Head: head, Title: title, Body: body}
pr, result := prService.Create(params)
if result.HasError() {
err = result.Err
}
return pullRequest.HTMLURL, nil
url = pr.HTMLURL
return
}
func (gh *GitHub) CreatePullRequestForIssue(base, head, issue string) (string, error) {
client := gh.client()
params := octokat.PullRequestForIssueParams{Base: base, Head: head, Issue: issue}
options := octokat.Options{Params: params}
pullRequest, err := client.CreatePullRequest(gh.repo(), &options)
func (gh *GitHub) CreatePullRequestForIssue(base, head, issue string) (url string, err error) {
client := gh.octokit()
prService, err := client.PullRequests(&octokit.PullRequestsURL, octokit.M{"owner": gh.Project.Owner, "repo": gh.Project.Name})
if err != nil {
return "", err
return
}
return pullRequest.HTMLURL, nil
params := octokit.PullRequestForIssueParams{Base: base, Head: head, Issue: issue}
pr, result := prService.Create(params)
if result.HasError() {
err = result.Err
}
url = pr.HTMLURL
return
}
func (gh *GitHub) Repository(project Project) (repo *octokit.Repository, err error) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册