要件
背景
現状の --provider vercel|github は CLI フラグで全変数に一律適用され、変数ごとに同期先(Vercel / GitHub Actions)を選べない。1 つの env-sync.yaml 内で「この変数は Vercel、この変数は GitHub」と混在指定できるようにしたい。
変更内容
env-sync.yaml の variables 各エントリと defaults に provider フィールドを追加する。
- 値は
vercel | github、または両方へ送る配列 [vercel, github] を許可する。
- 解決順序(優先度高い順): 変数個別の
provider → defaults.provider → CLI --provider フラグ(後方互換のデフォルト)。
- いずれも未指定なら従来どおり
--provider のデフォルト(vercel)が使われる。
- 1 回の実行で複数プロバイダーへ振り分けて同期する(Vercel 行きと GitHub 行きを集約してそれぞれ送信)。
- プロバイダー固有フィールドは該当プロバイダーに送る場合のみ適用する(Vercel:
type/target、GitHub: kind)。GitHub に送る変数で kind 未指定なら従来どおり secret デフォルト。
--dry-run の一覧出力に各 key の同期先プロバイダーを表示する。
- 不正な provider 値(vercel/github 以外)はエラーで中止する。
- README と
env-sync.yaml のコメントに provider フィールドの説明と混在指定の例を追記する。
留意点
完了条件
完了条件
env-sync.yaml の各変数および defaults で provider: vercel / provider: github / provider: [vercel, github] が宣言できる。
- 変数個別 > defaults > CLI
--provider の優先順位で同期先が解決される。
provider をどこにも書かない既存の env-sync.yaml は従来どおり --provider フラグ(デフォルト vercel)で動作する(後方互換)。
- 1 回の実行で Vercel 向け・GitHub 向けの変数が混在していても、それぞれ正しいプロバイダーへ同期される。
- GitHub へ送る変数の
kind 未指定時のデフォルトが secret のまま維持される。
- 不正な
provider 値を指定するとエラーメッセージを出して中止する。
--dry-run で各 key の同期先プロバイダーが確認できる。
- README と
env-sync.yaml コメントに provider フィールドの説明・例が追記されている。
- 追加・変更したロジックに対応するテストが追加され、
go test ./... が通る。
確認手順
- Vercel と GitHub を混在させた
env-sync.yaml を用意し、./env-sync --env .env --dry-run を実行 → 各 key の同期先プロバイダーが一覧表示されることを確認。
provider を書かない既存設定で --dry-run を実行 → 従来どおり --provider のデフォルト先になることを確認。
- 不正な provider 値(例
provider: gitlab)を入れて実行 → エラーで中止することを確認。
go test ./... を実行して全テストが通ることを確認。
要件
背景
現状の
--provider vercel|githubは CLI フラグで全変数に一律適用され、変数ごとに同期先(Vercel / GitHub Actions)を選べない。1 つのenv-sync.yaml内で「この変数は Vercel、この変数は GitHub」と混在指定できるようにしたい。変更内容
env-sync.yamlのvariables各エントリとdefaultsにproviderフィールドを追加する。vercel|github、または両方へ送る配列[vercel, github]を許可する。provider→defaults.provider→ CLI--providerフラグ(後方互換のデフォルト)。--providerのデフォルト(vercel)が使われる。type/target、GitHub:kind)。GitHub に送る変数でkind未指定なら従来どおりsecretデフォルト。--dry-runの一覧出力に各 key の同期先プロバイダーを表示する。env-sync.yamlのコメントにproviderフィールドの説明と混在指定の例を追記する。留意点
完了条件
完了条件
env-sync.yamlの各変数およびdefaultsでprovider: vercel/provider: github/provider: [vercel, github]が宣言できる。--providerの優先順位で同期先が解決される。providerをどこにも書かない既存のenv-sync.yamlは従来どおり--providerフラグ(デフォルト vercel)で動作する(後方互換)。kind未指定時のデフォルトがsecretのまま維持される。provider値を指定するとエラーメッセージを出して中止する。--dry-runで各 key の同期先プロバイダーが確認できる。env-sync.yamlコメントにproviderフィールドの説明・例が追記されている。go test ./...が通る。確認手順
env-sync.yamlを用意し、./env-sync --env .env --dry-runを実行 → 各 key の同期先プロバイダーが一覧表示されることを確認。providerを書かない既存設定で--dry-runを実行 → 従来どおり--providerのデフォルト先になることを確認。provider: gitlab)を入れて実行 → エラーで中止することを確認。go test ./...を実行して全テストが通ることを確認。