diff --git a/src/components/LinkCommit.tsx b/src/components/LinkCommit.tsx index 3e689fc2..b9c6fdbf 100644 --- a/src/components/LinkCommit.tsx +++ b/src/components/LinkCommit.tsx @@ -3,23 +3,21 @@ import React from 'react' import { useTranslation } from 'react-i18next' interface LinkExtendedProps extends LinkProps { - domainSuffix?: string label?: string - repo?: string + repo: string sha: string short?: boolean } -export default function ({ domainSuffix, label, sha, short = true, ...props }: LinkExtendedProps): React.ReactElement { +export default function ({ label, repo, sha, short = true, ...props }: LinkExtendedProps): React.ReactElement { const { t } = useTranslation() // END HOOKS - const repo = props.repo ?? `https://gitea.${domainSuffix}/otomi/values` const href = props.href ?? `${repo.replace('.git', '')}/commit/${sha}` const shaShort = sha?.substring(0, 8) const children = props.children ?? short ? shaShort : sha const title = props.title ?? t(`Follow to view commit with sha {{sha}}`, { sha }) const color = props.color ?? 'secondary' - const insert = { ...props, children, color, href, repo, title } + const insert = { ...props, children, color, href, title } if (label) insert['data-cy'] = `link-commit-${label}` return ( diff --git a/src/components/Versions.tsx b/src/components/Versions.tsx index fe6b45ba..b023c282 100644 --- a/src/components/Versions.tsx +++ b/src/components/Versions.tsx @@ -32,12 +32,7 @@ function isRelease(version: any): boolean { } export default function (): React.ReactElement { - const { - settings: { - cluster: { domainSuffix }, - }, - versions, - } = useSession() + const { settings, versions } = useSession() const { classes } = useStyles() const { t } = useTranslation() const { data: k8sVersion } = useGetK8SVersionQuery() @@ -48,7 +43,7 @@ export default function (): React.ReactElement { [t('Otomi Core')]: versions.core, [t('Otomi API')]: versions.api, [t('Otomi Console')]: versions.console, - [t('Otomi Values')]: , + [t('Otomi Values')]: , } const version = /^\d/.test(clusterLegend['Otomi Core']) ? `v${clusterLegend['Otomi Core']}` diff --git a/src/pages/builds/create-edit/BuildsCreateEditPage.tsx b/src/pages/builds/create-edit/BuildsCreateEditPage.tsx index 34ef513a..2d13160a 100644 --- a/src/pages/builds/create-edit/BuildsCreateEditPage.tsx +++ b/src/pages/builds/create-edit/BuildsCreateEditPage.tsx @@ -60,6 +60,7 @@ export default function BuildsCreateEditPage({ settings: { cluster: { domainSuffix }, }, + appsEnabled, } = useSession() const options = [ @@ -86,6 +87,11 @@ export default function BuildsCreateEditPage({ { skip: !repoName }, ) + const filteredCodeRepos = useMemo( + () => (codeRepos || []).filter((cr) => appsEnabled?.gitea || cr?.spec?.gitService !== 'gitea'), + [codeRepos, appsEnabled?.gitea], + ) + const isDirty = useAppSelector(({ global: { isDirty } }) => isDirty) useEffect(() => { if (isDirty !== false) return @@ -238,10 +244,10 @@ export default function BuildsCreateEditPage({ label='Repository' loading={isLoadingCodeRepos} - options={codeRepos || []} + options={filteredCodeRepos} getOptionLabel={(codeRepo) => codeRepo.metadata.name} placeholder='Select a repository' - value={(codeRepos || []).find((cr) => cr?.spec?.repositoryUrl === repoField.value) || null} + value={filteredCodeRepos.find((cr) => cr?.spec?.repositoryUrl === repoField.value) || null} onChange={(_e, repo) => { repoField.onChange(repo?.spec?.repositoryUrl ?? '') if (!repo) return @@ -350,7 +356,7 @@ export default function BuildsCreateEditPage({ Extra options - {gitService === 'gitea' && ( + {appsEnabled?.gitea && gitService === 'gitea' && ( (null) @@ -68,7 +69,7 @@ export default function CodeRepositoriesCreateEditPage({ const [gitProvider, setGitProvider] = useState<'gitea' | 'github' | 'gitlab' | null>(null) const options = [ - { value: 'gitea', label: 'Gitea', imgSrc: '/logos/gitea_logo.svg' }, + ...(appsEnabled?.gitea ? [{ value: 'gitea', label: 'Gitea', imgSrc: '/logos/gitea_logo.svg' }] : []), { value: 'github', label: 'GitHub', imgSrc: '/logos/github_logo.svg' }, { value: 'gitlab', label: 'GitLab', imgSrc: '/logos/gitlab_logo.svg' }, ] @@ -105,7 +106,7 @@ export default function CodeRepositoriesCreateEditPage({ isLoading: isLoadingRepoUrls, isFetching: isFetchingRepoUrls, refetch: refetchRepoUrls, - } = useGetInternalRepoUrlsQuery({ teamId }, { skip: !gitProvider }) + } = useGetInternalRepoUrlsQuery({ teamId }, { skip: !gitProvider || !appsEnabled?.gitea }) const { data: testRepoConnect, isFetching: isFetchingTestRepoConnect } = useTestRepoConnectQuery( { url: testConnectUrl, teamId, secret: secretName }, @@ -131,7 +132,7 @@ export default function CodeRepositoriesCreateEditPage({ labels: { 'apl.io/teamId': teamId }, }, spec: { - gitService: 'gitea', + gitService: appsEnabled?.gitea ? 'gitea' : 'github', repositoryUrl: '', private: false, secret: undefined, @@ -178,11 +179,11 @@ export default function CodeRepositoriesCreateEditPage({ if (data) { reset(data) setGitProvider(watch('spec.gitService')) - } else setGitProvider('gitea') + } else setGitProvider(appsEnabled?.gitea ? 'gitea' : 'github') if (!isEmpty(prefilledData)) { reset(defaultValues) - setGitProvider(defaultValues.spec?.gitService ?? 'gitea') + setGitProvider(defaultValues.spec?.gitService ?? (appsEnabled?.gitea ? 'gitea' : 'github')) } }, [data, prefilledData, defaultValues, reset]) @@ -247,7 +248,11 @@ export default function CodeRepositoriesCreateEditPage({ if (!mutating && (isSuccessCreate || isSuccessUpdate || isSuccessDelete)) return - const loading = isLoading || isLoadingTeamSecrets || isLoadingRepoUrls || (codeRepositoryName && !internalRepoUrls) + const loading = + isLoading || + isLoadingTeamSecrets || + isLoadingRepoUrls || + (appsEnabled?.gitea && codeRepositoryName && !internalRepoUrls) const error = isError || isErrorTeamSecrets if (loading) return diff --git a/src/redux/otomiApi.ts b/src/redux/otomiApi.ts index fa349a2e..252b0a6a 100644 --- a/src/redux/otomiApi.ts +++ b/src/redux/otomiApi.ts @@ -5576,6 +5576,10 @@ export type GetSettingsInfoApiResponse = /** status 200 The request is successfu isPreInstalled?: boolean aiEnabled?: boolean hasExternalIDP?: boolean + git?: { + repoUrl?: string + branch?: string + } } smtp?: { smarthost?: string