github.com/daeMOn63/bitclient@v0.0.0-20190425080230-bfee94efac35/hooks.go (about)

     1  package bitclient
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  const yaccHookKey = "com.isroot.stash.plugin.yacc:yaccHook"
     8  
     9  type GetHooksRequest struct {
    10  	PagedRequest
    11  	Type string
    12  }
    13  
    14  type GetHooksResponse struct {
    15  	PagedResponse
    16  	Values []Hook
    17  }
    18  
    19  func (bc *BitClient) GetHooks(projectKey, repositorySlug string, params GetHooksRequest) (GetHooksResponse, error) {
    20  	response := GetHooksResponse{}
    21  
    22  	_, err := bc.DoGet(
    23  		fmt.Sprintf("/projects/%s/repos/%s/settings/hooks", projectKey, repositorySlug),
    24  		params,
    25  		&response,
    26  	)
    27  
    28  	return response, err
    29  }
    30  
    31  func (bc *BitClient) EnableHook(projectKey, repositorySlug, hookKey string, hookSettings interface{}) error {
    32  
    33  	_, err := bc.DoPut(
    34  		fmt.Sprintf("/projects/%s/repos/%s/settings/hooks/%s/enabled", projectKey, repositorySlug, hookKey),
    35  		hookSettings,
    36  		nil,
    37  	)
    38  
    39  	return err
    40  }
    41  
    42  func (bc *BitClient) DisableHook(projectKey, repositorySlug, hookKey string) error {
    43  	_, err := bc.DoDeleteUrl(
    44  		fmt.Sprintf("/projects/%s/repos/%s/settings/hooks/%s/enabled", projectKey, repositorySlug, hookKey),
    45  		nil,
    46  		nil,
    47  	)
    48  
    49  	return err
    50  }
    51  
    52  // GetYACCHookSettings return the YACC hook settings from bitbucket
    53  func (bc *BitClient) GetYACCHookSettings(projectKey string , repositorySlug string) (YaccHookSettings, error) {
    54  	response := YaccHookSettings{}
    55  
    56  	_, err := bc.DoGet(
    57  		fmt.Sprintf("/projects/%s/repos/%s/settings/hooks/%s/settings", projectKey, repositorySlug, yaccHookKey),
    58  		nil,
    59  		&response,
    60  	)
    61  
    62  	return response, err
    63  }