-
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathgit.go
More file actions
70 lines (57 loc) · 2.35 KB
/
git.go
File metadata and controls
70 lines (57 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package backlog
import (
"context"
"fmt"
)
// GitRepository : Git repository
type GitRepository struct {
ID *int `json:"id,omitempty"`
ProjectID *int `json:"projectId,omitempty"`
Name *string `json:"name,omitempty"`
Description *string `json:"description,omitempty"`
HookURL *string `json:"hookUrl,omitempty"`
HTTPURL *string `json:"httpUrl,omitempty"`
SSHURL *string `json:"sshUrl,omitempty"`
DisplayOrder *int `json:"displayOrder,omitempty"`
PushedAt *Timestamp `json:"pushedAt,omitempty"`
CreatedUser *User `json:"createdUser,omitempty"`
Created *Timestamp `json:"created,omitempty"`
UpdatedUser *User `json:"updatedUser,omitempty"`
Updated *Timestamp `json:"updated,omitempty"`
}
// ResponseGitRepositories : response for git repositories
type ResponseGitRepositories []*GitRepository
// GetGitRepositories returns git repositories
func (c *Client) GetGitRepositories(projectIDOrKey interface{}) (*ResponseGitRepositories, error) {
return c.GetGitRepositoriesContext(context.Background(), projectIDOrKey)
}
// GetGitRepositoriesContext returns git repositories
func (c *Client) GetGitRepositoriesContext(ctx context.Context, projectIDOrKey interface{}) (*ResponseGitRepositories, error) {
u := fmt.Sprintf("/api/v2/projects/%v/git/repositories", projectIDOrKey)
req, err := c.NewRequest("GET", u, nil)
if err != nil {
return nil, err
}
responseGitRepositories := new(ResponseGitRepositories)
if err := c.Do(ctx, req, responseGitRepositories); err != nil {
return nil, err
}
return responseGitRepositories, nil
}
// GetGitRepository returns git repository
func (c *Client) GetGitRepository(projectIDOrKey interface{}, repoIDOrName interface{}) (*GitRepository, error) {
return c.GetGitRepositoryContext(context.Background(), projectIDOrKey, repoIDOrName)
}
// GetGitRepositoryContext returns git repository
func (c *Client) GetGitRepositoryContext(ctx context.Context, projectIDOrKey interface{}, repoIDOrName interface{}) (*GitRepository, error) {
u := fmt.Sprintf("/api/v2/projects/%v/git/repositories/%v", projectIDOrKey, repoIDOrName)
req, err := c.NewRequest("GET", u, nil)
if err != nil {
return nil, err
}
gitRepository := new(GitRepository)
if err := c.Do(ctx, req, gitRepository); err != nil {
return nil, err
}
return gitRepository, nil
}