summaryrefslogtreecommitdiff
path: root/internal/cmd/release.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-10-31 20:13:32 +0200
committerPaul Buetow <paul@buetow.org>2025-10-31 20:13:32 +0200
commit11eea6a82cbfdde40ec1457c6ea080da4da6b7dc (patch)
tree8026068f6a3beb3ee02c45f06f4487f4b89caaf1 /internal/cmd/release.go
parent5c3e0b5cf99d028c4f06be7a825388b296e37a22 (diff)
feat: implement amp AI tool support and replace Taskfile with Magev0.10.0
- Add amp as default AI tool for release notes and showcase generation - Fallback chain: amp → hexai → claude → aichat - Replace Taskfile.yaml with magefile.go for build automation - Update all documentation (README.md, AGENTS.md, doc/development.md) - Update version to 0.10.0 Amp-Thread-ID: https://ampcode.com/threads/T-735ba1e2-0255-4b43-8ed1-6c0d2f78301b Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'internal/cmd/release.go')
-rw-r--r--internal/cmd/release.go26
1 files changed, 13 insertions, 13 deletions
diff --git a/internal/cmd/release.go b/internal/cmd/release.go
index 9f4e713..656f4a6 100644
--- a/internal/cmd/release.go
+++ b/internal/cmd/release.go
@@ -3,8 +3,8 @@ package cmd
import (
"os"
- "github.com/spf13/cobra"
"codeberg.org/snonux/gitsyncer/internal/cli"
+ "github.com/spf13/cobra"
)
var (
@@ -16,11 +16,11 @@ var (
)
var releaseCmd = &cobra.Command{
- Use: "release",
- Short: "Manage releases across platforms",
- Long: `Check for version tags without releases and create them across
-GitHub and Codeberg. Supports AI-generated release notes via hexai (stdin pipeline),
-with fallback to Claude or aichat.`,
+ Use: "release",
+ Short: "Manage releases across platforms",
+ Long: `Check for version tags without releases and create them across
+GitHub and Codeberg. Supports AI-generated release notes via amp (stdin pipeline),
+with fallback to hexai, Claude, or aichat.`,
}
var releaseCheckCmd = &cobra.Command{
@@ -40,7 +40,7 @@ If no repository is specified, checks all configured repositories.`,
Run: func(cmd *cobra.Command, args []string) {
flags := buildFlags()
flags.CheckReleases = true
-
+
if len(args) > 0 {
// Check specific repo
exitCode := cli.HandleCheckReleasesForRepo(cfg, flags, args[0])
@@ -74,8 +74,8 @@ If no repository is specified, processes all configured repositories.`,
# Create for specific repository without AI
gitsyncer release create myproject --no-ai-notes
- # Use aichat instead of claude for AI release notes
- gitsyncer release create --ai-tool aichat`,
+ # Use amp for AI release notes
+gitsyncer release create --ai-tool amp`,
Run: func(cmd *cobra.Command, args []string) {
flags := buildFlags()
flags.CheckReleases = true
@@ -83,7 +83,7 @@ If no repository is specified, processes all configured repositories.`,
flags.AIReleaseNotes = !noAINotes
flags.UpdateReleases = updateExisting
flags.AITool = aiTool
-
+
if len(args) > 0 {
// Create releases for specific repo
exitCode := cli.HandleCheckReleasesForRepo(cfg, flags, args[0])
@@ -100,14 +100,14 @@ func init() {
rootCmd.AddCommand(releaseCmd)
releaseCmd.AddCommand(releaseCheckCmd)
releaseCmd.AddCommand(releaseCreateCmd)
-
+
// Release flags
releaseCmd.PersistentFlags().BoolVar(&dryRun, "dry-run", false, "preview what releases would be created")
-
+
// Create-specific flags
releaseCreateCmd.Flags().BoolVar(&autoRelease, "auto", false, "skip confirmation prompts")
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; hexai is tried first if available)")
+ releaseCreateCmd.Flags().StringVar(&aiTool, "ai-tool", "amp", "AI tool to use for release notes (amp, claude, aichat, or hexai; amp is tried first if available)")
}