mirror of
https://github.com/harness/drone.git
synced 2025-05-20 19:09:59 +08:00
Fix: [code-1731] add vulnerabilityScanning behind ff for code and gitness (#1191)
This commit is contained in:
parent
3c0a494b16
commit
b55fce19cd
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user