Use proper Forgejo variables: gitea.server_url, gitea.repository Construct CLONE_URL correctly: https://user:token@host/repo.git Use bash parameter expansion to strip https:// prefix Removes invalid Forgejo filter syntax (| replace)
Use CI_RUNNER and CI_RUNNER_SECRET for repo clone authentication. Embed credentials in git clone URL: https://user:token@host/repo.git Removes dependency on GITHUB_TOKEN (GitHub-specific) and improves Forgejo compatibility.
Prevent 'kustomize exists' error when downloading tools in CI runner. Use -f flag on mv commands to force overwrite.
Delete old terraform-apply.yml (terraform fmt/init/validate/plan/apply). Create new GitOps CI/CD: - validate-k8s.yaml: YAML lint, kubeval, kustomize build, ArgoCD validation - argocd-sync.yaml: Auto-sync homelab-root on main branch - security-scan.yaml: Trivy, Polaris, secret detection - .yamllint.yaml: YAML linting configuration Add documentation (.forgejo/CI-CD.md) and architecture guides. Git is now single source of truth. CI validates, ArgoCD deploys.