fix(rulesets): provision RepositoryRuleset per repo on Free tier#6
Conversation
Replace branch-protection bootstrap with per-repo github:RepositoryRuleset when enableRulesets is false; keep org rulesets for Team+ and branchProtection for explicit overrides only.
|
🍹
|
|
🍹 The Update (preview) for diazdesandi/thaw-config/dev (at 9f133fd) was successful. ✨ Neo Code ReviewThis change swaps per-repo `BranchProtection` resources for native `RepositoryRuleset` resources on all 6 managed repos (same policy, better API primitive). 🟡 Moderate Risk — there is a brief window during the apply where branch protection is unenforced on all repos; schedule the merge/apply accordingly.This PR migrates the Free-tier branch policy enforcement mechanism from 🟡 Warning — Transient protection gap during apply: The 12 existing 🔵 Info — The policy content carried forward to the new 🔵 Info — Resource Changes Name Type Operation
+ homebrew-tap-rs-release-branch-protection github:index/repositoryRuleset:RepositoryRuleset create
+ homebrew-tap-rulesets custom:github:OrgRepositoryRulesets create
- dot-github-bp-main github:index/branchProtection:BranchProtection delete
+ org-ci-rs-release-branch-protection github:index/repositoryRuleset:RepositoryRuleset create
+ menubarspawner-rulesets custom:github:OrgRepositoryRulesets create
+ dot-github-rs-repo-main-default github:index/repositoryRuleset:RepositoryRuleset create
- org-ci-bp-release-- github:index/branchProtection:BranchProtection delete
+ raycast-extension-rs-repo-main-default github:index/repositoryRuleset:RepositoryRuleset create
- menubarspawner-branch-protection custom:github:OrgRepositoryBranchProtection delete
- org-ci-bp-main github:index/branchProtection:BranchProtection delete
+ raycast-extension-rulesets custom:github:OrgRepositoryRulesets create
+ website-rs-release-branch-protection github:index/repositoryRuleset:RepositoryRuleset create
- dot-github-branch-protection custom:github:OrgRepositoryBranchProtection delete
+ menubarspawner-rs-repo-main-default github:index/repositoryRuleset:RepositoryRuleset create
+ dot-github-rs-release-branch-protection github:index/repositoryRuleset:RepositoryRuleset create
+ org-ci-rs-repo-main-default github:index/repositoryRuleset:RepositoryRuleset create
- dot-github-bp-release-- github:index/branchProtection:BranchProtection delete
- raycast-extension-branch-protection custom:github:OrgRepositoryBranchProtection delete
- website-bp-main github:index/branchProtection:BranchProtection delete
+ website-rs-repo-main-default github:index/repositoryRuleset:RepositoryRuleset create
+ org-ci-rulesets custom:github:OrgRepositoryRulesets create
+ homebrew-tap-rs-repo-main-default github:index/repositoryRuleset:RepositoryRuleset create
+ website-rulesets custom:github:OrgRepositoryRulesets create
+ dot-github-rulesets custom:github:OrgRepositoryRulesets create
- website-branch-protection custom:github:OrgRepositoryBranchProtection delete
- homebrew-tap-bp-release-- github:index/branchProtection:BranchProtection delete
- website-bp-release-- github:index/branchProtection:BranchProtection delete
- raycast-extension-bp-main github:index/branchProtection:BranchProtection delete
- org-ci-branch-protection custom:github:OrgRepositoryBranchProtection delete
+ menubarspawner-rs-release-branch-protection github:index/repositoryRuleset:RepositoryRuleset create
- menubarspawner-bp-main github:index/branchProtection:BranchProtection delete
- menubarspawner-bp-release-- github:index/branchProtection:BranchProtection delete
- homebrew-tap-bp-main github:index/branchProtection:BranchProtection delete
- raycast-extension-bp-release-- github:index/branchProtection:BranchProtection delete
+ raycast-extension-rs-release-branch-protection github:index/repositoryRuleset:RepositoryRuleset create
- homebrew-tap-branch-protection custom:github:OrgRepositoryBranchProtection delete
Detailed DiffView diffpulumi:pulumi:Stack: (same)
[urn=urn:pulumi:dev::thaw-config::pulumi:pulumi:Stack::thaw-config-dev]
+ custom:github:OrgRepositoryRulesets: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets::website-rulesets]
+ custom:github:OrgRepositoryRulesets: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets::homebrew-tap-rulesets]
+ custom:github:OrgRepositoryRulesets: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets::menubarspawner-rulesets]
+ custom:github:OrgRepositoryRulesets: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets::raycast-extension-rulesets]
+ custom:github:OrgRepositoryRulesets: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets::dot-github-rulesets]
+ custom:github:OrgRepositoryRulesets: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets::org-ci-rulesets]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::website-rs-repo-main-default]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::website-rs-release-branch-protection]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::homebrew-tap-rs-repo-main-default]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::homebrew-tap-rs-release-branch-protection]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::dot-github-rs-repo-main-default]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::dot-github-rs-release-branch-protection]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::org-ci-rs-repo-main-default]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::org-ci-rs-release-branch-protection]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::menubarspawner-rs-repo-main-default]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::menubarspawner-rs-release-branch-protection]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::raycast-extension-rs-repo-main-default]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
+ github:index/repositoryRuleset:RepositoryRuleset: (create)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryRulesets$github:index/repositoryRuleset:RepositoryRuleset::raycast-extension-rs-release-branch-protection]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
--outputs:--
+ bypassActors: []
+ etag : [unknown]
+ id : [unknown]
+ nodeId : [unknown]
+ rules : {
+ branchNamePattern : <null>
+ commitAuthorEmailPattern : <null>
+ commitMessagePattern : <null>
+ committerEmailPattern : <null>
+ copilotCodeReview : {
+ reviewDraftPullRequests: false
+ reviewOnPush : false
}
+ creation : true
+ deletion : true
+ fileExtensionRestriction : <null>
+ filePathRestriction : <null>
+ maxFilePathLength : <null>
+ maxFileSize : <null>
+ mergeQueue : <null>
+ nonFastForward : true
+ pullRequest : {
+ allowedMergeMethods : [
+ [0]: "squash"
]
+ dismissStaleReviewsOnPush : true
+ requireCodeOwnerReview : true
+ requireLastPushApproval : true
+ requiredApprovingReviewCount : 2
+ requiredReviewThreadResolution: true
+ requiredReviewers : []
}
+ requiredCodeScanning : <null>
+ requiredDeployments : <null>
+ requiredLinearHistory : true
+ requiredSignatures : false
+ requiredStatusChecks : {
+ doNotEnforceOnCreate : false
+ requiredChecks : [
+ [0]: {
+ context : "ci"
+ integrationId: 0
}
]
+ strictRequiredStatusChecksPolicy: true
}
+ tagNamePattern : <null>
+ update : false
+ updateAllowsFetchAndMerge: false
}
+ rulesetId : [unknown]
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::raycast-extension-bp-main]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "main"
repositoryId : "R_kgDORf632A"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDORf632M4Essjm"
- lockBranch : false
- pattern : "main"
- repositoryId : "R_kgDORf632A"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::website-bp-main]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "main"
repositoryId : "R_kgDOS6-dSw"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOS6-dS84Esshg"
- lockBranch : false
- pattern : "main"
- repositoryId : "R_kgDOS6-dSw"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::org-ci-bp-main]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "main"
repositoryId : "R_kgDOS6-dZQ"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOS6-dZc4Esshn"
- lockBranch : false
- pattern : "main"
- repositoryId : "R_kgDOS6-dZQ"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::website-bp-release--]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "release/*"
repositoryId : "R_kgDOS6-dSw"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOS6-dS84Esshi"
- lockBranch : false
- pattern : "release/*"
- repositoryId : "R_kgDOS6-dSw"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::dot-github-bp-release--]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "release/*"
repositoryId : "R_kgDOS6-dlw"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOS6-dl84Essiy"
- lockBranch : false
- pattern : "release/*"
- repositoryId : "R_kgDOS6-dlw"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::menubarspawner-bp-release--]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "release/*"
repositoryId : "R_kgDOStk7Jg"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOStk7Js4EssjQ"
- lockBranch : false
- pattern : "release/*"
- repositoryId : "R_kgDOStk7Jg"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::homebrew-tap-bp-release--]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "release/*"
repositoryId : "R_kgDOS6-dfg"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOS6-dfs4Esshm"
- lockBranch : false
- pattern : "release/*"
- repositoryId : "R_kgDOS6-dfg"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::org-ci-bp-release--]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "release/*"
repositoryId : "R_kgDOS6-dZQ"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOS6-dZc4Esshr"
- lockBranch : false
- pattern : "release/*"
- repositoryId : "R_kgDOS6-dZQ"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::homebrew-tap-bp-main]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "main"
repositoryId : "R_kgDOS6-dfg"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOS6-dfs4Esshl"
- lockBranch : false
- pattern : "main"
- repositoryId : "R_kgDOS6-dfg"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::raycast-extension-bp-release--]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "release/*"
repositoryId : "R_kgDORf632A"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDORf632M4Essjo"
- lockBranch : false
- pattern : "release/*"
- repositoryId : "R_kgDORf632A"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::dot-github-bp-main]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "main"
repositoryId : "R_kgDOS6-dlw"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOS6-dl84Essiu"
- lockBranch : false
- pattern : "main"
- repositoryId : "R_kgDOS6-dlw"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <null>
- pullRequestBypassers : <null>
- requireCodeOwnerReviews : true
- requireLastPushApproval : true
- requiredApprovingReviewCount: 2
- restrictDismissals : false
}
]
- requiredStatusChecks : [
- [0]: {
- contexts: [
- [0]: "ci"
]
- strict : true
}
]
- restrictPushes : []
- github:index/branchProtection:BranchProtection: (delete)
[urn=urn:pulumi:dev::thaw-config::custom:github:OrgRepository$custom:github:OrgRepositoryBranchProtection$github:index/branchProtection:BranchProtection::menubarspawner-bp-main]
[provider=urn:pulumi:dev::thaw-config::pulumi:providers:github::default_6_14_0::225ee7f4-aef2-42ea-8c38-890178d35051]
allowsDeletions : false
allowsForcePushes : false
enforceAdmins : true
pattern : "main"
repositoryId : "R_kgDOStk7Jg"
requireConversationResolution: true
requireSignedCommits : false
requiredLinearHistory : true
requiredPullRequestReviews : [
[0]: {
dismissStaleReviews : true
requireCodeOwnerReviews : true
requireLastPushApproval : true
requiredApprovingReviewCount: 2
}
]
requiredStatusChecks : [
[0]: {
contexts : [
[0]: "ci"
]
strict : true
}
]
--outputs:--
- allowsDeletions : false
- allowsForcePushes : false
- enforceAdmins : true
- id : "BPR_kwDOStk7Js4EssjS"
- lockBranch : false
- pattern : "main"
- repositoryId : "R_kgDOStk7Jg"
- requireConversationResolution: true
- requireSignedCommits : false
- requiredLinearHistory : true
- requiredPullRequestReviews : [
- [0]: {
- dismissStaleReviews : true
- dismissalRestrictions : <nul
... diff truncated to fit comment size limit |



Summary
github:RepositoryRulesetwhenenableRulesets: false(GitHub Free default for thaw-app)OrganizationRulesetwhenenableRulesets: true(Team+);repos.yamlbranchProtectionremains for explicit overrides onlyTest plan
bun test(75 passing)bun run typecheck./scripts/drop_bootstrap_from_state.shif bootstrap README resources are still in Pulumi statepulumi previewondev— expectRepositoryRulesetcreates and legacyBranchProtectionremovalspulumi upondev— verify rulesets appear under each managed repo in GitHub Settings → Rules → Rulesets