1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 )
12
13
14
15 type RepositoryMergeRequest struct {
16 Base *string `json:"base,omitempty"`
17 Head *string `json:"head,omitempty"`
18 CommitMessage *string `json:"commit_message,omitempty"`
19 }
20
21
22
23 type RepoMergeUpstreamRequest struct {
24 Branch *string `json:"branch,omitempty"`
25 }
26
27
28
29 type RepoMergeUpstreamResult struct {
30 Message *string `json:"message,omitempty"`
31 MergeType *string `json:"merge_type,omitempty"`
32 BaseBranch *string `json:"base_branch,omitempty"`
33 }
34
35
36
37
38 func (s *RepositoriesService) Merge(ctx context.Context, owner, repo string, request *RepositoryMergeRequest) (*RepositoryCommit, *Response, error) {
39 u := fmt.Sprintf("repos/%v/%v/merges", owner, repo)
40 req, err := s.client.NewRequest("POST", u, request)
41 if err != nil {
42 return nil, nil, err
43 }
44
45 commit := new(RepositoryCommit)
46 resp, err := s.client.Do(ctx, req, commit)
47 if err != nil {
48 return nil, resp, err
49 }
50
51 return commit, resp, nil
52 }
53
54
55
56
57
58 func (s *RepositoriesService) MergeUpstream(ctx context.Context, owner, repo string, request *RepoMergeUpstreamRequest) (*RepoMergeUpstreamResult, *Response, error) {
59 u := fmt.Sprintf("repos/%v/%v/merge-upstream", owner, repo)
60 req, err := s.client.NewRequest("POST", u, request)
61 if err != nil {
62 return nil, nil, err
63 }
64
65 result := new(RepoMergeUpstreamResult)
66 resp, err := s.client.Do(ctx, req, result)
67 if err != nil {
68 return nil, resp, err
69 }
70
71 return result, resp, nil
72 }
73
View as plain text