diff --git a/frontend/packages/dev-console/src/components/import/import-validation-utils.ts b/frontend/packages/dev-console/src/components/import/import-validation-utils.ts index 5ee468eecd0..ba919c2eb3b 100644 --- a/frontend/packages/dev-console/src/components/import/import-validation-utils.ts +++ b/frontend/packages/dev-console/src/components/import/import-validation-utils.ts @@ -29,15 +29,7 @@ const pipelinesAccessTokenValidationSchema = (t: TFunction) => .when('gitProvider', ([gitProvider], schema) => gitProvider === GitProvider.BITBUCKET ? schema.shape({ - user: yup - .string() - .matches(nameRegex, { - message: t( - 'devconsole~Name must consist of lower-case letters, numbers and hyphens. It must start with a letter and end with a letter or number.', - ), - excludeEmptyString: true, - }) - .required(t('devconsole~Required')), + user: yup.string().required(t('devconsole~Required')), }) : schema, ) diff --git a/frontend/packages/dev-console/src/components/pipeline-section/pipeline/WebhookSection.tsx b/frontend/packages/dev-console/src/components/pipeline-section/pipeline/WebhookSection.tsx index 2d286f99a2b..3faa858cabb 100644 --- a/frontend/packages/dev-console/src/components/pipeline-section/pipeline/WebhookSection.tsx +++ b/frontend/packages/dev-console/src/components/pipeline-section/pipeline/WebhookSection.tsx @@ -62,9 +62,8 @@ const WebhookSection: FC = ({ pac, formContextField }) => const fieldPrefix = formContextField ? `${formContextField}.` : ''; const { gitProvider, webhook } = _.get(values, formContextField) || values; const [controllerUrl, setControllerUrl] = useState(''); - const [webhookSecret, setWebhookSecret] = useState(''); + const webhookSecret = webhook?.secret ?? ''; const { t } = useTranslation('devconsole'); - useEffect(() => { const ctlUrl = pac?.data?.['controller-url']; if (ctlUrl) { @@ -100,7 +99,7 @@ const WebhookSection: FC = ({ pac, formContextField }) => ); const generateWebhookSecret = () => { - setWebhookSecret(generateSecret()); + setFieldValue(`${fieldPrefix}webhook.secret`, generateSecret()); }; const getPermssionSectionHeading = (git: GitProvider) => { @@ -226,7 +225,7 @@ const WebhookSection: FC = ({ pac, formContextField }) => setFieldValue(`${fieldPrefix}webhook.secretObj`, res); const secret = res?.data['webhook.secret']; if (secret) { - setWebhookSecret(Base64.decode(secret)); + setFieldValue(`${fieldPrefix}webhook.secret`, Base64.decode(secret)); } } }} diff --git a/frontend/packages/dev-console/src/components/pipeline-section/pipeline/utils.ts b/frontend/packages/dev-console/src/components/pipeline-section/pipeline/utils.ts index af48e7d0c66..50b0ee0dca7 100644 --- a/frontend/packages/dev-console/src/components/pipeline-section/pipeline/utils.ts +++ b/frontend/packages/dev-console/src/components/pipeline-section/pipeline/utils.ts @@ -202,7 +202,6 @@ export const createRemoteWebhook = async ( } else { authToken = method === 'token' ? token : Base64.decode(secretObj?.data?.['provider.token']); } - const webhookCreationStatus = await gitService.createRepoWebhook( authToken, webhookURL, diff --git a/frontend/packages/git-service/src/services/base-service.ts b/frontend/packages/git-service/src/services/base-service.ts index b922265e981..ebefecd6663 100644 --- a/frontend/packages/git-service/src/services/base-service.ts +++ b/frontend/packages/git-service/src/services/base-service.ts @@ -128,3 +128,11 @@ export abstract class BaseService { } } } + +export const headersToRecord = (headers: Headers): Record => { + const result: Record = {}; + headers.forEach((value, key) => { + result[key] = [value]; + }); + return result; +}; diff --git a/frontend/packages/git-service/src/services/bitbucket-service.ts b/frontend/packages/git-service/src/services/bitbucket-service.ts index bb0a2a78225..44e3c14fb02 100644 --- a/frontend/packages/git-service/src/services/bitbucket-service.ts +++ b/frontend/packages/git-service/src/services/bitbucket-service.ts @@ -6,7 +6,7 @@ import type { GitSource } from '../types/git'; import { SecretType } from '../types/git'; import type { RepoMetadata, BranchList, RepoLanguageList, RepoFileList } from '../types/repo'; import { RepoStatus } from '../types/repo'; -import { BaseService } from './base-service'; +import { BaseService, headersToRecord } from './base-service'; type BBWebhookBody = { url: string; @@ -16,7 +16,7 @@ type BBWebhookBody = { }; type BitbucketWebhookRequest = { - headers: Headers; + headers: Record; isServer: boolean; baseURL: string; owner: string; @@ -233,7 +233,7 @@ export class BitbucketService extends BaseService { }; const webhookRequestBody: BitbucketWebhookRequest = { - headers, + headers: headersToRecord(headers), isServer: this.isServer, baseURL: this.baseURL, owner: this.metadata.owner, diff --git a/frontend/packages/git-service/src/services/github-service.ts b/frontend/packages/git-service/src/services/github-service.ts index 656b80146ae..6e0c9452cd9 100644 --- a/frontend/packages/git-service/src/services/github-service.ts +++ b/frontend/packages/git-service/src/services/github-service.ts @@ -7,7 +7,7 @@ import type { GitSource } from '../types/git'; import { SecretType } from '../types/git'; import type { RepoMetadata, BranchList, RepoLanguageList, RepoFileList } from '../types/repo'; import { RepoStatus } from '../types/repo'; -import { BaseService } from './base-service'; +import { BaseService, headersToRecord } from './base-service'; type GHWebhookBody = { name: string; @@ -22,7 +22,7 @@ type GHWebhookBody = { }; type GithubWebhookRequest = { - headers: Headers; + headers: Record; hostName: string; owner: string; repoName: string; @@ -182,7 +182,7 @@ export class GithubService extends BaseService { : `${this.metadata.host}/api/v3`; const webhookRequestBody: GithubWebhookRequest = { - headers, + headers: headersToRecord(headers), hostName: AddWebhookBaseURL, owner: this.metadata.owner, repoName: this.metadata.repoName, diff --git a/frontend/packages/git-service/src/services/gitlab-service.ts b/frontend/packages/git-service/src/services/gitlab-service.ts index c6770a581d2..f6f7476bcec 100644 --- a/frontend/packages/git-service/src/services/gitlab-service.ts +++ b/frontend/packages/git-service/src/services/gitlab-service.ts @@ -8,7 +8,7 @@ import type { GitSource } from '../types/git'; import { SecretType } from '../types/git'; import type { RepoMetadata, BranchList, RepoLanguageList, RepoFileList } from '../types/repo'; import { RepoStatus } from '../types/repo'; -import { BaseService } from './base-service'; +import { BaseService, headersToRecord } from './base-service'; type GitlabRepo = { id: number; @@ -24,7 +24,7 @@ type GLWebhookBody = { }; type GitlabWebhookRequest = { - headers: Headers; + headers: Record; hostName: string; projectID: string; body: GLWebhookBody; @@ -208,7 +208,7 @@ export class GitlabService extends BaseService { }; const webhookRequestBody: GitlabWebhookRequest = { - headers, + headers: headersToRecord(headers), hostName: this.metadata.host, projectID: projectID.toString(), body,