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

Method InstallHook

runner/pool/pool.go:2246–2269  ·  view source on GitHub ↗
(ctx context.Context, req *github.Hook)

Source from the content-addressed store, hash-verified

2244}
2245
2246func (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
2271func (r *basePoolManager) InstallWebhook(ctx context.Context, param params.InstallWebhookParams) (params.HookInfo, error) {
2272 if r.controllerInfo.ControllerWebhookURL == "" {

Callers 1

InstallWebhookMethod · 0.95

Calls 7

listHooksMethod · 0.95
validateHookRequestFunction · 0.85
hookToParamsHookInfoFunction · 0.85
CreateEntityHookMethod · 0.65
PingEntityHookMethod · 0.65
GetIDMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected