docs: Doppler Personal Config セットアップガイドとテンプレートを追加 - #604
Conversation
- docs/doppler-setup-guide.md: dev / dev_personal 構成の運用ガイド - セットアップ手順、package.json scripts、DevContainer 統合 - GitHub Actions 統合、1Password からの移行手順 - トラブルシューティング(DOPPLER_CONFIG 優先順位等) - templates/doppler.yaml: プロジェクト設定テンプレート - dev_personal をデフォルト config に設定 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughAdded documentation and repository assets to enable Doppler secret-management setup: a detailed setup guide, a CLI-driven setup command spec, and a default Doppler configuration template; README directory listings were updated to reference these new files. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~8 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
🔍 AI Code Review (Local Hook)Models: Codex (default) / Gemini (default) 🤖 Codex Review指摘事項はありません。変更はドキュメントとテンプレート追加のみで、正確性・セキュリティ・保守性に影響する問題は見当たりません。 全体判定: patch is correct。ドキュメント/テンプレート追加のみで、動作への影響や不整合を確認できないため。信頼度 0.62 🤖 Generated by post_pr_ai_review.py hook |
🔍 AI Code Review (Local Hook)Models: Codex (default) / Gemini (default) 🤖 Codex Review以下は変更点に対するレビューです。 指摘事項
判定
|
PR レビュードキュメントとテンプレート追加のみの変更ですが、いくつか指摘事項があります。 要修正: .doppler.yaml のファイル名誤記docs/doppler-setup-guide.md 内で .doppler.yaml(ドットあり)と記述されている箇所が複数ありますが、Doppler CLI の doppler setup が生成するプロジェクト設定ファイルは doppler.yaml(ドットなし)です。
この誤記があると、開発者が間違ったファイル名を期待して設定が読まれない原因に気づけないトラブルが発生しえます。 改善提案|| true のサイレント失敗(L113付近) DOPPLER_TOKEN が未設定の場合にサイレントで失敗し、開発者が気づかないまま作業を開始するリスクがあります。以下のようにワーニングを出す形を推奨します: GitHub Actions のアクションバージョン(L130付近) uses: dopplerhq/secrets-fetch-action@v2 はメジャーバージョンタグで可変参照のため、予期しない更新でワークフローが壊れる可能性があります。SHA ピン推奨の注記を添えると親切です。 templates/doppler.yaml — dev_personal が未作成の場合のフォールバック説明 config: dev_personal を使う前に Personal Config を作成する必要がありますが、未作成のまま doppler run を実行するとエラーになります。テンプレートのコメントに「Personal Config が未作成の場合は config: dev に変更して doppler setup を再実行すること」などのフォールバック手順を追記することを提案します。 問題なし
マージ前に .doppler.yaml から doppler.yaml への誤記修正をお願いします。 その他は提案レベルです。 |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
docs/doppler-setup-guide.md (1)
1-202: Consider adding a status indicator for integration examples.This guide provides valuable documentation for Doppler setup patterns. However, to avoid confusion, consider adding a status indicator (e.g., "✅ Implemented", "📋 Pattern for adoption", "🚧 Planned") to each integration section to clarify which patterns are currently applied to this repository versus examples for projects adopting Doppler.
This would help readers distinguish between:
- Patterns ready to use in this repository
- Examples for other projects to follow
- Planned future enhancements
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/doppler-setup-guide.md` around lines 1 - 202, Add a one-line status indicator (e.g., "✅ Implemented", "📋 Pattern for adoption", "🚧 Planned") at the top of each integration section such as the "DevContainer での統合" block, the "GitHub Actions での統合" block, the "package.json の推奨 scripts" examples, and the "doppler.yaml テンプレート" snippet to clarify what's already used in this repo vs. examples; update the three code/example blocks (the .devcontainer/devcontainer.json snippet, the GitHub Actions yaml snippet, and the package.json scripts snippet) by prepending a short status line and ensure the chosen status matches the repository's current usage (e.g., mark DevContainer integration as ✅ if present, GitHub Actions as ✅/📋 as appropriate), leaving the rest of the content unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/doppler-setup-guide.md`:
- Around line 182-194: The docs describe migrating to Doppler but the
credentials framework (script/credentials.sh) only supports the `op` provider;
either implement a Doppler provider or update the docs to avoid implying
integration. To implement: add a new provider script at
script/credentials/providers/doppler.sh that implements the
credential_provider::inject interface used by script/credentials.sh, register
the provider name so the pluggable loader recognizes `doppler`, and implement
the necessary operations referenced by the guide (import into `dev`, move
personal diffs, place doppler.yaml, and CI token handling). Alternatively,
update the migration section to explicitly state migration is manual or a future
enhancement if you don’t want to add the provider now.
- Around line 104-121: The docs claim a DevContainer integration using
containerEnv DOPPLER_TOKEN and a postStartCommand "doppler setup
--no-interactive || true" but the repository's .devcontainer/devcontainer.json
only defines CLAUDE_ENV_FILE and CLAUDE_CODE_DISABLE_1M_CONTEXT; update the repo
or the docs to match: either add the containerEnv entry ("DOPPLER_TOKEN":
"${localEnv:DOPPLER_TOKEN}") and the postStartCommand to
.devcontainer/devcontainer.json so the documented pattern is implemented, or
change the docs text to clearly state this is an example pattern (not applied
here) and remove or annotate the JSON snippet to avoid implying it exists in
this repository; reference DOPPLER_TOKEN, containerEnv, postStartCommand and the
command doppler setup to locate the relevant code and docs to change.
- Around line 8-14: Add a language identifier to the fenced code block that
starts with "Doppler Project: my-app" by changing the opening ``` to ```text so
the block is typed (e.g., ```text) and the markdown linter stops flagging it; do
not alter the block content otherwise.
---
Nitpick comments:
In `@docs/doppler-setup-guide.md`:
- Around line 1-202: Add a one-line status indicator (e.g., "✅ Implemented", "📋
Pattern for adoption", "🚧 Planned") at the top of each integration section such
as the "DevContainer での統合" block, the "GitHub Actions での統合" block, the
"package.json の推奨 scripts" examples, and the "doppler.yaml テンプレート" snippet to
clarify what's already used in this repo vs. examples; update the three
code/example blocks (the .devcontainer/devcontainer.json snippet, the GitHub
Actions yaml snippet, and the package.json scripts snippet) by prepending a
short status line and ensure the chosen status matches the repository's current
usage (e.g., mark DevContainer integration as ✅ if present, GitHub Actions as
✅/📋 as appropriate), leaving the rest of the content unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 80089c52-2040-4d2e-9ef6-b29a0425adee
📒 Files selected for processing (3)
README.mddocs/doppler-setup-guide.mdtemplates/doppler.yaml
| ``` | ||
| Doppler Project: my-app | ||
| ├── dev # チーム共通の開発用シークレット | ||
| ├── dev_personal # 各開発者の個人差分(Personal Config) | ||
| ├── stg # ステージング(CI/CD token で取得) | ||
| └── prd # 本番(CI/CD token で取得) | ||
| ``` |
There was a problem hiding this comment.
Fix the fenced code block language identifier.
The fenced code block is missing a language identifier, which violates markdown linting rules.
📝 Proposed fix
-```
+```text
Doppler Project: my-app
├── dev # チーム共通の開発用シークレット
├── dev_personal # 各開発者の個人差分(Personal Config)
├── stg # ステージング(CI/CD token で取得)
└── prd # 本番(Service Token で取得)
</details>
As per coding guidelines, "Fail on code formatting violations during code review" for `**/*.md` files.
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.21.0)</summary>
[warning] 8-8: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @docs/doppler-setup-guide.md around lines 8 - 14, Add a language identifier
to the fenced code block that starts with "Doppler Project: my-app" by changing
the opening totext so the block is typed (e.g., ```text) and the
markdown linter stops flagging it; do not alter the block content otherwise.
</details>
<!-- fingerprinting:phantom:triton:puma -->
<!-- This is an auto-generated comment by CodeRabbit -->
| ## DevContainer での統合 | ||
|
|
||
| ### containerEnv で Doppler を使う | ||
|
|
||
| `.devcontainer/devcontainer.json`: | ||
|
|
||
| ```json | ||
| { | ||
| "containerEnv": { | ||
| "DOPPLER_TOKEN": "${localEnv:DOPPLER_TOKEN}" | ||
| }, | ||
| "postStartCommand": "doppler setup --no-interactive || true" | ||
| } | ||
| ``` | ||
|
|
||
| > `DOPPLER_TOKEN` はホストマシンの環境変数から注入。 | ||
| > Service Token(`dp.st.*`)または Personal Token(`dp.pt.*`)を設定する。 | ||
|
|
There was a problem hiding this comment.
Documentation describes unimplemented DevContainer integration.
The guide documents DOPPLER_TOKEN in containerEnv and postStartCommand, but the actual .devcontainer/devcontainer.json (lines 34-37) only contains CLAUDE_ENV_FILE and CLAUDE_CODE_DISABLE_1M_CONTEXT. The Doppler integration pattern shown here hasn't been applied to the repository's DevContainer configuration.
This creates a gap where developers following the guide will find that the described integration doesn't match the actual implementation.
Recommendation: Either:
- Apply the Doppler integration to the actual
devcontainer.json, or - Clarify that this section describes a pattern for projects adopting Doppler, not the current state of this repository
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/doppler-setup-guide.md` around lines 104 - 121, The docs claim a
DevContainer integration using containerEnv DOPPLER_TOKEN and a postStartCommand
"doppler setup --no-interactive || true" but the repository's
.devcontainer/devcontainer.json only defines CLAUDE_ENV_FILE and
CLAUDE_CODE_DISABLE_1M_CONTEXT; update the repo or the docs to match: either add
the containerEnv entry ("DOPPLER_TOKEN": "${localEnv:DOPPLER_TOKEN}") and the
postStartCommand to .devcontainer/devcontainer.json so the documented pattern is
implemented, or change the docs text to clearly state this is an example pattern
(not applied here) and remove or annotate the JSON snippet to avoid implying it
exists in this repository; reference DOPPLER_TOKEN, containerEnv,
postStartCommand and the command doppler setup to locate the relevant code and
docs to change.
| ## 既存の 1Password 管理からの移行 | ||
|
|
||
| このリポジトリでは `script/setup-env.sh` + 1Password CLI でシークレットを管理しているが、 | ||
| プロジェクトごとに Doppler に移行する場合の手順: | ||
|
|
||
| 1. 1Password のシークレットを Doppler の `dev` config にインポート | ||
| 2. 個人差分を `dev_personal` に移動 | ||
| 3. `doppler.yaml` をプロジェクトルートに配置 | ||
| 4. `package.json` に `dev:doppler` スクリプトを追加 | ||
| 5. CI/CD の `secrets` を Doppler の Service Token に置き換え | ||
|
|
||
| > 1Password と Doppler は併用可能。1Password は長期保管の認証情報、 | ||
| > Doppler はアプリケーション実行時のシークレット注入という使い分けが有効。 |
There was a problem hiding this comment.
Migration steps lack implementation support in the credential infrastructure.
The guide describes migrating from 1Password to Doppler (lines 184-191), but the current script/credentials.sh framework has no Doppler provider plugin implemented. The pluggable provider system (see script/credentials.sh:1-122) only supports 1Password via the op provider.
To actually enable the migration workflow described here, a Doppler provider plugin would need to be added to script/credentials/providers/doppler.sh implementing the credential_provider::inject interface.
Recommendation: Either:
- Implement a Doppler provider plugin for
credentials.shto support the migration workflow, or - Clarify that migration is a manual process outside the existing credential management framework, or
- Document this as a future enhancement and note that the current repository still uses 1Password exclusively
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/doppler-setup-guide.md` around lines 182 - 194, The docs describe
migrating to Doppler but the credentials framework (script/credentials.sh) only
supports the `op` provider; either implement a Doppler provider or update the
docs to avoid implying integration. To implement: add a new provider script at
script/credentials/providers/doppler.sh that implements the
credential_provider::inject interface used by script/credentials.sh, register
the provider name so the pluggable loader recognizes `doppler`, and implement
the necessary operations referenced by the guide (import into `dev`, move
personal diffs, place doppler.yaml, and CI token handling). Alternatively,
update the migration section to explicitly state migration is manual or a future
enhancement if you don’t want to add the provider now.
Doppler シークレット管理の対話的セットアップコマンド: - doppler.yaml の作成・更新(プロジェクト名は対話的に指定) - package.json に dev:doppler スクリプトを追加 - .gitignore に .doppler.yaml を追加 - DevContainer / Codespaces への DOPPLER_TOKEN 統合提案 - GitHub Actions 統合の手順提示 - --check モードで現在の設定状況を確認 使い方: /setup-doppler /setup-doppler --project my-app /setup-doppler --check Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
🎉 This PR is included in version 1.101.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary
Doppler を使ったシークレット管理の
dev/dev_personal構成を導入するためのガイドとテンプレートを追加。追加ファイル
docs/doppler-setup-guide.md— 包括的なセットアップガイドdev(チーム共通)+dev_personal(個人差分)の構成説明package.jsonscripts、DevContainer 統合、GitHub Actions 統合DOPPLER_CONFIG優先順位等)templates/doppler.yaml— プロジェクト設定テンプレートdev_personalをデフォルト config に設定運用ルール
devdev_personalstg/prd(Service Token)Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit