in controllers/codebase/service/chain/delete_webhook.go [32:94]
func (s *DeleteWebHook) ServeRequest(ctx context.Context, codebase *codebaseApi.Codebase) error {
log := ctrl.LoggerFrom(ctx)
if codebase.Spec.CiTool != util.CITekton {
log.Info("Skip deleting webhook for non-Tekton CI tool")
return nil
}
log.Info("Start deleting webhook...")
if codebase.Status.GetWebHookRef() == "" {
log.Info("Webhook ref is empty. Skip deleting webhook.")
return nil
}
gitServer := &codebaseApi.GitServer{}
if err := s.client.Get(ctx, client.ObjectKey{Name: codebase.Spec.GitServer, Namespace: codebase.Namespace}, gitServer); err != nil {
log.Error(err, "Failed to delete webhook: unable to get GitServer", "gitServer", codebase.Spec.GitServer)
return nil
}
secret, err := s.getGitServerSecret(ctx, gitServer.Spec.NameSshKeySecret, codebase.Namespace)
if err != nil {
log.Error(err, "Failed to delete webhook: unable to get GitServer secret")
return nil
}
gitProvider, err := gitprovider.NewProvider(gitServer, s.restyClient, string(secret.Data[util.GitServerSecretTokenField]))
if err != nil {
log.Error(err, "Failed to delete webhook: unable to create git provider")
return nil
}
projectID := codebase.Spec.GetProjectID()
gitHost := gitprovider.GetGitProviderAPIURL(gitServer)
err = gitProvider.DeleteWebHook(
ctx,
gitHost,
string(secret.Data[util.GitServerSecretTokenField]),
projectID,
codebase.Status.GetWebHookRef(),
)
if err != nil {
if errors.Is(err, gitprovider.ErrWebHookNotFound) {
log.Info("Webhook was not found. Skip deleting webhook")
return nil
}
log.Error(err, "Failed to delete webhook")
return nil
}
log.Info("Webhook has been deleted successfully")
return nil
}