MCPcopy Create free account
hub / github.com/cloudbase/garm / UninstallWebhook

Method UninstallWebhook

runner/pool/pool.go:2204–2244  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

2202}
2203
2204func (r *basePoolManager) UninstallWebhook(ctx context.Context) error {
2205 if r.controllerInfo.ControllerWebhookURL == "" {
2206 return runnerErrors.NewBadRequestError("controller webhook url is empty")
2207 }
2208
2209 allHooks, err := r.listHooks(ctx)
2210 if err != nil {
2211 return fmt.Errorf("error listing hooks: %w", err)
2212 }
2213
2214 var controllerHookID int64
2215 var baseHook string
2216 trimmedBase := strings.TrimRight(r.controllerInfo.WebhookURL, "/")
2217 trimmedController := strings.TrimRight(r.controllerInfo.ControllerWebhookURL, "/")
2218
2219 for _, hook := range allHooks {
2220 hookInfo := hookToParamsHookInfo(hook)
2221 info := strings.TrimRight(hookInfo.URL, "/")
2222 if strings.EqualFold(info, trimmedController) {
2223 controllerHookID = hook.GetID()
2224 }
2225
2226 if strings.EqualFold(info, trimmedBase) {
2227 baseHook = hookInfo.URL
2228 }
2229 }
2230
2231 if controllerHookID != 0 {
2232 _, err = r.ghcli.DeleteEntityHook(ctx, controllerHookID)
2233 if err != nil {
2234 return fmt.Errorf("deleting hook: %w", err)
2235 }
2236 return nil
2237 }
2238
2239 if baseHook != "" {
2240 return runnerErrors.NewBadRequestError("base hook found (%s) and must be deleted manually", baseHook)
2241 }
2242
2243 return nil
2244}
2245
2246func (r *basePoolManager) InstallHook(ctx context.Context, req *github.Hook) (params.HookInfo, error) {
2247 allHooks, err := r.listHooks(ctx)

Callers

nothing calls this directly

Calls 4

listHooksMethod · 0.95
hookToParamsHookInfoFunction · 0.85
GetIDMethod · 0.65
DeleteEntityHookMethod · 0.65

Tested by

no test coverage detected