Split repo trusted setting (#4025)

This commit is contained in:
qwerty287
2024-11-01 22:37:31 +02:00
committed by GitHub
parent 383bfbb6de
commit 29474fc7d9
26 changed files with 373 additions and 193 deletions

View File

@@ -98,7 +98,18 @@
},
"trusted": {
"trusted": "Trusted",
"desc": "Underlying pipeline containers get access to escalated capabilities (like mounting volumes)."
"network": {
"network": "Network",
"desc": "Underlying pipeline containers get access to network privileges like changing DNS."
},
"volumes": {
"volumes": "Volumes",
"desc": "Underlying pipeline containers get access to volume privileges."
},
"security": {
"security": "Security",
"desc": "Underlying pipeline containers get access to security privileges."
}
},
"visibility": {
"visibility": "Project visibility",

View File

@@ -45,11 +45,27 @@
:label="$t('repo.settings.general.netrc_only_trusted.netrc_only_trusted')"
:description="$t('repo.settings.general.netrc_only_trusted.desc')"
/>
</InputField>
<InputField
v-if="user?.admin"
docs-url="docs/usage/project-settings#project-settings-1"
:label="$t('repo.settings.general.trusted.trusted')"
>
<Checkbox
v-if="user?.admin"
v-model="repoSettings.trusted"
:label="$t('repo.settings.general.trusted.trusted')"
:description="$t('repo.settings.general.trusted.desc')"
v-model="repoSettings.trusted.network"
:label="$t('repo.settings.general.trusted.network.network')"
:description="$t('repo.settings.general.trusted.network.desc')"
/>
<Checkbox
v-model="repoSettings.trusted.volumes"
:label="$t('repo.settings.general.trusted.volumes.volumes')"
:description="$t('repo.settings.general.trusted.volumes.desc')"
/>
<Checkbox
v-model="repoSettings.trusted.security"
:label="$t('repo.settings.general.trusted.security.security')"
:description="$t('repo.settings.general.trusted.security.desc')"
/>
</InputField>

View File

@@ -50,7 +50,7 @@ export interface Repo {
// Whether the repository has trusted access for pipelines.
// If the repository is trusted then the host network can be used and
// volumes can be created.
trusted: boolean;
trusted: RepoTrusted;
// x-dart-type: Duration
// The amount of time in minutes before the pipeline is killed.
@@ -102,3 +102,9 @@ export interface RepoPermissions {
admin: boolean;
synced: number;
}
export interface RepoTrusted {
network: boolean;
volumes: boolean;
security: boolean;
}