Project Level Mr Approvals
The gitlab_project_level_mr_approval_rule
resource allows to manage the lifecycle of a Merge Request-level approval rule.
This resource requires a GitLab Enterprise instance. Upstream API: GitLab REST API docs
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as gitlab from "@pulumi/gitlab";
const fooProject = new gitlab.Project("fooProject", {description: "My example project"});
const fooProjectLevelMrApprovals = new gitlab.ProjectLevelMrApprovals("fooProjectLevelMrApprovals", {
project: fooProject.id,
resetApprovalsOnPush: true,
disableOverridingApproversPerMergeRequest: false,
mergeRequestsAuthorApproval: false,
mergeRequestsDisableCommittersApproval: true,
});
Content copied to clipboard
import pulumi
import pulumi_gitlab as gitlab
foo_project = gitlab.Project("fooProject", description="My example project")
foo_project_level_mr_approvals = gitlab.ProjectLevelMrApprovals("fooProjectLevelMrApprovals",
project=foo_project.id,
reset_approvals_on_push=True,
disable_overriding_approvers_per_merge_request=False,
merge_requests_author_approval=False,
merge_requests_disable_committers_approval=True)
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using GitLab = Pulumi.GitLab;
return await Deployment.RunAsync(() =>
{
var fooProject = new GitLab.Project("fooProject", new()
{
Description = "My example project",
});
var fooProjectLevelMrApprovals = new GitLab.ProjectLevelMrApprovals("fooProjectLevelMrApprovals", new()
{
Project = fooProject.Id,
ResetApprovalsOnPush = true,
DisableOverridingApproversPerMergeRequest = false,
MergeRequestsAuthorApproval = false,
MergeRequestsDisableCommittersApproval = true,
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-gitlab/sdk/v6/go/gitlab"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
fooProject, err := gitlab.NewProject(ctx, "fooProject", &gitlab.ProjectArgs{
Description: pulumi.String("My example project"),
})
if err != nil {
return err
}
_, err = gitlab.NewProjectLevelMrApprovals(ctx, "fooProjectLevelMrApprovals", &gitlab.ProjectLevelMrApprovalsArgs{
Project: fooProject.ID(),
ResetApprovalsOnPush: pulumi.Bool(true),
DisableOverridingApproversPerMergeRequest: pulumi.Bool(false),
MergeRequestsAuthorApproval: pulumi.Bool(false),
MergeRequestsDisableCommittersApproval: pulumi.Bool(true),
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gitlab.Project;
import com.pulumi.gitlab.ProjectArgs;
import com.pulumi.gitlab.ProjectLevelMrApprovals;
import com.pulumi.gitlab.ProjectLevelMrApprovalsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var fooProject = new Project("fooProject", ProjectArgs.builder()
.description("My example project")
.build());
var fooProjectLevelMrApprovals = new ProjectLevelMrApprovals("fooProjectLevelMrApprovals", ProjectLevelMrApprovalsArgs.builder()
.project(fooProject.id())
.resetApprovalsOnPush(true)
.disableOverridingApproversPerMergeRequest(false)
.mergeRequestsAuthorApproval(false)
.mergeRequestsDisableCommittersApproval(true)
.build());
}
}
Content copied to clipboard
resources:
fooProject:
type: gitlab:Project
properties:
description: My example project
fooProjectLevelMrApprovals:
type: gitlab:ProjectLevelMrApprovals
properties:
project: ${fooProject.id}
resetApprovalsOnPush: true
disableOverridingApproversPerMergeRequest: false
mergeRequestsAuthorApproval: false
mergeRequestsDisableCommittersApproval: true
Content copied to clipboard
Import
$ pulumi import gitlab:index/projectLevelMrApprovals:ProjectLevelMrApprovals You can import an approval configuration state using `<resource> <project_id>`.
Content copied to clipboard
For example:
$ pulumi import gitlab:index/projectLevelMrApprovals:ProjectLevelMrApprovals foo 1234
Content copied to clipboard
Properties
Link copied to clipboard
Set to true
to disable overriding approvers per merge request.
Link copied to clipboard
Set to true
to allow merge requests authors to approve their own merge requests.
Link copied to clipboard
Set to true
to disable merge request committers from approving their own merge requests.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Set to true
to require authentication to approve merge requests.
Link copied to clipboard
Set to true
to remove all approvals in a merge request when new commits are pushed to its source branch. Default is true
.
Link copied to clipboard
Reset approvals from Code Owners if their files changed. Can be enabled only if resetapprovalson_push is disabled.