From 768701004d99438b70ac98c6fd7b1ba5bd076f15 Mon Sep 17 00:00:00 2001 From: S Date: Sun, 1 Mar 2026 10:09:20 -0500 Subject: [PATCH] docs: update PLAN.md for REPO_NAMES Replace REPO_1/2/3_NAME references with REPO_NAMES. Co-Authored-By: Claude Opus 4.6 --- PLAN.md | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/PLAN.md b/PLAN.md index a0a88a4..94374a2 100644 --- a/PLAN.md +++ b/PLAN.md @@ -520,10 +520,8 @@ gitea-migration/ | 26 | `BACKUP_RETENTION_COUNT` | Integer | 5 | | 27 | `GITHUB_USERNAME` | Non-empty | — | | 28 | `GITHUB_TOKEN` | Non-empty | — | -| 29 | `REPO_1_NAME` | Non-empty | — | -| 30 | `REPO_2_NAME` | Non-empty | — | -| 31 | `REPO_3_NAME` | Non-empty | — | -| 32 | `MIGRATE_ISSUES` | true/false | false | +| 29 | `REPO_NAMES` | Non-empty | — | +| 30 | `MIGRATE_ISSUES` | true/false | false | | 33 | `MIGRATE_LABELS` | true/false | true | | 34 | `MIGRATE_MILESTONES` | true/false | false | | 35 | `MIGRATE_WIKI` | true/false | false | @@ -663,9 +661,7 @@ gitea-migration/ | Backup | `BACKUP_STORAGE_PATH` | | Repos | `GITHUB_USERNAME` | | Repos | `GITHUB_TOKEN` | -| Repos | `REPO_1_NAME` | -| Repos | `REPO_2_NAME` | -| Repos | `REPO_3_NAME` | +| Repos | `REPO_NAMES` | | Mirror | `GITHUB_TOKEN` | | Nginx | `NGINX_CONTAINER_NAME` | | Nginx | `NGINX_CONF_PATH` | @@ -878,7 +874,7 @@ For each runner in `runners.conf`: `manage_runner.sh remove --name `. Clea **Depends on**: Phase 1 + Phase 2 completed (both Gitea instances running) **Produces**: All 3 repos on Unraid primary under org + pull mirrors on Fedora -**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_BACKUP_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_BACKUP_INTERNAL_URL`, `GITEA_ORG_NAME`, `GITEA_ADMIN_USER`, `GITEA_ADMIN_PASSWORD`, `GITHUB_USERNAME`, `GITHUB_TOKEN`, `REPO_1_NAME`, `REPO_2_NAME`, `REPO_3_NAME`, `MIGRATE_ISSUES`, `MIGRATE_LABELS`, `MIGRATE_MILESTONES`, `MIGRATE_WIKI`, `GITEA_BACKUP_MIRROR_INTERVAL` +**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_BACKUP_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_BACKUP_INTERNAL_URL`, `GITEA_ORG_NAME`, `GITEA_ADMIN_USER`, `GITEA_ADMIN_PASSWORD`, `GITHUB_USERNAME`, `GITHUB_TOKEN`, `REPO_NAMES`, `MIGRATE_ISSUES`, `MIGRATE_LABELS`, `MIGRATE_MILESTONES`, `MIGRATE_WIKI`, `GITEA_BACKUP_MIRROR_INTERVAL` **Steps**: @@ -923,7 +919,7 @@ For each `REPO_N_NAME` (N=1,2,3): **Depends on**: Phase 4 completed (repos exist on Gitea) **Produces**: `.gitea/workflows/` directory in each repo with adapted workflows -**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_ORG_NAME`, `GITEA_ADMIN_USER`, `REPO_1_NAME`, `REPO_2_NAME`, `REPO_3_NAME` +**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_ORG_NAME`, `GITEA_ADMIN_USER`, `REPO_NAMES` **Steps for each repo**: 1. Clone repo from Gitea to temp dir: `git clone $GITEA_INTERNAL_URL/$GITEA_ORG_NAME/$REPO.git /tmp/gitea-migration-$REPO` @@ -975,7 +971,7 @@ For each repo: clone, `rm -rf .gitea/workflows`, commit, push. Only if `.gitea/w **Depends on**: Phase 4 completed, GitHub mirror token set **Produces**: Push mirrors from Gitea → GitHub configured for all repos -**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_ORG_NAME`, `GITHUB_USERNAME`, `GITHUB_TOKEN`, `GITHUB_MIRROR_INTERVAL`, `REPO_1_NAME`, `REPO_2_NAME`, `REPO_3_NAME` +**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_ORG_NAME`, `GITHUB_USERNAME`, `GITHUB_TOKEN`, `GITHUB_MIRROR_INTERVAL`, `REPO_NAMES` **Steps for each repo**: 1. Check if push mirror already exists: `gitea_api GET /repos/$ORG/$REPO/push_mirrors` — skip if non-empty @@ -1013,7 +1009,7 @@ For each repo: `gitea_api DELETE /repos/$ORG/$REPO/push_mirrors/{id}`. Get mirro **Depends on**: Phase 4 completed (repos exist) **Produces**: Branch protection on `$PROTECTED_BRANCH` for all repos -**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_ORG_NAME`, `REPO_1_NAME`, `REPO_2_NAME`, `REPO_3_NAME`, `PROTECTED_BRANCH`, `REQUIRE_PR_REVIEW`, `REQUIRED_APPROVALS` +**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_ORG_NAME`, `REPO_NAMES`, `PROTECTED_BRANCH`, `REQUIRE_PR_REVIEW`, `REQUIRED_APPROVALS` **Steps for each repo**: 1. Check if protection exists: `gitea_api GET /repos/$ORG/$REPO/branch_protections/$PROTECTED_BRANCH` — skip if 200 @@ -1044,7 +1040,7 @@ Teardown: `gitea_api DELETE /repos/$ORG/$REPO/branch_protections/$PROTECTED_BRAN **Depends on**: Nginx running on Unraid, all prior phases **Produces**: HTTPS access to Gitea, GitHub repos archived -**`require_vars`**: `UNRAID_IP`, `UNRAID_SSH_USER`, `UNRAID_SSH_PORT`, `UNRAID_GITEA_PORT`, `GITEA_INTERNAL_URL`, `GITEA_DOMAIN`, `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_ORG_NAME`, `NGINX_CONTAINER_NAME`, `NGINX_CONF_PATH`, `SSL_EMAIL`, `GITHUB_USERNAME`, `GITHUB_TOKEN`, `REPO_1_NAME`, `REPO_2_NAME`, `REPO_3_NAME` +**`require_vars`**: `UNRAID_IP`, `UNRAID_SSH_USER`, `UNRAID_SSH_PORT`, `UNRAID_GITEA_PORT`, `GITEA_INTERNAL_URL`, `GITEA_DOMAIN`, `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_ORG_NAME`, `NGINX_CONTAINER_NAME`, `NGINX_CONF_PATH`, `SSL_EMAIL`, `GITHUB_USERNAME`, `GITHUB_TOKEN`, `REPO_NAMES` **Steps with idempotency**: @@ -1113,7 +1109,7 @@ The `nginx-gitea.conf.tpl` template is rendered with `$SSL_ENABLED=true/false` ( **Depends on**: Phase 5 completed (repos have `.gitea/workflows/`) **Produces**: Security scan workflow in all repos, branch protection updated -**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_ORG_NAME`, `GITEA_ADMIN_USER`, `REPO_1_NAME`, `REPO_2_NAME`, `REPO_3_NAME`, `SEMGREP_VERSION`, `TRIVY_VERSION`, `GITLEAKS_VERSION`, `SECURITY_FAIL_ON_ERROR`, `PROTECTED_BRANCH` +**`require_vars`**: `GITEA_ADMIN_TOKEN` *(auto)*, `GITEA_INTERNAL_URL`, `GITEA_ORG_NAME`, `GITEA_ADMIN_USER`, `REPO_NAMES`, `SEMGREP_VERSION`, `TRIVY_VERSION`, `GITLEAKS_VERSION`, `SECURITY_FAIL_ON_ERROR`, `PROTECTED_BRANCH` **Steps for each repo**: 1. Clone from Gitea to temp dir