S
2fca8300a1
refactor: use REPO_NAMES in phase5_post_check.sh
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:05:45 -05:00
S
9cccd5196d
refactor: use REPO_NAMES in phase5_migrate_pipelines.sh
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:05:45 -05:00
S
49268a4674
refactor: use REPO_NAMES in phase4_teardown.sh
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:05:45 -05:00
S
60686d681e
refactor: use REPO_NAMES in phase4_post_check.sh
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:05:45 -05:00
S
8aad4299ca
refactor: use REPO_NAMES in phase4_migrate_repos.sh
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:05:45 -05:00
S
46881bd8fa
feat: replace REPO_1/2/3_NAME with space-delimited REPO_NAMES in .env.example
...
Supports any number of repos instead of hardcoded 3.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:05:10 -05:00
S
87fefe28a1
feat: add get_repo_list() and replace REPO_N_NAME with REPO_NAMES in validation
...
- Add get_repo_list() helper to split space-delimited REPO_NAMES
- Replace REPO_1_NAME/REPO_2_NAME/REPO_3_NAME with single REPO_NAMES in
_ENV_VAR_NAMES and _ENV_VAR_TYPES validation arrays
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:04:57 -05:00
S
4895d24a2d
docs: update PLAN.md for single GitHub token
...
Replace GITHUB_MIRROR_TOKEN references with GITHUB_TOKEN.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:03:18 -05:00
S
93355ee143
docs: update USAGE_GUIDE.md for single GitHub token
...
Consolidated two tokens into one GITHUB_TOKEN with repo scope.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:02:35 -05:00
S
017ab098f1
fix: remove GITEA_INSTANCE_NAME from phase2 require_vars
...
Phase 2 (backup instance) does not use GITEA_INSTANCE_NAME.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:02:01 -05:00
S
e9c165e350
fix: update configure_env.sh versions, descriptions, consolidate tokens
...
- GITEA_VERSION default 1.23 → 1.25, ACT_RUNNER_VERSION 0.2.11 → 0.3.0
- GITHUB_TOKEN description: "repo read" → "repo scope (read+write)"
- BACKUP_STORAGE_PATH description: "Absolute path on Fedora for backup archives"
- Remove GITHUB MIRROR section, move GITHUB_MIRROR_INTERVAL to REPOSITORIES
- TOTAL_PROMPTS 57 → 56
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:01:47 -05:00
S
0c4da57136
fix: remove GITHUB_MIRROR_TOKEN from preflight required vars
...
Consolidated into GITHUB_TOKEN.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:00:57 -05:00
S
0f7a20c450
fix: use GITHUB_TOKEN instead of GITHUB_MIRROR_TOKEN for push mirrors
...
Single PAT with repo scope handles both migration and push mirroring.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:00:45 -05:00
S
eabc961139
fix: remove GITHUB_MIRROR_TOKEN from env validation arrays
...
Consolidated into GITHUB_TOKEN — single PAT handles both migration
and push mirroring. GITHUB_MIRROR_INTERVAL remains as its own var.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:00:18 -05:00
S
0aee01c3f3
fix: update .env.example versions, token consolidation, and descriptions
...
- GITEA_VERSION 1.23 → 1.25, ACT_RUNNER_VERSION 0.2.11 → 0.3.0
- Consolidate GITHUB_MIRROR_TOKEN into GITHUB_TOKEN (single PAT with repo scope)
- Move GITHUB_MIRROR_INTERVAL into REPOSITORIES section
- Fix GITHUB_TOKEN description: "repo read" → "repo scope (read+write)"
- Fix BACKUP_STORAGE_PATH description: clarify "Absolute path on Fedora"
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 09:59:57 -05:00
S
c90a7a6db6
feat: add unzip installation check for backup/restore scripts on Unraid
2026-03-01 08:59:04 -05:00
S
ba5aa6816b
feat: add unzip installation check for backup/restore scripts on Fedora
2026-03-01 08:59:00 -05:00
S
10b155da74
fix: correct total prompts count in configure_env.sh
2026-03-01 08:58:56 -05:00
S
52765a6626
refactor: replace mapfile with compatible loop for reading manifest entries
2026-03-01 08:58:53 -05:00
S
61d58790b1
fix: update sed escape pattern to handle pipe delimiter in save_env_var function
2026-03-01 08:58:49 -05:00
S
135a0b7c0c
refactor: replace DNS resolution method with Python for improved compatibility
2026-03-01 08:58:44 -05:00
S
24d7df0a0b
feat: add idempotent token deletion before generating new Gitea backup admin token
2026-03-01 08:58:39 -05:00
S
83f706c6b8
feat: add idempotent token deletion before generating new Gitea admin token
2026-03-01 08:58:34 -05:00
S
5bdf72063e
refactor: replace associative array with Bash 3.2 compatible key-value store for collected runner data
2026-03-01 08:45:13 -05:00
S
a34cc69681
refactor: streamline environment variable loading with dedicated function
2026-03-01 08:40:25 -05:00
S
6100d482d2
docs: update usage guide with boot-mode native runner details and sudo requirements
2026-03-01 08:28:49 -05:00
S
b120ef2e0e
docs: add details about native runner boot mode and sudo requirements
2026-03-01 08:28:46 -05:00
S
8896d89078
feat: add boot option to runner configuration output
2026-03-01 08:28:28 -05:00
S
611c377bb1
fix: improve native runner removal process by handling missing plist files
2026-03-01 08:28:22 -05:00
S
debf89971a
feat: add boot option for native runners in configuration example
2026-03-01 08:24:54 -05:00
S
b62996795c
feat: validate boot option in runners configuration for native runners
2026-03-01 08:24:47 -05:00
S
dec895ca46
docs: update comments in plist template to clarify boot options and variables
2026-03-01 08:24:42 -05:00
S
457b9f82db
feat: add boot option for native runners configuration
2026-03-01 08:24:38 -05:00
S
5341447acb
feat: add support for boot flag in native runner configuration
2026-03-01 08:24:33 -05:00
S
dd0014b335
fix: update PATH in Gitea Actions runner plist template for compatibility
2026-03-01 08:17:21 -05:00
S
d74e40d596
feat: add newsyslog configuration template for Gitea Actions runner
2026-03-01 08:17:14 -05:00
S
e9940b75ee
feat: enhance Docker Compose template with healthcheck and improved comments
2026-03-01 08:17:08 -05:00
S
cf72f9cd9f
fix: enhance comments for clarity in Docker Compose runner template
2026-03-01 08:17:04 -05:00
S
c2a9ab1506
fix: update comments for clarity in runner configuration template
2026-03-01 08:16:57 -05:00
S
2f63b65d0d
feat: expand API documentation for repository settings and GitHub Actions management
2026-03-01 08:16:42 -05:00
S
8403ea47c0
feat: enhance cleanup and setup_git_auth functions for improved security
2026-03-01 08:16:37 -05:00
S
924401a387
feat: add log rotation configuration for native runners on macOS
2026-03-01 08:16:32 -05:00
S
66febf69bb
Persist configure_runners values incrementally
2026-03-01 08:15:32 -05:00
S
f4a6b04d14
feat: rework runner config to INI format with full field support
...
Replace pipe-delimited runners.conf with INI-style sections supporting
host resolution, container images, repo-scoped tokens, resource limits,
capacity, and SSH key passthrough. All defaults pulled from .env.
- Add INI parsing helpers (ini_list_sections, ini_get, ini_set) to common.sh
- Add SSH key support (UNRAID_SSH_KEY, FEDORA_SSH_KEY) to ssh_exec/scp_to
- Add .env vars: RUNNER_DEFAULT_IMAGE, RUNNER_DEFAULT_CAPACITY,
RUNNER_DEFAULT_DATA_PATH, LOCAL_RUNNER_DATA_PATH, LOCAL_REGISTRY
- Rewrite manage_runner.sh with host/image/token resolution and resource limits
- Rewrite configure_runners.sh wizard for INI format with all 9 fields
- Update phase3 scripts to use ini_list_sections instead of pipe parsing
- Add runners.conf INI validation to preflight.sh (check 5b)
- Update templates to use resolved labels, capacity, and deploy resources
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 23:14:46 -05:00
S
fcd966f97d
feat: add interactive runners.conf configuration wizard
...
Replaces manual pipe-delimited file editing with a guided setup
script matching the configure_env.sh UX pattern.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 22:21:14 -05:00
S
5ce3a234f3
fix: harden phase auth and failure handling
2026-02-28 22:09:21 -05:00
S
0e0aeda658
feat: extract .env validators to common.sh and add validate_env()
...
Move 10 validation functions from configure_env.sh to lib/common.sh as
shared utilities. Define variable-to-validator mapping using parallel
arrays (bash 3.2 compatible). validate_env() checks all ~50 .env
variables against their expected format and reports all failures at once.
Wired into preflight.sh (Check 6b) and bitwarden_to_env.sh (post-restore).
configure_env.sh now sources validators from common.sh instead of
defining its own copies.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 22:08:01 -05:00
S
743f1281e6
chore: fix shellcheck findings across migration scripts
2026-02-28 21:39:23 -05:00
S
572e4c151c
chore: snapshot current workspace changes
2026-02-28 21:35:03 -05:00
S
088e355962
docs: add README.md and USAGE_GUIDE.md
...
README covers architecture, 9-phase pipeline, file structure, design
decisions with rationale (bash over Ansible, single control plane,
envsubst templates, check-before-act idempotency, SQLite, mirror
marking vs archiving), and compromises (shared credentials, 3-repo
limit, syntactic workflow migration, no automatic rollback, timeout
polling, unencrypted backups, Docker socket exposure).
USAGE_GUIDE covers the happy path (automated and manual), resuming
after failure, edge cases (rate limits, token expiry, large repos,
port conflicts, DNS, Certbot, SSH, runner offline, invalid YAML),
rollback procedures (full, partial, single-phase, with cleanup),
verification commands for each rollback scenario, day-to-day ops
(version updates, token rotation, adding repos, mirror sync, SSL
renewal), backup/restore, runner management, and troubleshooting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 21:06:36 -05:00