From b3b599b7b645f7fab6fd8c22e8475a054b137225 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 12 Jul 2025 14:21:06 +0300 Subject: feat: add AI-powered release notes generation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add --ai-release-notes flag to generate prose release notes using Claude CLI - Add --update-releases flag to update existing releases with AI notes - Implement GetDiffBetweenTags to extract code changes between versions - Integrate Claude CLI for intelligent release note generation - Support fallback to multiple Claude models (sonnet-3.5, sonnet-4, default) - Always print release notes to stdout for visibility - Fix token loading messages to only show when falling back from config 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- cmd/gitsyncer/main.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'cmd') diff --git a/cmd/gitsyncer/main.go b/cmd/gitsyncer/main.go index d4a3e6f..19ad9bf 100644 --- a/cmd/gitsyncer/main.go +++ b/cmd/gitsyncer/main.go @@ -33,6 +33,15 @@ func runReleaseCheckIfEnabled(cfg *config.Config, flags *cli.Flags) { } } +// runReleaseCheckForRepoIfEnabled runs release checking for a specific repository +func runReleaseCheckForRepoIfEnabled(cfg *config.Config, flags *cli.Flags, repoName string) { + // Run release checks automatically unless disabled + if !flags.NoCheckReleases { + fmt.Println("\nChecking for missing releases...") + cli.HandleCheckReleasesForRepo(cfg, flags, repoName) + } +} + func main() { // Parse command-line flags flags := cli.ParseFlags() @@ -113,7 +122,7 @@ func main() { if flags.SyncRepo != "" { exitCode := cli.HandleSync(cfg, flags) if exitCode == 0 { - runReleaseCheckIfEnabled(cfg, flags) + runReleaseCheckForRepoIfEnabled(cfg, flags, flags.SyncRepo) if flags.Showcase { showcaseCode := cli.HandleShowcase(cfg, flags) if showcaseCode != 0 { -- cgit v1.2.3