Skip to content

Commit 81bfa62

Browse files
ListProject function for Repositories (#281)
* add function to return all repos for project fix url remove ssh add ssh * update interface
1 parent ca089ec commit 81bfa62

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

bitbucket.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ type repository interface {
8585
type repositories interface {
8686
ListForAccount(opt RepositoriesOptions) (interface{}, error)
8787
ListForTeam(opt RepositoriesOptions) (interface{}, error)
88+
ListProject(opt RepositoriesOptions) (interface{}, error)
8889
ListPublic() (interface{}, error)
8990
}
9091

@@ -140,6 +141,7 @@ type pipelines interface {
140141

141142
type RepositoriesOptions struct {
142143
Owner string `json:"owner"`
144+
Project string `json:"project"`
143145
Role string `json:"role"` // role=[owner|admin|contributor|member]
144146
Page *int `json:"page"`
145147
Keyword *string `json:"keyword"`

repositories.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,17 @@ func (r *Repositories) ListForTeam(ro *RepositoriesOptions) (*RepositoriesRes, e
5757
return r.ListForAccount(ro)
5858
}
5959

60+
// Return all repositories that belong to a project
61+
func (r *Repositories) ListProject(ro *RepositoriesOptions) (*RepositoriesRes, error) {
62+
urlPath := r.c.requestUrl("/repositories")
63+
urlPath += fmt.Sprintf("/%s/?q=project.key=\"%s\"", ro.Owner, ro.Project)
64+
repos, err := r.c.executePaginated("GET", urlPath, "", nil)
65+
if err != nil {
66+
return nil, err
67+
}
68+
return decodeRepositories(repos)
69+
}
70+
6071
func (r *Repositories) ListPublic() (*RepositoriesRes, error) {
6172
urlStr := r.c.requestUrl("/repositories/")
6273
repos, err := r.c.executePaginated("GET", urlStr, "", nil)

0 commit comments

Comments
 (0)