in controllers/codebase/service/chain/put_webhook.go [125:149]
func (s *PutWebHook) getGitServerSecret(ctx context.Context, secretName, namespace string) (*coreV1.Secret, error) {
secret := &coreV1.Secret{}
if err := s.client.Get(ctx, client.ObjectKey{Name: secretName, Namespace: namespace}, secret); err != nil {
return nil, fmt.Errorf("failed to get %v secret: %w", secretName, err)
}
if _, ok := secret.Data[util.GitServerSecretTokenField]; !ok {
return nil, fmt.Errorf("failed to get %s field from %s secret", util.GitServerSecretTokenField, secretName)
}
if token, ok := secret.Data[util.GitServerSecretWebhookSecretField]; !ok || len(token) == 0 {
token, err := util.GenerateRandomString(webhookTokenLength)
if err != nil {
return nil, fmt.Errorf("failed to generate webhook secret: %w", err)
}
secret.Data[util.GitServerSecretWebhookSecretField] = []byte(token)
if err = s.client.Update(ctx, secret); err != nil {
return nil, fmt.Errorf("failed to update %s secret: %w", secretName, err)
}
}
return secret, nil
}