Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions apis/cluster/projects/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 43 additions & 0 deletions apis/cluster/projects/v1alpha1/zz_project_types.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 43 additions & 0 deletions apis/namespaced/projects/v1alpha1/project_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,14 @@ type ProjectParameters struct {
// +optional
PushRules *PushRules `json:"pushRules,omitempty"`

// Approvals configures the project's merge request approval
// configuration. Fields left unset are not managed by this provider.
//
// GitLab API docs:
// https://docs.gitlab.com/api/merge_request_approvals/#update-approval-configuration-for-a-project
// +optional
Approvals *Approvals `json:"approvals,omitempty"`

// Enable Delete source branch option by default for all new merge requests.
// +optional
RemoveSourceBranchAfterMerge *bool `json:"removeSourceBranchAfterMerge,omitempty"`
Expand Down Expand Up @@ -509,6 +517,41 @@ type PushRules struct {
RejectNonDCOCommits *bool `json:"rejectNonDcoCommits,omitempty"`
}

// Approvals configures a project's merge request approval configuration.
//
// GitLab API docs:
// https://docs.gitlab.com/api/merge_request_approvals/#update-approval-configuration-for-a-project
type Approvals struct {
// ResetApprovalsOnPush resets approvals on a new push to the merge request.
// +optional
ResetApprovalsOnPush *bool `json:"resetApprovalsOnPush,omitempty"`

// DisableOverridingApproversPerMergeRequest prevents users from overriding
// approvers per merge request.
// +optional
DisableOverridingApproversPerMergeRequest *bool `json:"disableOverridingApproversPerMergeRequest,omitempty"`

// MergeRequestsAuthorApproval allows merge request authors to self-approve
// their own merge requests.
// +optional
MergeRequestsAuthorApproval *bool `json:"mergeRequestsAuthorApproval,omitempty"`

// MergeRequestsDisableCommittersApproval prevents committers from
// approving their own merge requests.
// +optional
MergeRequestsDisableCommittersApproval *bool `json:"mergeRequestsDisableCommittersApproval,omitempty"`

// RequireReauthenticationToApprove requires the reauthentication password
// to approve merge requests.
// +optional
RequireReauthenticationToApprove *bool `json:"requireReauthenticationToApprove,omitempty"`

// SelectiveCodeOwnerRemovals allows removing individual code owner
// approval requirements for a merge request.
// +optional
SelectiveCodeOwnerRemovals *bool `json:"selectiveCodeOwnerRemovals,omitempty"`
}

// ProjectNamespace represents a project namespace.
type ProjectNamespace struct {
ID int64 `json:"ID"`
Expand Down
50 changes: 50 additions & 0 deletions apis/namespaced/projects/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions examples/projects/project.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,15 @@ spec:
name: example-group
description: "example project description"
buildGitStrategy: "fetch"
# Merge request approval configuration for the project. Fields left
# unset here are not managed by this provider.
approvals:
resetApprovalsOnPush: true
disableOverridingApproversPerMergeRequest: false
mergeRequestsAuthorApproval: false
mergeRequestsDisableCommittersApproval: true
requireReauthenticationToApprove: true
selectiveCodeOwnerRemovals: false
providerConfigRef:
name: gitlab-provider
kind: ProviderConfig
Expand Down
38 changes: 38 additions & 0 deletions package/crds/projects.gitlab.crossplane.io_projects.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,44 @@ spec:
description: Set whether or not merge requests can be merged with
skipped jobs.
type: boolean
approvals:
description: |-
Approvals configures the project's merge request approval
configuration. Fields left unset are not managed by this provider.

GitLab API docs:
https://docs.gitlab.com/api/merge_request_approvals/#update-approval-configuration-for-a-project
properties:
disableOverridingApproversPerMergeRequest:
description: |-
DisableOverridingApproversPerMergeRequest prevents users from overriding
approvers per merge request.
type: boolean
mergeRequestsAuthorApproval:
description: |-
MergeRequestsAuthorApproval allows merge request authors to self-approve
their own merge requests.
type: boolean
mergeRequestsDisableCommittersApproval:
description: |-
MergeRequestsDisableCommittersApproval prevents committers from
approving their own merge requests.
type: boolean
requireReauthenticationToApprove:
description: |-
RequireReauthenticationToApprove requires the reauthentication password
to approve merge requests.
type: boolean
resetApprovalsOnPush:
description: ResetApprovalsOnPush resets approvals on a new
push to the merge request.
type: boolean
selectiveCodeOwnerRemovals:
description: |-
SelectiveCodeOwnerRemovals allows removing individual code owner
approval requirements for a merge request.
type: boolean
type: object
approvalsBeforeMerge:
description: |-
How many approvers should approve merge request by default.More actions
Expand Down
38 changes: 38 additions & 0 deletions package/crds/projects.gitlab.m.crossplane.io_projects.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,44 @@ spec:
description: Set whether or not merge requests can be merged with
skipped jobs.
type: boolean
approvals:
description: |-
Approvals configures the project's merge request approval
configuration. Fields left unset are not managed by this provider.

GitLab API docs:
https://docs.gitlab.com/api/merge_request_approvals/#update-approval-configuration-for-a-project
properties:
disableOverridingApproversPerMergeRequest:
description: |-
DisableOverridingApproversPerMergeRequest prevents users from overriding
approvers per merge request.
type: boolean
mergeRequestsAuthorApproval:
description: |-
MergeRequestsAuthorApproval allows merge request authors to self-approve
their own merge requests.
type: boolean
mergeRequestsDisableCommittersApproval:
description: |-
MergeRequestsDisableCommittersApproval prevents committers from
approving their own merge requests.
type: boolean
requireReauthenticationToApprove:
description: |-
RequireReauthenticationToApprove requires the reauthentication password
to approve merge requests.
type: boolean
resetApprovalsOnPush:
description: ResetApprovalsOnPush resets approvals on a new
push to the merge request.
type: boolean
selectiveCodeOwnerRemovals:
description: |-
SelectiveCodeOwnerRemovals allows removing individual code owner
approval requirements for a merge request.
type: boolean
type: object
approvalsBeforeMerge:
description: |-
How many approvers should approve merge request by default.More actions
Expand Down
13 changes: 13 additions & 0 deletions pkg/cluster/clients/projects/fake/zz_fake.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading