func()

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
}