github.com/daeMOn63/bitclient@v0.0.0-20190425080230-bfee94efac35/project_repository_default_reviewers.go (about) 1 package bitclient 2 3 import ( 4 "fmt" 5 ) 6 7 func (bc *BitClient) GetRepositoryDefaultReviewers(projectKey, repositorySlug string) ([]DefaultReviewers, error) { 8 rError := new(ErrorResponse) 9 10 var response []DefaultReviewers 11 12 url := fmt.Sprintf("/rest/default-reviewers/1.0/projects/%s/repos/%s/conditions", projectKey, repositorySlug) 13 resp, _ := bc.sling.New().Get(url).Receive(&response, rError) 14 15 resp, err := bc.checkReponse(resp, rError) 16 17 return response, err 18 } 19 20 func (bc *BitClient) CreateRepositoryDefaultReviewers(projectKey, repositorySlug string, params DefaultReviewers) (DefaultReviewers, error) { 21 rError := new(ErrorResponse) 22 23 request := RepositoryDefaultReviewersRequest{ 24 SourceMatcher: params.FromRefMatcher, 25 TargetMatcher: params.ToRefMatcher, 26 RequiredApprovals: params.RequiredApprovals, 27 Reviewers: params.Reviewers, 28 } 29 30 response := DefaultReviewers{} 31 32 url := fmt.Sprintf("/rest/default-reviewers/latest/projects/%s/repos/%s/condition", projectKey, repositorySlug) 33 resp, _ := bc.sling.New().Post(url).BodyJSON(request).Receive(&response, rError) 34 35 resp, err := bc.checkReponse(resp, rError) 36 37 return response, err 38 } 39 40 type RepositoryDefaultReviewersRequest struct { 41 SourceMatcher Matcher `json:"sourceMatcher,omitempty"` 42 TargetMatcher Matcher `json:"targetMatcher,omitempty"` 43 RequiredApprovals int `json:"requiredApprovals"` 44 Reviewers []User `json:"reviewers,omitempty"` 45 } 46 47 func (bc *BitClient) UpdateRepositoryDefaultReviewers(projectKey, repositorySlug string, params DefaultReviewers) (DefaultReviewers, error) { 48 rError := new(ErrorResponse) 49 50 request := RepositoryDefaultReviewersRequest{ 51 SourceMatcher: params.FromRefMatcher, 52 TargetMatcher: params.ToRefMatcher, 53 RequiredApprovals: params.RequiredApprovals, 54 Reviewers: params.Reviewers, 55 } 56 57 response := DefaultReviewers{} 58 59 url := fmt.Sprintf("/rest/default-reviewers/1.0/projects/%s/repos/%s/condition/%d", projectKey, repositorySlug, params.Id) 60 resp, _ := bc.sling.New().Put(url).BodyJSON(request).Receive(&response, rError) 61 62 resp, err := bc.checkReponse(resp, rError) 63 64 return response, err 65 }