Skip to content

fix: govern tfroot-twilio Dependabot files - #55

Merged
xnoto merged 1 commit into
mainfrom
fix/govern-twilio-dependabot
Sep 3, 2026
Merged

xnoto merged 1 commit into
mainfrom
fix/govern-twilio-dependabot

Conversation

@xnoto

@xnoto xnoto commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds tfroot-twilio to the centrally managed Dependabot ecosystem map. The repository created by #54 is present and protected, but its initial rollout did not create the two centrally owned Dependabot files because the map did not yet include the new root.

Fixes: None — completes the approved tfroot-twilio repository bootstrap.

Type of change

  • Infrastructure (OpenTofu root or module)

Validation

  • Required pull-request checks pass — pending.
  • Generated or centrally distributed files were regenerated by their owning automation, not hand-edited — this change adds the new root to the canonical generator input; the environment-gated apply will create the managed files.

Impact and rollout

tfroot-github remains the sole owner of .github/dependabot.yml and .github/workflows/dependabot-notify.yml for active managed repositories. On an approved merge and successful main apply, this change creates those two files in tfroot-twilio; it does not alter Twilio, Cloudflare, Kubernetes, runtime Secrets, or other repositories.

Rollback before apply is closing this pull request. After apply, removing centrally managed files requires a separate reviewed ownership decision.

Safety and secrets

  • Contains no plaintext secrets, decrypted SOPS values, state files, kubeconfigs, tokens, or private endpoints.
  • No local OpenTofu init/plan/apply/destroy/import/state operations were run or claimed — plans come from pull-request checks.
  • Breaking or irreversible effects are described above with rollback notes.

AI agent materially produced this change; review the generator scope before merge.

@xnoto
xnoto requested a review from a team as a code owner September 3, 2026 21:18
@github-actions

github-actions Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

OpenTofu Test

OpenTofu test passed.

View the workflow run.

View run output
Terraform validate.......................................................Passed
Terraform validate with tflint...........................................Passed
Checkov..................................................................Passed
Terraform fmt............................................................Passed
Terraform docs...........................................................Passed
Detect hardcoded secrets.................................................Passed
check for case conflicts.................................................Passed
check for merge conflicts................................................Passed
check for broken symlinks............................(no files to check)Skipped
check vcs permalinks.....................................................Passed
detect destroyed symlinks................................................Passed
detect private key.......................................................Passed
fix end of files.........................................................Passed
mixed line ending........................................................Passed
trim trailing whitespace.................................................Passed
don't commit to branch..................................................Skipped
check for added large files..............................................Passed

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

OpenTofu Plan

OpenTofu plan passed.

View the workflow run.

View run output
OpenTofu will perform the following actions:

  # github_repository_file.dependabot["tfroot-twilio"] will be created
  + resource "github_repository_file" "dependabot" {
      + autocreate_branch_source_sha = (known after apply)
      + branch                       = (known after apply)
      + commit_message               = "chore: sync managed dependabot configuration"
      + commit_sha                   = (known after apply)
      + content                      = <<-EOT
            # Managed by tfroot-github (gh-dependabot.tf); local edits are overwritten.
            "updates":
            - "directory": "/"
              "groups":
                "github-actions":
                  "patterns":
                  - "*"
              "package-ecosystem": "github-actions"
              "schedule":
                "interval": "daily"
            - "directory": "/"
              "groups":
                "opentofu":
                  "patterns":
                  - "*"
              "package-ecosystem": "opentofu"
              "schedule":
                "interval": "daily"
            "version": 2
        EOT
      + file                         = ".github/dependabot.yml"
      + id                           = (known after apply)
      + overwrite_on_create          = true
      + ref                          = (known after apply)
      + repository                   = "tfroot-twilio"
      + repository_id                = (known after apply)
      + sha                          = (known after apply)
    }

  # github_repository_file.dependabot_notify["tfroot-twilio"] will be created
  + resource "github_repository_file" "dependabot_notify" {
      + autocreate_branch_source_sha = (known after apply)
      + branch                       = (known after apply)
      + commit_message               = "chore: sync managed dependabot notification workflow"
      + commit_sha                   = (known after apply)
      + content                      = <<-EOT
            ---
            # Managed by tfroot-github (gh-dependabot.tf); local edits are overwritten.
            name: dependabot-notify
            
            on:
              pull_request:
                types: [opened, reopened]
            
            permissions: {}
            
            jobs:
              notify:
                if: github.actor == 'dependabot[bot]'
                uses: makeitworkcloud/shared-workflows/.github/workflows/_dependabot-notify.yml@main
[REDACTED: potentially sensitive plan output]
        EOT
      + file                         = ".github/workflows/dependabot-notify.yml"
      + id                           = (known after apply)
      + overwrite_on_create          = true
      + ref                          = (known after apply)
      + repository                   = "tfroot-twilio"
      + repository_id                = (known after apply)
      + sha                          = (known after apply)
    }

Plan: 2 to add, 0 to change, 0 to destroy.
OpenTofu will perform the following actions:

  # github_repository_file.dependabot["tfroot-twilio"] will be created
  + resource "github_repository_file" "dependabot" {
      + autocreate_branch_source_sha = (known after apply)
      + branch                       = (known after apply)
      + commit_message               = "chore: sync managed dependabot configuration"
      + commit_sha                   = (known after apply)
      + content                      = <<-EOT
            # Managed by tfroot-github (gh-dependabot.tf); local edits are overwritten.
            "updates":
            - "directory": "/"
              "groups":
                "github-actions":
                  "patterns":
                  - "*"
              "package-ecosystem": "github-actions"
              "schedule":
                "interval": "daily"
            - "directory": "/"
              "groups":
                "opentofu":
                  "patterns":
                  - "*"
              "package-ecosystem": "opentofu"
              "schedule":
                "interval": "daily"
            "version": 2
        EOT
      + file                         = ".github/dependabot.yml"
      + id                           = (known after apply)
      + overwrite_on_create          = true
      + ref                          = (known after apply)
      + repository                   = "tfroot-twilio"
      + repository_id                = (known after apply)
      + sha                          = (known after apply)
    }

  # github_repository_file.dependabot_notify["tfroot-twilio"] will be created
  + resource "github_repository_file" "dependabot_notify" {
      + autocreate_branch_source_sha = (known after apply)
      + branch                       = (known after apply)
      + commit_message               = "chore: sync managed dependabot notification workflow"
      + commit_sha                   = (known after apply)
      + content                      = <<-EOT
            ---
            # Managed by tfroot-github (gh-dependabot.tf); local edits are overwritten.
            name: dependabot-notify
            
            on:
              pull_request:
                types: [opened, reopened]
            
            permissions: {}
            
            jobs:
              notify:
                if: github.actor == 'dependabot[bot]'
                uses: makeitworkcloud/shared-workflows/.github/workflows/_dependabot-notify.yml@main
[REDACTED: potentially sensitive plan output]
        EOT
      + file                         = ".github/workflows/dependabot-notify.yml"
      + id                           = (known after apply)
      + overwrite_on_create          = true
      + ref                          = (known after apply)
      + repository                   = "tfroot-twilio"
      + repository_id                = (known after apply)
      + sha                          = (known after apply)
    }

Plan: 2 to add, 0 to change, 0 to destroy.

@xnoto
xnoto merged commit e24f8aa into main Sep 3, 2026
4 checks passed
@xnoto
xnoto deleted the fix/govern-twilio-dependabot branch September 3, 2026 21:22
xnoto added a commit that referenced this pull request Sep 20, 2026
## Summary

Owner explicitly requested deleting tfroot-twilio, not archiving it.
Remove its catalog entry, dependent import/move declarations, and
explicit App-secret recipient. Existing catalog-derived resources remove
its repository/protection/team/file/secret instances through canonical
tfroot-github apply.

Fixes: N/A — full retirement request, provider and AWS prerequisites
verified below.

## Type of change

- [x] Infrastructure (OpenTofu root or module)
- [x] Breaking change

## Validation

- [ ] Required PR test/plan pass — pending.
- [x] Generated files not hand-edited; canonical catalog/import metadata
only.

Adversarial/security reviewers ADVANCE after prerequisite evidence.
Provider-root teardown #9 mainapply35480009715success; AWS backend/role
removal #55 mainapply35482094694success. Account-gated AWS
HeadBucket404/ListBuckets absence and IAMGetRoleNoSuchEntity verified.
Cluster bridge resources and app already removed through
kustomize253/254. No state/credential retrieval.

Plan must contain only deletion of this repository's catalog-derived
resources: repository, branch protection, two managed Dependabot files,
team access, and its Actions secrets. Stop on changes to unrelated
repositories or shared secrets. archive_on_destroy is not enabled, so
apply performs deletion.

## Impact and rollout

IRREVERSIBLE repository deletion on successful main apply, including
repository-hosted settings/files/credentials/history. No archival
repository or backup copies requested. This PR does not touch shared org
credentials or other repositories. Backend and role are already absent,
so deletion cannot prevent the completed provider teardown. Source
restoration is not a guaranteed repository/history recovery.

## Safety and secrets

- [x] No secret values, decrypted files, raw state or sensitive plans
- [x] No local OpenTofu init/plan/apply/destroy/import/state operations
- [x] Destructive effects and prerequisite evidence described above

AI-assisted; no upstream communications. Actual deletion remains gated
on matching PR plan and main apply success.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant