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 }