RepositoryRulesetArgs

data class RepositoryRulesetArgs(val bypassActors: Output<List<RepositoryRulesetBypassActorArgs>>? = null, val conditions: Output<RepositoryRulesetConditionsArgs>? = null, val enforcement: Output<String>? = null, val name: Output<String>? = null, val repository: Output<String>? = null, val rules: Output<RepositoryRulesetRulesArgs>? = null, val target: Output<String>? = null) : ConvertibleToJava<RepositoryRulesetArgs>

Creates a GitHub repository ruleset. This resource allows you to create and manage rulesets on the repository level. When applied, a new ruleset will be created. When destroyed, that ruleset will be removed.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as github from "@pulumi/github";
const example = new github.Repository("example", {
name: "example",
description: "Example repository",
});
const exampleRepositoryRuleset = new github.RepositoryRuleset("example", {
name: "example",
repository: example.name,
target: "branch",
enforcement: "active",
conditions: {
refName: {
includes: ["~ALL"],
excludes: [],
},
},
bypassActors: [{
actorId: 13473,
actorType: "Integration",
bypassMode: "always",
}],
rules: {
creation: true,
update: true,
deletion: true,
requiredLinearHistory: true,
requiredSignatures: true,
requiredDeployments: {
requiredDeploymentEnvironments: ["test"],
},
},
});
import pulumi
import pulumi_github as github
example = github.Repository("example",
name="example",
description="Example repository")
example_repository_ruleset = github.RepositoryRuleset("example",
name="example",
repository=example.name,
target="branch",
enforcement="active",
conditions={
"ref_name": {
"includes": ["~ALL"],
"excludes": [],
},
},
bypass_actors=[{
"actor_id": 13473,
"actor_type": "Integration",
"bypass_mode": "always",
}],
rules={
"creation": True,
"update": True,
"deletion": True,
"required_linear_history": True,
"required_signatures": True,
"required_deployments": {
"required_deployment_environments": ["test"],
},
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Github = Pulumi.Github;
return await Deployment.RunAsync(() =>
{
var example = new Github.Repository("example", new()
{
Name = "example",
Description = "Example repository",
});
var exampleRepositoryRuleset = new Github.RepositoryRuleset("example", new()
{
Name = "example",
Repository = example.Name,
Target = "branch",
Enforcement = "active",
Conditions = new Github.Inputs.RepositoryRulesetConditionsArgs
{
RefName = new Github.Inputs.RepositoryRulesetConditionsRefNameArgs
{
Includes = new[]
{
"~ALL",
},
Excludes = new() { },
},
},
BypassActors = new[]
{
new Github.Inputs.RepositoryRulesetBypassActorArgs
{
ActorId = 13473,
ActorType = "Integration",
BypassMode = "always",
},
},
Rules = new Github.Inputs.RepositoryRulesetRulesArgs
{
Creation = true,
Update = true,
Deletion = true,
RequiredLinearHistory = true,
RequiredSignatures = true,
RequiredDeployments = new Github.Inputs.RepositoryRulesetRulesRequiredDeploymentsArgs
{
RequiredDeploymentEnvironments = new[]
{
"test",
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-github/sdk/v6/go/github"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := github.NewRepository(ctx, "example", &github.RepositoryArgs{
Name: pulumi.String("example"),
Description: pulumi.String("Example repository"),
})
if err != nil {
return err
}
_, err = github.NewRepositoryRuleset(ctx, "example", &github.RepositoryRulesetArgs{
Name: pulumi.String("example"),
Repository: example.Name,
Target: pulumi.String("branch"),
Enforcement: pulumi.String("active"),
Conditions: &github.RepositoryRulesetConditionsArgs{
RefName: &github.RepositoryRulesetConditionsRefNameArgs{
Includes: pulumi.StringArray{
pulumi.String("~ALL"),
},
Excludes: pulumi.StringArray{},
},
},
BypassActors: github.RepositoryRulesetBypassActorArray{
&github.RepositoryRulesetBypassActorArgs{
ActorId: pulumi.Int(13473),
ActorType: pulumi.String("Integration"),
BypassMode: pulumi.String("always"),
},
},
Rules: &github.RepositoryRulesetRulesArgs{
Creation: pulumi.Bool(true),
Update: pulumi.Bool(true),
Deletion: pulumi.Bool(true),
RequiredLinearHistory: pulumi.Bool(true),
RequiredSignatures: pulumi.Bool(true),
RequiredDeployments: &github.RepositoryRulesetRulesRequiredDeploymentsArgs{
RequiredDeploymentEnvironments: pulumi.StringArray{
pulumi.String("test"),
},
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.github.Repository;
import com.pulumi.github.RepositoryArgs;
import com.pulumi.github.RepositoryRuleset;
import com.pulumi.github.RepositoryRulesetArgs;
import com.pulumi.github.inputs.RepositoryRulesetConditionsArgs;
import com.pulumi.github.inputs.RepositoryRulesetConditionsRefNameArgs;
import com.pulumi.github.inputs.RepositoryRulesetBypassActorArgs;
import com.pulumi.github.inputs.RepositoryRulesetRulesArgs;
import com.pulumi.github.inputs.RepositoryRulesetRulesRequiredDeploymentsArgs;
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 example = new Repository("example", RepositoryArgs.builder()
.name("example")
.description("Example repository")
.build());
var exampleRepositoryRuleset = new RepositoryRuleset("exampleRepositoryRuleset", RepositoryRulesetArgs.builder()
.name("example")
.repository(example.name())
.target("branch")
.enforcement("active")
.conditions(RepositoryRulesetConditionsArgs.builder()
.refName(RepositoryRulesetConditionsRefNameArgs.builder()
.includes("~ALL")
.excludes()
.build())
.build())
.bypassActors(RepositoryRulesetBypassActorArgs.builder()
.actorId(13473)
.actorType("Integration")
.bypassMode("always")
.build())
.rules(RepositoryRulesetRulesArgs.builder()
.creation(true)
.update(true)
.deletion(true)
.requiredLinearHistory(true)
.requiredSignatures(true)
.requiredDeployments(RepositoryRulesetRulesRequiredDeploymentsArgs.builder()
.requiredDeploymentEnvironments("test")
.build())
.build())
.build());
}
}
resources:
example:
type: github:Repository
properties:
name: example
description: Example repository
exampleRepositoryRuleset:
type: github:RepositoryRuleset
name: example
properties:
name: example
repository: ${example.name}
target: branch
enforcement: active
conditions:
refName:
includes:
- ~ALL
excludes: []
bypassActors:
- actorId: 13473
actorType: Integration
bypassMode: always
rules:
creation: true
update: true
deletion: true
requiredLinearHistory: true
requiredSignatures: true
requiredDeployments:
requiredDeploymentEnvironments:
- test

Import

GitHub Repository Rulesets can be imported using the GitHub repository name and ruleset ID e.g.

$ pulumi import github:index/repositoryRuleset:RepositoryRuleset example example:12345`

Constructors

Link copied to clipboard
constructor(bypassActors: Output<List<RepositoryRulesetBypassActorArgs>>? = null, conditions: Output<RepositoryRulesetConditionsArgs>? = null, enforcement: Output<String>? = null, name: Output<String>? = null, repository: Output<String>? = null, rules: Output<RepositoryRulesetRulesArgs>? = null, target: Output<String>? = null)

Properties

Link copied to clipboard

(Block List) The actors that can bypass the rules in this ruleset. (see below for nested schema)

Link copied to clipboard

(Block List, Max: 1) Parameters for a repository ruleset ref name condition. (see below for nested schema)

Link copied to clipboard
val enforcement: Output<String>? = null

(String) Possible values for Enforcement are disabled, active, evaluate. Note: evaluate is currently only supported for owners of type organization.

Link copied to clipboard
val name: Output<String>? = null

(String) The name of the ruleset.

Link copied to clipboard
val repository: Output<String>? = null

(String) Name of the repository to apply rulset to.

Link copied to clipboard
val rules: Output<RepositoryRulesetRulesArgs>? = null

(Block List, Min: 1, Max: 1) Rules within the ruleset. (see below for nested schema)

Link copied to clipboard
val target: Output<String>? = null

(String) Possible values are branch and tag.

Functions

Link copied to clipboard
open override fun toJava(): RepositoryRulesetArgs