diff options
| author | Paul Buetow <paul@buetow.org> | 2025-07-19 16:29:06 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-07-19 16:29:06 +0300 |
| commit | 2ca1d94d1c6785a40b722a581a842be6a8741cc6 (patch) | |
| tree | 4f5ee4a0a3f6f320b2f6b2ea08792f8fafece482 /internal/cmd | |
| parent | e23fc252fbac2aba69f1f1268af9425af4d43d19 (diff) | |
feat: add support for aichat as AI tool for release notesv0.8.0
- Add --ai-tool flag to release and sync commands
- Support both 'claude' and 'aichat' options (default: claude)
- Update GenerateAIReleaseNotes to handle both tools
- Add tool-specific error messages and hints
- Update documentation with usage examples
This allows users to choose between Claude CLI and aichat for
generating AI-powered release notes.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'internal/cmd')
| -rw-r--r-- | internal/cmd/release.go | 8 | ||||
| -rw-r--r-- | internal/cmd/sync.go | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/internal/cmd/release.go b/internal/cmd/release.go index f05005a..f9fa04f 100644 --- a/internal/cmd/release.go +++ b/internal/cmd/release.go @@ -12,6 +12,7 @@ var ( noAINotes bool updateExisting bool templatePath string + aiTool string ) var releaseCmd = &cobra.Command{ @@ -70,13 +71,17 @@ If no repository is specified, processes all configured repositories.`, gitsyncer release create --update-existing # Create for specific repository without AI - gitsyncer release create myproject --no-ai-notes`, + gitsyncer release create myproject --no-ai-notes + + # Use aichat instead of claude for AI release notes + gitsyncer release create --ai-tool aichat`, Run: func(cmd *cobra.Command, args []string) { flags := buildFlags() flags.CheckReleases = true flags.AutoCreateReleases = autoRelease flags.AIReleaseNotes = !noAINotes flags.UpdateReleases = updateExisting + flags.AITool = aiTool if len(args) > 0 { // Create releases for specific repo @@ -103,4 +108,5 @@ func init() { releaseCreateCmd.Flags().BoolVar(&noAINotes, "no-ai-notes", false, "disable AI-generated release notes (AI notes are enabled by default)") releaseCreateCmd.Flags().BoolVar(&updateExisting, "update-existing", false, "update existing releases with new AI-generated notes") releaseCreateCmd.Flags().StringVar(&templatePath, "template", "", "custom template for release notes") + releaseCreateCmd.Flags().StringVar(&aiTool, "ai-tool", "claude", "AI tool to use for release notes (claude or aichat)") }
\ No newline at end of file diff --git a/internal/cmd/sync.go b/internal/cmd/sync.go index abedb7e..9fcf0fd 100644 --- a/internal/cmd/sync.go +++ b/internal/cmd/sync.go @@ -14,6 +14,7 @@ var ( noReleases bool autoCreate bool noAIReleaseNotes bool + syncAITool string ) var syncCmd = &cobra.Command{ @@ -39,7 +40,10 @@ var syncRepoCmd = &cobra.Command{ gitsyncer sync repo myproject --dry-run # Sync without AI-generated release notes - gitsyncer sync repo myproject --no-ai-release-notes`, + gitsyncer sync repo myproject --no-ai-release-notes + + # Auto-create releases using aichat for AI notes + gitsyncer sync repo myproject --auto-create-releases --ai-tool aichat`, Run: func(cmd *cobra.Command, args []string) { flags := buildFlags() flags.SyncRepo = args[0] @@ -185,6 +189,7 @@ func init() { syncCmd.PersistentFlags().BoolVar(&noReleases, "no-releases", false, "skip release checking after sync") syncCmd.PersistentFlags().BoolVar(&autoCreate, "auto-create-releases", false, "automatically create releases without confirmation") syncCmd.PersistentFlags().BoolVar(&noAIReleaseNotes, "no-ai-release-notes", false, "disable AI-generated release notes (AI notes are enabled by default)") + syncCmd.PersistentFlags().StringVar(&syncAITool, "ai-tool", "claude", "AI tool to use for release notes when auto-creating (claude or aichat)") } func buildFlags() *cli.Flags { @@ -196,6 +201,7 @@ func buildFlags() *cli.Flags { NoCheckReleases: noReleases, AutoCreateReleases: autoCreate, AIReleaseNotes: !noAIReleaseNotes, + AITool: syncAITool, CreateGitHubRepos: createRepos, CreateCodebergRepos: createRepos, } |
