Fix: [code-1731] add vulnerabilityScanning behind ff for code and gitness (#1191)

This commit is contained in:
Ritik Kapoor 2024-04-17 13:41:35 +00:00 committed by Harness
parent 3c0a494b16
commit b55fce19cd
2 changed files with 77 additions and 73 deletions

View File

@ -37,8 +37,7 @@ import css from './RepositorySettings.module.scss'
export default function RepositorySettings() { export default function RepositorySettings() {
const { repoMetadata, error, loading, refetch, settingSection, gitRef, resourcePath } = useGetRepositoryMetadata() const { repoMetadata, error, loading, refetch, settingSection, gitRef, resourcePath } = useGetRepositoryMetadata()
const history = useHistory() const history = useHistory()
const { routes, hooks, standalone } = useAppContext() const { routes } = useAppContext()
const { SEMANTIC_SEARCH_ENABLED } = hooks?.useFeatureFlags()
const [activeTab, setActiveTab] = React.useState<string>(settingSection || SettingsTab.general) const [activeTab, setActiveTab] = React.useState<string>(settingSection || SettingsTab.general)
const { getString } = useStrings() const { getString } = useStrings()
const { isRepositoryEmpty } = useGetResourceContent({ const { isRepositoryEmpty } = useGetResourceContent({
@ -67,6 +66,11 @@ export default function RepositorySettings() {
id: SettingsTab.branchProtection, id: SettingsTab.branchProtection,
title: getString('branchProtection.title'), title: getString('branchProtection.title'),
panel: <BranchProtectionListing activeTab={activeTab} /> panel: <BranchProtectionListing activeTab={activeTab} />
},
{
id: SettingsTab.security,
title: getString('security'),
panel: <SecurityScanSettings repoMetadata={repoMetadata} activeTab={activeTab} />
} }
// { // {
// id: SettingsTab.webhooks, // id: SettingsTab.webhooks,
@ -78,13 +82,6 @@ export default function RepositorySettings() {
// ) // )
// } // }
] ]
if (SEMANTIC_SEARCH_ENABLED && !standalone) {
tabListArray.push({
id: SettingsTab.security,
title: getString('security'),
panel: <SecurityScanSettings repoMetadata={repoMetadata} activeTab={activeTab} />
})
}
return ( return (
<Container className={css.main}> <Container className={css.main}>
<RepositoryPageHeader <RepositoryPageHeader

View File

@ -28,6 +28,7 @@ import {
} from '@harnessio/uicore' } from '@harnessio/uicore'
import cx from 'classnames' import cx from 'classnames'
import { useGet, useMutate } from 'restful-react' import { useGet, useMutate } from 'restful-react'
import { Render } from 'react-jsx-match'
import type { FormikState } from 'formik' import type { FormikState } from 'formik'
import { Color, FontVariation } from '@harnessio/design-system' import { Color, FontVariation } from '@harnessio/design-system'
import type { TypesRepository } from 'services/code' import type { TypesRepository } from 'services/code'
@ -53,6 +54,7 @@ interface FormData {
const SecurityScanSettings = (props: SecurityScanProps) => { const SecurityScanSettings = (props: SecurityScanProps) => {
const { repoMetadata, activeTab } = props const { repoMetadata, activeTab } = props
const { hooks, standalone, routingId } = useAppContext() const { hooks, standalone, routingId } = useAppContext()
const { CODE_SECURITY_SCANNING_ON_PUSH } = hooks?.useFeatureFlags()
const { getString } = useStrings() const { getString } = useStrings()
const { showError, showSuccess } = useToaster() const { showError, showSuccess } = useToaster()
const space = useGetSpaceParam() const space = useGetSpaceParam()
@ -142,71 +144,76 @@ const SecurityScanSettings = (props: SecurityScanProps) => {
<Text className={css.text}>{getString('securitySettings.scanningSecretDesc')}</Text> <Text className={css.text}>{getString('securitySettings.scanningSecretDesc')}</Text>
</Layout.Horizontal> </Layout.Horizontal>
</Container> </Container>
<Container padding="medium" margin="medium" className={css.generalContainer}> <Render when={!standalone && CODE_SECURITY_SCANNING_ON_PUSH}>
<Layout.Horizontal <Container padding="medium" margin="medium" className={css.generalContainer}>
spacing={'medium'} <Layout.Horizontal
padding={{ left: 'medium' }} spacing={'medium'}
flex={{ justifyContent: 'flex-start' }} padding={{ left: 'medium' }}
className={cx(formik.values.vulnerabilityScanEnable ? css.expand : css.collapse)}> flex={{ justifyContent: 'flex-start' }}
<FormInput.Toggle className={cx(formik.values.vulnerabilityScanEnable ? css.expand : css.collapse)}>
{...permissionProps(permPushResult, standalone)} <FormInput.Toggle
key={'vulnerabilityScanEnable'} {...permissionProps(permPushResult, standalone)}
label="" key={'vulnerabilityScanEnable'}
style={{ margin: '0px' }} label=""
name="vulnerabilityScanEnable"></FormInput.Toggle> style={{ margin: '0px' }}
<Layout.Vertical padding={{ left: 'medium' }}> name="vulnerabilityScanEnable"></FormInput.Toggle>
<Container className={cx(formik.values.vulnerabilityScanEnable && css.toggle)}> <Layout.Vertical padding={{ left: 'medium' }}>
<Layout.Horizontal spacing={'medium'} flex={{ alignItems: 'center' }}> <Container className={cx(formik.values.vulnerabilityScanEnable && css.toggle)}>
<Text className={css.title}>{getString('securitySettings.vulnerabilityScanning')}</Text> <Layout.Horizontal spacing={'medium'} flex={{ alignItems: 'center' }}>
<Text className={css.text}>{getString('securitySettings.vulnerabilityScanningDesc')}</Text> <Text className={css.title}>{getString('securitySettings.vulnerabilityScanning')}</Text>
</Layout.Horizontal> <Text className={css.text}>
</Container> {getString('securitySettings.vulnerabilityScanningDesc')}
{formik.values.vulnerabilityScanEnable && ( </Text>
<Container margin={{ top: 'medium' }}> </Layout.Horizontal>
<FormInput.RadioGroup
{...permissionProps(permPushResult, standalone)}
name="vulnerabilityScanningType"
key={formik.values.vulnerabilityScanningType}
label=""
className={css.radioContainer}
items={[
{
label: (
<Container>
<Layout.Horizontal spacing={'small'}>
<Text font={{ variation: FontVariation.SMALL_SEMI }}>
{getString('securitySettings.detect')}
</Text>
<Text font={{ variation: FontVariation.SMALL }} color={Color.GREY_400}>
{getString('securitySettings.detectDesc')}
</Text>
</Layout.Horizontal>
</Container>
),
value: VulnerabilityScanningType.DETECT
},
{
label: (
<Container>
<Layout.Horizontal spacing={'small'}>
<Text font={{ variation: FontVariation.SMALL_SEMI }}>
{getString('securitySettings.block')}
</Text>
<Text font={{ variation: FontVariation.SMALL }} color={Color.GREY_400}>
{getString('securitySettings.blockDesc')}
</Text>
</Layout.Horizontal>
</Container>
),
value: VulnerabilityScanningType.BLOCK
}
]}
/>
</Container> </Container>
)}
</Layout.Vertical> {formik.values.vulnerabilityScanEnable && (
</Layout.Horizontal> <Container margin={{ top: 'medium' }}>
</Container> <FormInput.RadioGroup
{...permissionProps(permPushResult, standalone)}
name="vulnerabilityScanningType"
key={formik.values.vulnerabilityScanningType}
label=""
className={css.radioContainer}
items={[
{
label: (
<Container>
<Layout.Horizontal spacing={'small'}>
<Text font={{ variation: FontVariation.SMALL_SEMI }}>
{getString('securitySettings.detect')}
</Text>
<Text font={{ variation: FontVariation.SMALL }} color={Color.GREY_400}>
{getString('securitySettings.detectDesc')}
</Text>
</Layout.Horizontal>
</Container>
),
value: VulnerabilityScanningType.DETECT
},
{
label: (
<Container>
<Layout.Horizontal spacing={'small'}>
<Text font={{ variation: FontVariation.SMALL_SEMI }}>
{getString('securitySettings.block')}
</Text>
<Text font={{ variation: FontVariation.SMALL }} color={Color.GREY_400}>
{getString('securitySettings.blockDesc')}
</Text>
</Layout.Horizontal>
</Container>
),
value: VulnerabilityScanningType.BLOCK
}
]}
/>
</Container>
)}
</Layout.Vertical>
</Layout.Horizontal>
</Container>
</Render>
</Layout.Vertical> </Layout.Vertical>
<Layout.Horizontal margin={'medium'} spacing={'medium'}> <Layout.Horizontal margin={'medium'} spacing={'medium'}>
<Button <Button