Conversation
- main.go に --version フラグを追加し、ldflags でバージョン/コミット/ビルド日を埋め込めるようにした - .goreleaser.yaml を追加: darwin/linux × amd64/arm64 の4プラットフォームビルド、GitHub Release、Homebrew cask 自動生成 - .github/workflows/release.yml を追加: v* タグ push で goreleaser release を実行 - README にインストール手順(Homebrew / go install / バイナリDL)と HOMEBREW_TAP_TOKEN Secrets 設定手順を追記 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HUt4mQe7JfqLu2QPw6iYHL
parseFlags / parseDotenv / normalizeTarget と --version フラグの動作を検証する Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HUt4mQe7JfqLu2QPw6iYHL
There was a problem hiding this comment.
Pull request overview
GoReleaser を導入して vercel-env-sync をクロスコンパイルし、GitHub Releases / Homebrew tap 経由で配布できるようにするための変更です。あわせて --version フラグと統合テスト、README のインストール手順が追加されています。
Changes:
- GoReleaser 設定(クロスコンパイル + リリース作成 + Homebrew への自動生成/Push)を追加
- GitHub Actions で
v*タグ push をトリガにリリースするワークフローを追加 --versionフラグと統合テスト、README のインストール/Secrets 手順を追加
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | インストール手順(Homebrew / go install / Releases)と Homebrew tap 用 Secrets 手順を追加 |
| main.go | ldflags 由来のバージョン情報変数と --version 出力を追加 |
| main_test.go | parseFlags/parseDotenv/normalizeTarget と --version などの統合テストを追加 |
| .goreleaser.yaml | GoReleaser v2 のビルド/アーカイブ/リリース/Homebrew 設定を追加 |
| .gitignore | GoReleaser の dist/ を ignore に追加 |
| .github/workflows/release.yml | タグ push で GoReleaser release を実行するワークフローを追加 |
Comments suppressed due to low confidence (1)
main.go:332
--versionフラグを追加していますが、printUsage()のオプション一覧に--versionが載っていないため、--helpを見ても存在が分かりません。ヘルプ出力に--versionを追記してください。
os.Exit(0)
case arg == "-h" || arg == "--help":
printUsage()
os.Exit(0)
default:
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+41
to
+50
| homebrew_casks: | ||
| - name: vercel-env-sync | ||
| repository: | ||
| owner: ptyhard | ||
| name: homebrew-tap | ||
| token: "{{ .Env.HOMEBREW_TAP_TOKEN }}" | ||
| homepage: https://github.com/ptyhard/vercel-env-sync | ||
| description: "Sync environment variables to Vercel from a definition file" | ||
| binaries: | ||
| - vercel-env-sync |
Comment on lines
+23
to
+27
| ### go install | ||
|
|
||
| ```bash | ||
| go install github.com/ptyhard/vercel-env@latest | ||
| ``` |
| go-version-file: go.mod | ||
| - uses: goreleaser/goreleaser-action@v6 | ||
| with: | ||
| version: latest |
- go.mod: module path を github.com/ptyhard/vercel-env-sync に変更し、go install で入るバイナリ名を配布名と統一 - README: go install のパスを修正、Homebrew Cask 配布である旨と --cask 補足を追記、Secrets 説明を cask に修正 - release.yml: goreleaser version を latest → "~> v2" に固定して再現性を確保 - main.go: printUsage のオプション一覧に --version を追記 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HUt4mQe7JfqLu2QPw6iYHL
Member
Author
|
Copilot のレビュー指摘に対応しました(commit 40be90a)。
|
別 tap リポジトリ(ptyhard/homebrew-tap)への push をやめ、本リポジトリの Casks/ に cask を同梱する方式に変更。token を省略すると GITHUB_TOKEN が使われ るため、追加の PAT 設定が不要になる。 - .goreleaser.yaml: homebrew_casks の repository を self に向け、token 行を削除、directory: Casks を明示 - release.yml: 不要になった HOMEBREW_TAP_TOKEN env を削除 - README: brew tap を URL 指定方式に変更、Secrets 設定セクションをリリース手順(メンテナ向け)に置き換え Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HUt4mQe7JfqLu2QPw6iYHL
brew install ptyhard/tap/vercel-env-sync で導入できる標準的な形にするため、 cask の push 先を本リポジトリ同梱から別リポジトリ ptyhard/homebrew-tap に戻す。 2要素 brew install は Homebrew 非対応のため、tap リポジトリ方式が最短。 - .goreleaser.yaml: homebrew_casks の repository を homebrew-tap + HOMEBREW_TAP_TOKEN に - release.yml: HOMEBREW_TAP_TOKEN env を復活 - README: brew install ptyhard/tap/vercel-env-sync に戻し、HOMEBREW_TAP_TOKEN 設定手順を記載 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HUt4mQe7JfqLu2QPw6iYHL
# Conflicts: # main_test.go
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
タスク
vercel-env-sync を各環境向けバイナリとして配布できるようにする。
goreleaser checkが通る状態にする)。v*タグの push をトリガに goreleaser がリリースを作成する。--versionフラグを追加し、ldflags で渡したバージョン/コミット/日付を表示できるようにする。brew install ptyhard/tap/vercel-env-syncで導入できるようにする。完了条件
goreleaser checkがエラーなく通る。v*タグ push で goreleaser release が走る設定になっている。vercel-env-sync --versionでバージョン・コミット・ビルド日が表示される。brew install ptyhard/tap/vercel-env-syncで導入できる。動作確認
go vet・go buildエラーなし)品質チェック結果
なし(Critical / Warning ともに検出なし)
パフォーマンス診断
指摘なし(--version フラグは fmt.Printf + os.Exit のみ。実行時コストなし)
変更ファイル
main.go—--versionフラグと ldflags 変数を追加.goreleaser.yaml— GoReleaser v2 設定(homebrew_casks 使用).github/workflows/release.yml—v*タグ push トリガーのリリースワークフローREADME.md— Homebrew / go install / バイナリ直接DLのインストール手順と HOMEBREW_TAP_TOKEN 設定手順を追記main_test.go— parseFlags / parseDotenv / normalizeTarget / --version フラグの統合テスト(18件)セットアップ手順(初回のみ)
Homebrew tap への自動 push には
HOMEBREW_TAP_TOKENを GitHub Secrets に設定してください。詳細は README の「GitHub Secrets の設定」セクションを参照。