{"id":36985449,"url":"https://github.com/decoded-cipher/auto-changelog","last_synced_at":"2026-02-18T00:18:22.645Z","repository":{"id":327858727,"uuid":"1110422525","full_name":"decoded-cipher/auto-changelog","owner":"decoded-cipher","description":"AI-powered changelog generator for GitHub Actions — builds clean changelogs using GitHub Models. No external API keys needed.","archived":false,"fork":false,"pushed_at":"2025-12-06T08:49:59.000Z","size":7,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-10T00:52:56.444Z","etag":null,"topics":["ai-actions","changelog-generator"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/decoded-cipher.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":null,"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-05T07:04:09.000Z","updated_at":"2025-12-07T11:21:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/decoded-cipher/auto-changelog","commit_stats":null,"previous_names":["decoded-cipher/auto-changelog"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/decoded-cipher/auto-changelog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decoded-cipher%2Fauto-changelog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decoded-cipher%2Fauto-changelog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decoded-cipher%2Fauto-changelog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decoded-cipher%2Fauto-changelog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/decoded-cipher","download_url":"https://codeload.github.com/decoded-cipher/auto-changelog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decoded-cipher%2Fauto-changelog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28399682,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai-actions","changelog-generator"],"created_at":"2026-01-13T23:01:59.574Z","updated_at":"2026-02-18T00:18:22.638Z","avatar_url":"https://github.com/decoded-cipher.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Changelog Generator (GitHub Models)\n\n**AI-powered changelog generator for GitHub (via GitHub Models, no external API key required)**\n\n`auto-changelog` is a GitHub Action that automatically builds a clean, human-friendly — or optionally machine-friendly — changelog from your commit history. It uses GitHub's built-in Models to analyze commit history, group related changes, and output a structured Markdown changelog — no need for external APIs, tokens, or billing.\n\n## ✨ Why it exists\n\n- Commit messages are often terse, confusing or noisy; raw `git log` makes poor release notes.\n- Writing a changelog manually is tedious, error-prone, and often neglected.\n- With `auto-changelog`, you get meaningful, organized changelogs — consistently — without extra work.\n\n## 🛠 What it does\n\n- Scans your git history (from last tag or custom range).\n- Uses a GitHub-hosted LLM (`openai/gpt-4o-mini` by default) to understand changes, categorize them (Features, Fixes, Improvements, Docs, etc.), and create a timeline.\n- Generates a clean Markdown file (e.g. `CHANGELOG.md`) with a clear timeline of meaningful changes in a structured table.\n- Formats the output in a parseable table — perfect for rendering changelogs automatically in a webpage or docs site.\n- **Optional PR mode:** use a dedicated branch, pull latest from your base branch, generate changelog, commit and push to that branch, and create or update a PR to the base branch — so you never push directly to main/master.\n\n## 🚀 How to use\n\n### Basic: generate changelog in the current branch\n\nAdd this to your workflow (e.g. in `.github/workflows/changelog.yml`):\n\n```yaml\nname: AI Changelog\n\non:\n  push:\n    tags: [ 'v*' ]\n  workflow_dispatch:\n\npermissions:\n  contents: write\n  models: read\n\njobs:\n  changelog:\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n          fetch-tags: true\n\n      - name: Generate changelog\n        uses: decoded-cipher/auto-changelog@v1\n        with:\n          output_path: CHANGELOG.md\n```\n\nOn push or manual run, the action will produce (or update) `CHANGELOG.md`. You can then commit it back in the same workflow if you want.\n\n### PR mode: changelog on a branch + PR to base (recommended for main/master)\n\nTo avoid pushing directly to your main branch, use **PR mode**. The action will:\n\n1. Check out a dedicated changelog branch (or create it from the base).\n2. Pull the latest changes from the base branch (e.g. `master`) into it.\n3. Generate the changelog.\n4. Commit and push only to the changelog branch.\n5. Create a PR from the changelog branch to the base branch (or update the existing PR if one is open).\n\nExample: run on every push to `master`, update branch `auto/changelog`, and open/update a PR to `master`:\n\n```yaml\nname: AI Changelog\n\non:\n  push:\n    branches: [master]\n  workflow_dispatch:\n\npermissions:\n  contents: write\n  models: read\n  pull-requests: write\n\njobs:\n  changelog:\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n\n      - name: Generate changelog and open PR\n        uses: decoded-cipher/auto-changelog@v1\n        with:\n          output_path: CHANGELOG.md\n          create_pr: true\n          changelog_branch: auto/changelog\n          base_branch: master\n```\n\nWhen using `create_pr: true`, you must grant `pull-requests: write` (and `contents: write`) in the workflow.\n\n### Inputs\n\n| Input | Default | Description |\n|-------|---------|-------------|\n| `range` | (auto) | Git revision range (e.g. `v1.0.0..HEAD`). If empty, uses last tag..HEAD, or HEAD if no tags. |\n| `output_path` | `CHANGELOG.md` | File path to write the changelog markdown to. |\n| `model` | `openai/gpt-4o-mini` | GitHub Models ID. |\n| `create_pr` | `false` | If `true`, use a dedicated branch, commit, push, and create/update a PR to the base branch. |\n| `changelog_branch` | `auto/changelog` | Branch used for changelog commits when `create_pr` is true. |\n| `base_branch` | `master` | Base branch to merge into the changelog branch and to open the PR into. |\n\n### Outputs\n\n| Output | Description |\n|--------|-------------|\n| `changelog` | The generated changelog markdown. |\n\n## ✅ Key benefits\n\n- **Zero configuration**: no API keys, no secrets, no third-party dependencies — just your existing GitHub environment.\n- **Readable \u0026 maintainable logs**: changes are merged logically, not just dumped commit-by-commit.\n- **Structured output**: machine-parseable tables — ideal for static sites, release pages or documentation.\n- **Automatic**: runs on push/tag — keeps your changelog up-to-date without manual work.\n- **Safe for main**: with PR mode, changelog updates go through a branch and a PR instead of pushing directly to your default branch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecoded-cipher%2Fauto-changelog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdecoded-cipher%2Fauto-changelog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecoded-cipher%2Fauto-changelog/lists"}