From 43d197fb748b6a74735d9027b7109ed91062af17 Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Thu, 14 Nov 2024 19:31:21 +0000 Subject: [PATCH] chore: Add Kitsune2 repository --- main.go | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/main.go b/main.go index b2b7eef..2601e6d 100644 --- a/main.go +++ b/main.go @@ -326,6 +326,26 @@ func main() { return err } + // + // Kitsune2 + // + kitsune2RepositoryArgs := StandardRepositoryArgs("kitsune2", nil) + kitsune2RepositoryArgs.Description = pulumi.String("p2p / dht communication framework") + kitsune2, err := github.NewRepository(ctx, "kitsune2", &kitsune2RepositoryArgs, pulumi.Import(pulumi.ID("kitsune2"))) + if err != nil { + return err + } + if err = RequireMainAsDefaultBranch(ctx, "kitsune2", kitsune2); err != nil { + return err + } + if err = StandardRepositoryAccess(ctx, "kitsune2", kitsune2); err != nil { + return err + } + kitsune2RepositoryRulesetArgs := DefaultRepositoryRulesetArgs(kitsune2) + if _, err = github.NewRepositoryRuleset(ctx, "kitsune2", &kitsune2RepositoryRulesetArgs); err != nil { + return err + } + return nil }) } @@ -393,3 +413,43 @@ func MigrateDefaultBranchToMain(ctx *pulumi.Context, name string, repository *gi }) return err } + +func DefaultRepositoryRulesetArgs(repository *github.Repository) github.RepositoryRulesetArgs { + return github.RepositoryRulesetArgs{ + Name: pulumi.String("default"), + Repository: repository.Name, + Target: pulumi.String("branch"), + Enforcement: pulumi.String("active"), + Conditions: &github.RepositoryRulesetConditionsArgs{ + RefName: &github.RepositoryRulesetConditionsRefNameArgs{ + Includes: pulumi.StringArray{ + pulumi.String("~DEFAULT_BRANCH"), + }, + Excludes: pulumi.StringArray{}, + }, + }, + Rules: &github.RepositoryRulesetRulesArgs{ + Creation: pulumi.Bool(true), + Update: pulumi.Bool(false), + Deletion: pulumi.Bool(true), + RequiredLinearHistory: pulumi.Bool(true), + RequiredSignatures: pulumi.Bool(false), + PullRequest: &github.RepositoryRulesetRulesPullRequestArgs{ + DismissStaleReviewsOnPush: pulumi.Bool(true), + RequireCodeOwnerReview: pulumi.Bool(false), + RequireLastPushApproval: pulumi.Bool(true), + RequiredApprovingReviewCount: pulumi.Int(1), + RequiredReviewThreadResolution: pulumi.Bool(true), + }, + RequiredStatusChecks: &github.RepositoryRulesetRulesRequiredStatusChecksArgs{ + RequiredChecks: github.RepositoryRulesetRulesRequiredStatusChecksRequiredCheckArray{ + github.RepositoryRulesetRulesRequiredStatusChecksRequiredCheckArgs{ + // Each repository should define a single job that checks all the required checks passed. + Context: pulumi.String("ci_pass"), + }, + }, + StrictRequiredStatusChecksPolicy: pulumi.Bool(true), + }, + }, + } +}