{"id":35672308,"url":"https://github.com/bborbe/updater","last_synced_at":"2026-01-05T19:03:25.031Z","repository":{"id":329280769,"uuid":"1118326304","full_name":"bborbe/updater","owner":"bborbe","description":"AI-powered dependency updater with automated changelog generation and semantic versioning","archived":false,"fork":false,"pushed_at":"2025-12-18T18:32:36.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-21T18:45:24.084Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bborbe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-17T15:33:14.000Z","updated_at":"2025-12-18T18:32:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bborbe/updater","commit_stats":null,"previous_names":["bborbe/updater"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/bborbe/updater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bborbe%2Fupdater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bborbe%2Fupdater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bborbe%2Fupdater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bborbe%2Fupdater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bborbe","download_url":"https://codeload.github.com/bborbe/updater/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bborbe%2Fupdater/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28218049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-05T02:00:06.358Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-05T19:01:52.347Z","updated_at":"2026-01-05T19:03:25.024Z","avatar_url":"https://github.com/bborbe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dependency Updater\n\nMulti-language dependency updater with Claude-powered CHANGELOG generation and commit messages.\n\n**Supported Languages:** Go (implemented) | Python/Node.js (planned)\n\n## Installation\n\nFrom GitHub:\n```bash\n# Single module\nuvx github.com/bborbe/updater update-deps /path/to/module\n\n# Multiple specific modules (explicit paths)\nuvx github.com/bborbe/updater update-deps /path/to/moduleA /path/to/moduleB /path/to/moduleC\n\n# Parent directory (discovers all recursively, including nested)\nuvx github.com/bborbe/updater update-deps /path/to/modules\n\n# Monorepo (discovers all nested modules with smart ordering)\ncd /path/to/monorepo\nuvx github.com/bborbe/updater update-deps .\n```\n\nLocal development:\n```bash\n# Run from local directory\nuv --directory /path/to/updater run update-deps /path/to/module --verbose\n\n# Or with uvx --reinstall (picks up latest changes)\nuvx --reinstall --from /path/to/updater update-deps /path/to/module --verbose\n\n# Multiple specific modules\nuvx --reinstall --from /path/to/updater update-deps ~/workspace/raw ~/workspace/k8s ~/workspace/jira\n```\n\n## Usage\n\nThe tool follows this workflow:\n\n1. **Update versions** - golang, alpine (Dockerfile, go.mod, CI configs)\n2. **Apply excludes/replaces** - Standard go.mod exclusions for problematic versions\n3. **Update dependencies** - Language-specific (Go: iterative go get)\n4. **Run validation** - make precommit (tests, linters, formatting)\n5. **Analyze changes** - Claude determines version bump and generates CHANGELOG entries\n6. **Commit \u0026 tag** - Git commit with Claude-generated message, git tag from CHANGELOG\n\n### Options\n\n```bash\n# Verbose mode (show all output in console)\nuvx github.com/bborbe/updater update-deps /path/to/module --verbose\n\n# Choose Claude model (default: sonnet)\nuvx github.com/bborbe/updater update-deps /path/to/module --model haiku\n\n# Require confirmation before commits (default: auto-commit)\nuvx github.com/bborbe/updater update-deps /path/to/module --require-commit-confirm\n\n# Multiple modules with options\nuvx github.com/bborbe/updater update-deps /path/to/module1 /path/to/module2 --verbose\n```\n\n### Retry/Skip on Failure\n\nIf a module fails (tests, precommit errors), you'll be prompted:\n\n```\n✗ Module lib/alert failed\n  → Fix the issues and retry, or skip this module\n\nSkip or Retry? [s/R]:\n```\n\n- **Retry (R)**: Fix the issue, press R to retry from Phase 1\n- **Skip (s)**: Skip this module and continue to next\n\n## Features\n\n- **Claude-powered CHANGELOG** - Analyzes changes and generates meaningful entries\n- **Smart version bumping** - MAJOR/MINOR/PATCH for code/deps, NONE for infrastructure\n- **Monorepo support** - Recursive discovery with smart lib/-first ordering\n- **Idempotent** - Skips modules already up-to-date\n- **Version updates** - golang, alpine (Dockerfile, go.mod, CI)\n- **Standard excludes** - Applies go.mod excludes/replaces for problematic versions\n- **Clean output** - Quiet mode with per-module logs (`.update-logs/`)\n- **Retry/skip workflow** - Fix issues and retry, or skip failed modules\n- **Auto-gitignore** - Adds temporary files to each module's .gitignore\n\n## Requirements\n\n- Python 3.12+\n- `ANTHROPIC_API_KEY` environment variable\n- Git repository\n- For Go modules: CHANGELOG.md in module/package\n\n## Documentation\n\n- [Monorepo Mode](docs/monorepo-mode.md) - Smart ordering and discovery\n- [Version Bumping](docs/version-bumping.md) - How Claude determines version bumps\n- [Logging](docs/logging.md) - Output and log management\n- [Development](docs/development.md) - Development setup and testing\n- [Roadmap](docs/roadmap.md) - Future plans and phases\n\n## License\n\nThis project is licensed under the BSD 2-Clause License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbborbe%2Fupdater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbborbe%2Fupdater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbborbe%2Fupdater/lists"}