(ctx context.Context)
| 2202 | } |
| 2203 | |
| 2204 | func (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 | |
| 2246 | func (r *basePoolManager) InstallHook(ctx context.Context, req *github.Hook) (params.HookInfo, error) { |
| 2247 | allHooks, err := r.listHooks(ctx) |
nothing calls this directly
no test coverage detected