(ctx context.Context, req *github.Hook)
| 2244 | } |
| 2245 | |
| 2246 | func (r *basePoolManager) InstallHook(ctx context.Context, req *github.Hook) (params.HookInfo, error) { |
| 2247 | allHooks, err := r.listHooks(ctx) |
| 2248 | if err != nil { |
| 2249 | return params.HookInfo{}, fmt.Errorf("error listing hooks: %w", err) |
| 2250 | } |
| 2251 | |
| 2252 | if err := validateHookRequest(r.controllerInfo.ControllerID.String(), r.controllerInfo.WebhookURL, allHooks, req); err != nil { |
| 2253 | return params.HookInfo{}, fmt.Errorf("error validating hook request: %w", err) |
| 2254 | } |
| 2255 | |
| 2256 | hook, err := r.ghcli.CreateEntityHook(ctx, req) |
| 2257 | if err != nil { |
| 2258 | return params.HookInfo{}, fmt.Errorf("error creating entity hook: %w", err) |
| 2259 | } |
| 2260 | |
| 2261 | if _, err := r.ghcli.PingEntityHook(ctx, hook.GetID()); err != nil { |
| 2262 | slog.With(slog.Any("error", err)).ErrorContext( |
| 2263 | ctx, "failed to ping hook", |
| 2264 | "hook_id", hook.GetID(), |
| 2265 | "entity", r.entity) |
| 2266 | } |
| 2267 | |
| 2268 | return hookToParamsHookInfo(hook), nil |
| 2269 | } |
| 2270 | |
| 2271 | func (r *basePoolManager) InstallWebhook(ctx context.Context, param params.InstallWebhookParams) (params.HookInfo, error) { |
| 2272 | if r.controllerInfo.ControllerWebhookURL == "" { |
no test coverage detected