feat: govern channel project and secret recipients - #53
Merged
Conversation
Contributor
OpenTofu TestOpenTofu test passed. View run output |
Contributor
OpenTofu PlanOpenTofu plan passed. View run outputOpenTofu will perform the following actions:
[REDACTED: potentially sensitive plan output]
[REDACTED: potentially sensitive plan output]
+ created_at = (known after apply)
+ id = (known after apply)
+ key_id = (known after apply)
+ plaintext_value = (sensitive value)
+ remote_updated_at = (known after apply)
+ repository = "channel-project"
+ repository_id = (known after apply)
[REDACTED: potentially sensitive plan output]
+ updated_at = (known after apply)
}
[REDACTED: potentially sensitive plan output]
[REDACTED: potentially sensitive plan output]
+ created_at = (known after apply)
+ id = (known after apply)
+ key_id = (known after apply)
+ plaintext_value = (sensitive value)
+ remote_updated_at = (known after apply)
+ repository = "channel-project"
+ repository_id = (known after apply)
[REDACTED: potentially sensitive plan output]
+ updated_at = (known after apply)
}
# github_repository.repositories["channel-project"] will be updated in-place
# (imported from "channel-project")
~ resource "github_repository" "repositories" {
allow_auto_merge = false
allow_forking = false
allow_merge_commit = true
~ allow_rebase_merge = true -> false
allow_squash_merge = true
allow_update_branch = false
archived = false
~ auto_init = false -> true
default_branch = "main"
~ delete_branch_on_merge = false -> true
description = "Private monorepo for orthodox.channel applications and infrastructure."
etag = "W/\"6e72fd5598b2f778c3b077ba425963860dd9f42e7de3fe1f0fa64525815cb9c0\""
fork = "false"
full_name = "makeitworkcloud/channel-project"
git_clone_url = "git://github.com/makeitworkcloud/channel-project.git"
has_discussions = false
has_downloads = false
has_issues = true
has_projects = true
has_wiki = false
html_url = "https://github.com/makeitworkcloud/channel-project"
http_clone_url = "https://github.com/makeitworkcloud/channel-project.git"
id = "channel-project"
+ ignore_vulnerability_alerts_during_read = false
is_template = false
merge_commit_message = "PR_TITLE"
merge_commit_title = "MERGE_MESSAGE"
name = "channel-project"
node_id = "R_kgDOUMus0g"
private = true
repo_id = 1355525330
~ squash_merge_commit_message = "COMMIT_MESSAGES" -> "PR_BODY"
~ squash_merge_commit_title = "COMMIT_OR_PR_TITLE" -> "PR_TITLE"
ssh_clone_url = "git@github.com:makeitworkcloud/channel-project.git"
svn_url = "https://github.com/makeitworkcloud/channel-project"
~ topics = [
+ "cloudflare",
+ "dns",
+ "opentofu",
+ "video-streaming",
]
visibility = "private"
web_commit_signoff_required = false
}
# github_team_repository.admins["channel-project"] will be created
+ resource "github_team_repository" "admins" {
+ etag = (known after apply)
+ id = (known after apply)
+ permission = "admin"
+ repository = "channel-project"
+ team_id = "15594330"
}
Plan: 1 to import, 3 to add, 1 to change, 0 to destroy.
OpenTofu will perform the following actions:
[REDACTED: potentially sensitive plan output]
[REDACTED: potentially sensitive plan output]
+ created_at = (known after apply)
+ id = (known after apply)
+ key_id = (known after apply)
+ plaintext_value = (sensitive value)
+ remote_updated_at = (known after apply)
+ repository = "channel-project"
+ repository_id = (known after apply)
[REDACTED: potentially sensitive plan output]
+ updated_at = (known after apply)
}
[REDACTED: potentially sensitive plan output]
[REDACTED: potentially sensitive plan output]
+ created_at = (known after apply)
+ id = (known after apply)
+ key_id = (known after apply)
+ plaintext_value = (sensitive value)
+ remote_updated_at = (known after apply)
+ repository = "channel-project"
+ repository_id = (known after apply)
[REDACTED: potentially sensitive plan output]
+ updated_at = (known after apply)
}
# github_repository.repositories["channel-project"] will be updated in-place
# (imported from "channel-project")
~ resource "github_repository" "repositories" {
allow_auto_merge = false
allow_forking = false
allow_merge_commit = true
~ allow_rebase_merge = true -> false
allow_squash_merge = true
allow_update_branch = false
archived = false
~ auto_init = false -> true
default_branch = "main"
~ delete_branch_on_merge = false -> true
description = "Private monorepo for orthodox.channel applications and infrastructure."
etag = "W/\"6e72fd5598b2f778c3b077ba425963860dd9f42e7de3fe1f0fa64525815cb9c0\""
fork = "false"
full_name = "makeitworkcloud/channel-project"
git_clone_url = "git://github.com/makeitworkcloud/channel-project.git"
has_discussions = false
has_downloads = false
has_issues = true
has_projects = true
has_wiki = false
html_url = "https://github.com/makeitworkcloud/channel-project"
http_clone_url = "https://github.com/makeitworkcloud/channel-project.git"
id = "channel-project"
+ ignore_vulnerability_alerts_during_read = false
is_template = false
merge_commit_message = "PR_TITLE"
merge_commit_title = "MERGE_MESSAGE"
name = "channel-project"
node_id = "R_kgDOUMus0g"
private = true
repo_id = 1355525330
~ squash_merge_commit_message = "COMMIT_MESSAGES" -> "PR_BODY"
~ squash_merge_commit_title = "COMMIT_OR_PR_TITLE" -> "PR_TITLE"
ssh_clone_url = "git@github.com:makeitworkcloud/channel-project.git"
svn_url = "https://github.com/makeitworkcloud/channel-project"
~ topics = [
+ "cloudflare",
+ "dns",
+ "opentofu",
+ "video-streaming",
]
visibility = "private"
web_commit_signoff_required = false
}
# github_team_repository.admins["channel-project"] will be created
+ resource "github_team_repository" "admins" {
+ etag = (known after apply)
+ id = (known after apply)
+ permission = "admin"
+ repository = "channel-project"
+ team_id = "15594330"
}
Plan: 1 to import, 3 to add, 1 to change, 0 to destroy. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
channel-projectrepository through an OpenTofu import and organization repository policy.CLOUDFLARE_API_TOKENandNAMECHEAP_API_KEYGitHub Actions secret mappings tochannel-project.channel-projectfrom the organization-wide Cloudflare Access OAuth client credential distribution.No tracking issue; owner-approved infrastructure governance change.
Type of change
Validation
opentofu / testandopentofu / plansucceeded in run 177.Impact and rollout
Producer:
tfroot-githubgovernance and encrypted-secret recipient mapping.Consumer: the existing private
channel-projectrepository. After a reviewed, environment-gated apply, OpenTofu will import and manage its repository settings, grant theadminsteam administration through existing active-repository policy, and store the two named Actions secrets. No decrypted value, SOPS file, root workflow, DNS record, registrar state, deployment, or public site changes here.The current Cloudflare token scope is not asserted by this PR; a later
channel-projectCloudflare root must validate it against theorthodox.channelzone. Rollback is to remove the repository and recipient mappings, then apply through the same reviewed root.Safety and secrets
AI agent materially produced this change; reviewers should inspect the OpenTofu plan before approval.