Skip to content

環境変数ごとに同期先プロバイダーを指定可能にする #11

Description

@polidog

要件

背景

現状の --provider vercel|github は CLI フラグで全変数に一律適用され、変数ごとに同期先(Vercel / GitHub Actions)を選べない。1 つの env-sync.yaml 内で「この変数は Vercel、この変数は GitHub」と混在指定できるようにしたい。

変更内容

  • env-sync.yamlvariables 各エントリと defaultsprovider フィールドを追加する。
    • 値は vercel | github、または両方へ送る配列 [vercel, github] を許可する。
  • 解決順序(優先度高い順): 変数個別の providerdefaults.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 の各変数および defaultsprovider: 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 ./... を実行して全テストが通ることを確認。

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions