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  }