Infra Refactor PR Report / Backend Refactor PR Report / Frontend Refactor PR Report#283
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Applied ChangesHigh
Medium
Low
Test ChangesRemoved
Added
Duplication Resolved
Structure Changes
Skipped元レポート自身が「現状維持/保留推奨」とした項目。CLAUDE.md「過剰な抽象化を避ける」「Rule of Three」に従い、機械的 DRY 化を見送り記録のみ:
Validation
Follow-ups
|
Summary
Applied ChangesHigh
Medium
Low
Test ChangesRemoved
Added / Updated
Duplication Resolved
Structure ChangesSkipped
Validation
Follow-ups
|
Summary
versions.tf(3 環境完全一致)をshared/versions.tfに統合し symlink 化(PR1)。environmentを tfvars 変数化し、provider +module "devforge_stack"呼び出しを含むmain.tfをshared/main.tfに統合して 3 環境を symlink 化(PR2)。これで env 別main.tfの唯一の差分(environmentリテラル)が解消。module.devforge_stack.*不変、渡る値も同一文字列)。Applied Changes
Medium
devforge_stack呼び出しのコピペを解消。environment = "<env>"リテラルをvar.environment化し、実体をshared/main.tfに集約 → 3 環境を../shared/main.tfへの symlink に置換。元レポート "Medium / Variable 抽出候補 / PR2"。Low
shared/versions.tfに統合し symlink 化。元レポート "Low / PR1"。Modules / Variable Changes
Modules 化
Variable 抽出
variable "environment"を追加。validationで dev/stg/prod を制約。description は日本語。terraform.tfvarsにenvironment = "dev"|"stg"|"prod"を 1 行追記(tfvars は Git 管理対象で、placeholder 値を含むテンプレート運用)。Module 統合
Structure Changes
backend.tf(GCS bucket 差分・変数化不可)とterraform.tfvarsのみに縮小。main.tf/versions.tf/variables.tf/moved.tf/outputs.tfはすべてshared/の symlink に統一。State Migration
module.devforge_stack.*のまま変わらず、environmentに渡る文字列も従来のリテラルと完全同一("dev"/"stg"/"prod")。リソースの再作成・rename は発生しない。tofu planは state 認証が必要なため本 PR では未実行(下記 Validation / Follow-ups)。apply 担当者は念のため各環境でtofu planを回し、差分ゼロ(No changes)を確認してから apply すること。Skipped
diff stg/ENV_CHECKLIST.md prod/ENV_CHECKLIST.mdの結果、GCS バケット名(devforge-stg-db↔devforge-prod-db)、CORS、OAuth 登録手順、GCP プロジェクト名、GitHub Secret 名(GCP_SA_KEY_STG↔_PROD)など大半が env 固有値。jscpd が検出した 9 行 clone は表ヘッダ等の共通テンプレ行のみ。Validation
make infra-fmt-check: pass(fmt 差分なし)make infra-validate: pass(dev / stg / prod すべて "Success! The configuration is valid.")tofu plan(各環境): 未実行(GCS backend / state 認証が必要なため。state 影響なしの根拠は State Migration 参照)make dupe-check: HCL 3.04% → 0.00%(46/1514 行 → 0/1411 行)。残る infra clone はENV_CHECKLIST.md(stg↔prod, 9 行 ×2、allowed)のみ。Follow-ups
refactor/backend/deadcode(無関係な backend 作業ブランチ)上で変更している。コミット前にorigin/dev起点で infra 専用ブランチを切り、本変更だけを載せること(プロジェクト規約)。tofu -chdir=infra/environments/{dev,stg,prod} planを実行し、No changesを確認(state 影響なしの最終確認)。docs/に正本化する別 PR を検討(本 PR スコープ外)。