Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,8 @@ variables:

`environments` には `production` / `preview` / `development` を指定。省略時(空)は `production` と `preview` をデフォルト適用。

`environments` には Custom Environment の slug(例 `staging`)も指定可。Custom Environment は Vercel 側で事前作成が必要で、存在しない slug はエラー。標準環境と混在指定も可能(例 `[production, staging]`)。

#### GitHub Actions における各フィールドの意味

| `secret` | 登録先 | 説明 |
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,8 @@ variables:

`environments` accepts `production` / `preview` / `development`. Defaults to `production` and `preview` when omitted.

`environments` also accepts custom environment slugs (e.g. `staging`). Custom environments must be pre-created in the Vercel project; a non-existent slug results in an error. Standard and custom values can be mixed (e.g. `[production, staging]`).

#### Field Meanings for GitHub Actions

| `secret` | Target | Description |
Expand Down
3 changes: 3 additions & 0 deletions env-sync.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
#
# environments: [] 登録先環境の配列
# Vercel: production|preview|development(空なら production と preview)
# または Custom Environment の slug(例: staging)
# ※ Custom Environment は Vercel 側で事前作成が必要。存在しない slug はエラー。
# ※ 標準環境と Custom Environment は混在指定可(例: [production, staging])
# GitHub: named environment 名(空なら repo レベル)
# ※ GitHub の named environment は事前に作成が必要
#
Expand Down
45 changes: 24 additions & 21 deletions internal/i18n/catalog_en.go
Original file line number Diff line number Diff line change
Expand Up @@ -229,27 +229,30 @@ YAML schema (definition file env-sync.yaml):
"# Add projects[] / repos[] (for monorepo multi-target) manually.\n",

// ----- Vercel Provider -----
MsgVercelTokenMissing: "VERCEL_TOKEN is not set (set VERCEL_TOKEN env var or vercel.token in config file)",
MsgVercelTokenMissingProject: "VERCEL_TOKEN is not set (project %q: set VERCEL_TOKEN env var or token in config file)",
MsgVercelTokenSkipProject: "✗ project %q: VERCEL_TOKEN is not set (skipping this target and continuing)\n",
MsgVercelExistingKeysFetchWarn: "Warning: failed to fetch existing keys, skipping new/update classification: %s\n",
MsgVercelTargetProject: "Target project: %s (env: %s, def: %s)\n",
MsgVercelEntriesUpsert: "%d entries (existing will be overwritten by upsert):\n",
MsgVercelConfirmMulti: "Register the above to %d Vercel projects (existing will be overwritten). Continue? (y/N) ",
MsgVercelConfirmSingle: "Register the above to Vercel (existing will be overwritten). Continue? (y/N) ",
MsgVercelProjectSeparator: "\n--- project: %s ---\n",
MsgVercelURLBuildFailOut: "✗ failed to build URL: %s\n",
MsgVercelRequestCreateFailOut: "✗ %s -> failed to create request: %s\n",
MsgVercelSendFailOut: "✗ %s -> failed to send: %s\n",
MsgVercelProjectJSONReadFail: "failed to read .vercel/project.json: %s",
MsgVercelProjectJSONParseFail: "failed to parse .vercel/project.json: %s",
MsgVercelProjectIDMissing: "VERCEL_PROJECT_ID is not set and .vercel/project.json not found (run vercel link first or specify the project ID)",
MsgVercelProjectNotDefined: "%s: vercel_project is specified but vercel.projects is not defined in config (use vercel_project together with vercel.projects[])",
MsgVercelProjectInvalidConfig: "%s: vercel_project %q does not exist in config vercel.projects (defined: %s)",
MsgVercelInvalidEnvironment: "%s: invalid environments value %q (must be production / preview / development)",
MsgVercelURLBuildFailInternal: "failed to build URL",
MsgVercelExistingKeyFetchFail: "failed to fetch existing keys",
MsgVercelExistingKeyParseFail: "failed to parse existing keys response",
MsgVercelTokenMissing: "VERCEL_TOKEN is not set (set VERCEL_TOKEN env var or vercel.token in config file)",
MsgVercelTokenMissingProject: "VERCEL_TOKEN is not set (project %q: set VERCEL_TOKEN env var or token in config file)",
MsgVercelTokenSkipProject: "✗ project %q: VERCEL_TOKEN is not set (skipping this target and continuing)\n",
MsgVercelExistingKeysFetchWarn: "Warning: failed to fetch existing keys, skipping new/update classification: %s\n",
MsgVercelTargetProject: "Target project: %s (env: %s, def: %s)\n",
MsgVercelEntriesUpsert: "%d entries (existing will be overwritten by upsert):\n",
MsgVercelConfirmMulti: "Register the above to %d Vercel projects (existing will be overwritten). Continue? (y/N) ",
MsgVercelConfirmSingle: "Register the above to Vercel (existing will be overwritten). Continue? (y/N) ",
MsgVercelProjectSeparator: "\n--- project: %s ---\n",
MsgVercelURLBuildFailOut: "✗ failed to build URL: %s\n",
MsgVercelRequestCreateFailOut: "✗ %s -> failed to create request: %s\n",
MsgVercelSendFailOut: "✗ %s -> failed to send: %s\n",
MsgVercelProjectJSONReadFail: "failed to read .vercel/project.json: %s",
MsgVercelProjectJSONParseFail: "failed to parse .vercel/project.json: %s",
MsgVercelProjectIDMissing: "VERCEL_PROJECT_ID is not set and .vercel/project.json not found (run vercel link first or specify the project ID)",
MsgVercelProjectNotDefined: "%s: vercel_project is specified but vercel.projects is not defined in config (use vercel_project together with vercel.projects[])",
MsgVercelProjectInvalidConfig: "%s: vercel_project %q does not exist in config vercel.projects (defined: %s)",
MsgVercelCustomEnvNotFound: "custom environment %q does not exist in project %s (available: %s)",
MsgVercelCustomEnvFetchFail: "failed to fetch custom environments",
MsgVercelCustomEnvParseFail: "failed to parse custom environments response",
MsgVercelCustomEnvNoneAvailable: "(none — please create a Custom Environment in the Vercel dashboard first)",
MsgVercelURLBuildFailInternal: "failed to build URL",
MsgVercelExistingKeyFetchFail: "failed to fetch existing keys",
MsgVercelExistingKeyParseFail: "failed to parse existing keys response",

// ----- GitHub Provider -----
MsgGitHubTokenMissing: "GITHUB_TOKEN is not set (set GITHUB_TOKEN env var or github.token in config file)",
Expand Down
45 changes: 24 additions & 21 deletions internal/i18n/catalog_ja.go
Original file line number Diff line number Diff line change
Expand Up @@ -229,27 +229,30 @@ YAML スキーマ(定義ファイル env-sync.yaml):
"# projects[] / repos[](モノレポ向け複数ターゲット)は手で追記してください。\n",

// ----- Vercel Provider -----
MsgVercelTokenMissing: "VERCEL_TOKEN が未設定です(環境変数 VERCEL_TOKEN または config ファイルの vercel.token で指定してください)",
MsgVercelTokenMissingProject: "VERCEL_TOKEN が未設定です(プロジェクト %q: 環境変数 VERCEL_TOKEN または config ファイルの token で指定してください)",
MsgVercelTokenSkipProject: "✗ プロジェクト %q: VERCEL_TOKEN が未設定です(このターゲットをスキップして残りを継続します)\n",
MsgVercelExistingKeysFetchWarn: "警告: 既存 key の取得に失敗したため新規/更新の分類をスキップします: %s\n",
MsgVercelTargetProject: "対象プロジェクト: %s (env: %s, def: %s)\n",
MsgVercelEntriesUpsert: "登録対象 %d 件 (既存は upsert で上書き):\n",
MsgVercelConfirmMulti: "上記を Vercel の %d プロジェクトに登録します(既存は上書き)。続行しますか? (y/N) ",
MsgVercelConfirmSingle: "上記を Vercel に登録します(既存は上書き)。続行しますか? (y/N) ",
MsgVercelProjectSeparator: "\n--- プロジェクト: %s ---\n",
MsgVercelURLBuildFailOut: "✗ URL の組み立てに失敗: %s\n",
MsgVercelRequestCreateFailOut: "✗ %s -> リクエスト生成失敗: %s\n",
MsgVercelSendFailOut: "✗ %s -> 送信失敗: %s\n",
MsgVercelProjectJSONReadFail: ".vercel/project.json の読み込みに失敗: %s",
MsgVercelProjectJSONParseFail: ".vercel/project.json の JSON パースに失敗: %s",
MsgVercelProjectIDMissing: "VERCEL_PROJECT_ID が未設定で .vercel/project.json もありません(先に vercel link するか指定してください)",
MsgVercelProjectNotDefined: "%s: vercel_project が指定されていますが config に vercel.projects が定義されていません(vercel_project は vercel.projects[] と組み合わせて使用してください)",
MsgVercelProjectInvalidConfig: "%s: vercel_project %q は config の vercel.projects に存在しません(定義済み: %s)",
MsgVercelInvalidEnvironment: "%s: 不正な environments %q(production / preview / development)",
MsgVercelURLBuildFailInternal: "URL 組み立て失敗",
MsgVercelExistingKeyFetchFail: "既存 key 取得失敗",
MsgVercelExistingKeyParseFail: "既存 key レスポンスのパース失敗",
MsgVercelTokenMissing: "VERCEL_TOKEN が未設定です(環境変数 VERCEL_TOKEN または config ファイルの vercel.token で指定してください)",
MsgVercelTokenMissingProject: "VERCEL_TOKEN が未設定です(プロジェクト %q: 環境変数 VERCEL_TOKEN または config ファイルの token で指定してください)",
MsgVercelTokenSkipProject: "✗ プロジェクト %q: VERCEL_TOKEN が未設定です(このターゲットをスキップして残りを継続します)\n",
MsgVercelExistingKeysFetchWarn: "警告: 既存 key の取得に失敗したため新規/更新の分類をスキップします: %s\n",
MsgVercelTargetProject: "対象プロジェクト: %s (env: %s, def: %s)\n",
MsgVercelEntriesUpsert: "登録対象 %d 件 (既存は upsert で上書き):\n",
MsgVercelConfirmMulti: "上記を Vercel の %d プロジェクトに登録します(既存は上書き)。続行しますか? (y/N) ",
MsgVercelConfirmSingle: "上記を Vercel に登録します(既存は上書き)。続行しますか? (y/N) ",
MsgVercelProjectSeparator: "\n--- プロジェクト: %s ---\n",
MsgVercelURLBuildFailOut: "✗ URL の組み立てに失敗: %s\n",
MsgVercelRequestCreateFailOut: "✗ %s -> リクエスト生成失敗: %s\n",
MsgVercelSendFailOut: "✗ %s -> 送信失敗: %s\n",
MsgVercelProjectJSONReadFail: ".vercel/project.json の読み込みに失敗: %s",
MsgVercelProjectJSONParseFail: ".vercel/project.json の JSON パースに失敗: %s",
MsgVercelProjectIDMissing: "VERCEL_PROJECT_ID が未設定で .vercel/project.json もありません(先に vercel link するか指定してください)",
MsgVercelProjectNotDefined: "%s: vercel_project が指定されていますが config に vercel.projects が定義されていません(vercel_project は vercel.projects[] と組み合わせて使用してください)",
MsgVercelProjectInvalidConfig: "%s: vercel_project %q は config の vercel.projects に存在しません(定義済み: %s)",
MsgVercelCustomEnvNotFound: "Custom Environment %q がプロジェクト %s に存在しません(利用可能な Custom Environment: %s)",
MsgVercelCustomEnvFetchFail: "Custom Environment 一覧の取得に失敗",
MsgVercelCustomEnvParseFail: "Custom Environment 一覧のパースに失敗",
MsgVercelCustomEnvNoneAvailable: "(なし — Vercel ダッシュボードで事前に作成してください)",
MsgVercelURLBuildFailInternal: "URL 組み立て失敗",
MsgVercelExistingKeyFetchFail: "既存 key 取得失敗",
MsgVercelExistingKeyParseFail: "既存 key レスポンスのパース失敗",

// ----- GitHub Provider -----
MsgGitHubTokenMissing: "GITHUB_TOKEN が未設定です(環境変数 GITHUB_TOKEN または config ファイルの github.token で指定してください)",
Expand Down
11 changes: 9 additions & 2 deletions internal/i18n/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,15 @@ const (
MsgVercelProjectNotDefined MsgKey = "vercel.project_not_defined"
// MsgVercelProjectInvalidConfig は vercel_project が config に存在しないエラー(書式: キー名, プロジェクト名, 定義済みリスト)。
MsgVercelProjectInvalidConfig MsgKey = "vercel.project_invalid_config"
// MsgVercelInvalidEnvironment は不正な environment 値エラー(書式: キー名, 値)。
MsgVercelInvalidEnvironment MsgKey = "vercel.invalid_environment"
// MsgVercelCustomEnvNotFound は指定した Custom Environment slug がプロジェクトに存在しないエラー
// (書式引数: slug, プロジェクトラベル, 利用可能 slug 一覧)。
MsgVercelCustomEnvNotFound MsgKey = "vercel.custom_env_not_found"
// MsgVercelCustomEnvFetchFail は Custom Environment 一覧取得失敗ラベル(%w ラップ用)。
MsgVercelCustomEnvFetchFail MsgKey = "vercel.custom_env_fetch_fail"
// MsgVercelCustomEnvParseFail は Custom Environment 一覧レスポンスのパース失敗ラベル(%w ラップ用)。
MsgVercelCustomEnvParseFail MsgKey = "vercel.custom_env_parse_fail"
// MsgVercelCustomEnvNoneAvailable はプロジェクトに Custom Environment が 1 件もない場合の「利用可能なし」ラベル。
MsgVercelCustomEnvNoneAvailable MsgKey = "vercel.custom_env_none_available"
// MsgVercelURLBuildFailInternal は vercelFetchExistingKeys の URL 組み立て失敗ラベル(%w ラップ用)。
MsgVercelURLBuildFailInternal MsgKey = "vercel.url_build_fail_internal"
// MsgVercelExistingKeyFetchFail は既存 key 取得失敗ラベル(%w ラップ用)。
Expand Down
Loading