{"id":32516492,"url":"https://github.com/nyaomaru/changelog-bot","last_synced_at":"2026-06-07T07:01:34.365Z","repository":{"id":320873962,"uuid":"1079216758","full_name":"nyaomaru/changelog-bot","owner":"nyaomaru","description":"Automatic create changelog with AI. 🤖 It provides CLI and github actions. 🚀  https://www.npmjs.com/package/@nyaomaru/changelog-bot","archived":false,"fork":false,"pushed_at":"2026-06-06T14:42:20.000Z","size":720,"stargazers_count":20,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-06T16:17:05.966Z","etag":null,"topics":["ai","anthropic-api","automation","changelog","ci","ci-cd","cli","developer-tools","devops","github-actions","nodejs","openai-api","release","release-notes","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/nyaomaru.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-10-19T11:10:31.000Z","updated_at":"2026-06-06T14:41:49.000Z","dependencies_parsed_at":"2025-10-26T14:18:15.454Z","dependency_job_id":"99ad1ab0-42a9-4f85-9a4d-3c58b8f01c35","html_url":"https://github.com/nyaomaru/changelog-bot","commit_stats":null,"previous_names":["nyaomaru/changelog-bot"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/nyaomaru/changelog-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyaomaru%2Fchangelog-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyaomaru%2Fchangelog-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyaomaru%2Fchangelog-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyaomaru%2Fchangelog-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nyaomaru","download_url":"https://codeload.github.com/nyaomaru/changelog-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyaomaru%2Fchangelog-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34011812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"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":["ai","anthropic-api","automation","changelog","ci","ci-cd","cli","developer-tools","devops","github-actions","nodejs","openai-api","release","release-notes","typescript"],"created_at":"2025-10-28T01:54:02.280Z","updated_at":"2026-06-07T07:01:34.355Z","avatar_url":"https://github.com/nyaomaru.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/nyaomaru/changelog-bot/main/public/ChangelogBot_logo02.png\" alt=\"changelog-bot type logo\" width=\"360\" /\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/nyaomaru/changelog-bot/main/public/ChangelogBot_image.png\" width=\"600px\" align=\"center\" alt=\"changelog-bot logo\" /\u003e\n\u003c/p\u003e\n\nReleases should feel exciting, not tedious.\n`@nyaomaru/changelog-bot` 🤖 turns your Git history and release notes into a polished changelog entry (and optional PR) in a single run. Drop it into CI, run it locally, or hand it to your release captain—either way, you ship with a crisp changelog and zero copy-paste fatigue.\n\n## Why changelog-bot?\n\n- **Automated storytelling:** Combines commit history, PR titles, and release notes to produce human-ready changelog sections.\n- **LLM superpowers (optional):** Connect OpenAI or Anthropic for tone-aware summaries or skip API keys entirely and rely on a robust heuristic fallback.\n- **PR-ready output:** Can open a pull request with updated changelog, compare links, and release notes already wired up.\n- **Safe defaults:** Detects duplicate versions, keeps compare links current, and won’t fail a release if AI is down.\n- **CI-native:** Works as a GitHub Action, reusable workflow, or plain CLI—no fragile scripting required.\n\n\u003e [!IMPORTANT]\n\u003e This project is currently in its early stages (`v0.0.x`).\n\u003e Interfaces and behaviors may change without notice until `v1.0.0`.\n\u003e If you plan to integrate it into production workflows, please pin the exact version to avoid unexpected breaking changes.\n\n## Quick start\n\nRun the published CLI right away—no local tooling prep required.\n\n```sh\npnpm dlx @nyaomaru/changelog-bot --help\n```\n\nPrefer to keep it on hand? Add it to your dev dependencies and call it from your scripts (or directly via `pnpm exec`):\n\n```sh\npnpm add -D @nyaomaru/changelog-bot\npnpm exec changelog-bot --help\n```\n\nUsing it in CI? Jump to [GitHub Actions integration](#github-actions-integration) for drop-in workflow examples.\n\n### Options\n\n| Option                | Description                                         | Default                                |\n| --------------------- | --------------------------------------------------- | -------------------------------------- |\n| `--repo-path`         | Path to repository root                             | `.`                                    |\n| `--config`            | Path to JSON config file                            | `changelog-bot.config.json` if present |\n| `--changelog-path`    | Path to CHANGELOG file                              | `CHANGELOG.md`                         |\n| `--base-branch`       | Base branch for PR                                  | `main`                                 |\n| `--provider`          | LLM provider (`openai`, `anthropic`, or `gemini`)   | `openai`                               |\n| `--release-tag`       | Git ref (tag or HEAD) to generate release for       | latest tag or HEAD                     |\n| `--release-name`      | Display name for version (without `v`)              | derived from tag                       |\n| `--release-body`      | Additional release notes body                       | `\"\"`                                   |\n| `--language`          | Language for generated changelog prose              | `en`                                   |\n| `--instructions`      | Additional changelog writing/grouping instructions  | unset                                  |\n| `--instructions-file` | Path to a file with additional instructions         | unset                                  |\n| `--dry-run`           | Print updated CHANGELOG to stdout, don’t write file | `false`                                |\n\n## Examples\n\n### Dry-run for latest release\n\n```sh\npnpm dlx @nyaomaru/changelog-bot \\\n  --release-tag HEAD \\\n  --release-name 0.1.0-dev \\\n  --changelog-path CHANGELOG.md \\\n  --provider openai \\\n  --dry-run\n```\n\nDry-runs print provider diagnostics before the generated changelog so you can\nconfirm whether an LLM request was used or the run fell back.\n\n### Generate changelog for a tagged release\n\n```sh\npnpm dlx @nyaomaru/changelog-bot \\\n --release-tag vx.y.z \\\n --release-name x.y.z \\\n --changelog-path CHANGELOG.md \\\n --provider openai\n```\n\n### Run without AI keys (fallback)\n\nIf the selected provider API key is not set, the CLI skips model calls and builds a heuristic section from git logs (or uses GitHub Release Notes when provided). The PR body includes a note with the fallback reason, so everyone knows the run was deterministic.\n\n```sh\n# No AI keys in env\npnpm dlx @nyaomaru/changelog-bot --release-tag HEAD --release-name 1.2.3\n```\n\nExample PR body suffix:\n\n```\nNote: Generated without LLM. Reason: Missing API key for provider: openai.\n```\n\n### Force a specific model (example: gpt-4o-mini)\n\n```sh\nexport OPENAI_MODEL=gpt-4o-mini\nexport OPENAI_API_KEY=sk-xxxx\npnpm dlx @nyaomaru/changelog-bot --release-tag HEAD --release-name 1.0.0 --dry-run\n```\n\n### Customize generated changelog style\n\n```sh\npnpm dlx @nyaomaru/changelog-bot \\\n  --release-tag HEAD \\\n  --release-name 1.0.0 \\\n  --language ja \\\n  --instructions-file .github/changelog-instructions.md \\\n  --dry-run\n```\n\nCustom instructions are additive: the bot still enforces its JSON schema,\ndeduplication, and factuality rules.\n\n### Use a config file\n\nCreate `changelog-bot.config.json` in the directory where you run the CLI:\n\n```json\n{\n  \"provider\": \"gemini\",\n  \"language\": \"nl\",\n  \"instructionsFile\": \".github/changelog-instructions.md\"\n}\n```\n\nThen run normally:\n\n```sh\npnpm dlx @nyaomaru/changelog-bot --release-tag HEAD --release-name 1.0.0\n```\n\nCLI flags override config file values. To use a different file:\n\n```sh\npnpm dlx @nyaomaru/changelog-bot --config .github/changelog-bot.json --dry-run\n```\n\nConfig files use camelCase keys matching the CLI options:\n`repoPath`, `changelogPath`, `baseBranch`, `provider`, `releaseTag`,\n`releaseName`, `releaseBody`, `language`, `instructions`,\n`instructionsFile`, and `dryRun`. Unknown keys are rejected so typos fail fast.\n\n### From source (local checkout)\n\nWorking in a clone? Follow the steps in [Local development setup](#local-development-setup) to install dependencies and run the CLI directly.\n\n## Configuration\n\nBring your own keys and tokens as needed—`changelog-bot` only asks for what it truly uses.\n\n- Environment variables:\n  - `GITHUB_TOKEN` (required for PR creation; not required for `--dry-run`)\n  - Or GitHub App auth (recommended for branding and least-privilege):\n    - `CHANGELOG_BOT_APP_ID` and `CHANGELOG_BOT_APP_PRIVATE_KEY` (required)\n    - `CHANGELOG_BOT_APP_INSTALLATION_ID` (optional; auto-detected per repo)\n    - `CHANGELOG_BOT_API_BASE` (optional; GHES, e.g., `https://ghe.example.com/api/v3`)\n  - `OPENAI_API_KEY` (optional)\n  - `ANTHROPIC_API_KEY` (optional)\n  - `GEMINI_API_KEY` (optional)\n  - `REPO_FULL_NAME` (optional, `owner/repo`; used for link resolution)\n  - `OPENAI_MODEL` (optional; defaults to `gpt-4o-mini`)\n  - `ANTHROPIC_MODEL` (optional; defaults to `claude-3-5-sonnet-20240620`)\n  - `GEMINI_MODEL` (optional; defaults to `gemini-3.5-flash`)\n\n### Fallback behavior (when AI is unavailable)\n\n- Missing AI keys or API failure does not fail the run.\n- If GitHub Release Notes are provided for the tag, they are used as the source of truth.\n- Otherwise, a heuristic section is built from `git log` and merged PRs.\n- The PR body is annotated with: “Generated without LLM. Reason: …”.\n- Title classification uses the provider when available; without keys, all titles are grouped under `Chore` to remain deterministic.\n\n## GitHub Actions integration\n\nPlug it into CI in minutes. Pick the flavor that matches your workflow:\n\n1. As a GitHub Action (recommended)\n\n```yaml\nname: Update Changelog\n\non:\n  release:\n    types: [published]\n\njobs:\n  changelog:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n      pull-requests: write\n    steps:\n      - uses: actions/checkout@v4\n        with: { fetch-depth: 0 }\n\n      - uses: nyaomaru/changelog-bot@v0 # Set release version\n        with:\n          changelog-path: CHANGELOG.md\n          base-branch: main\n          provider: openai\n          release-tag: ${{ github.event.release.tag_name }}\n          release-name: ${{ github.event.release.tag_name }}\n          # npm-version: latest   # optionally pin a version/range\n          # minimum-package-age-days: '2' # block versions published less than 2 days ago\n          # dry-run: 'true'       # to avoid writing + PR\n        env:\n          # Optional: set one of the following to enable AI generation\n          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n          # ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}\n          # GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n2. Directly run the CLI in your workflow\n\n```yaml\nname: Update Changelog\n\non:\n  release:\n    types: [published]\n\njobs:\n  changelog:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n      pull-requests: write\n    steps:\n      - uses: actions/checkout@v4\n        with: { fetch-depth: 0 }\n\n      - uses: actions/setup-node@v4\n        with: { node-version: 20 }\n\n      - run: npx @nyaomaru/changelog-bot@latest \\\n          --release-tag ${{ github.event.release.tag_name }} \\\n          --release-name ${{ github.event.release.tag_name }} \\\n          --changelog-path CHANGELOG.md \\\n          --provider openai\n        env:\n          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n          # ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}\n          # GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          REPO_FULL_NAME: ${{ github.repository }}\n```\n\n3. As a reusable workflow (workflow_call)\n\n```yaml\njobs:\n  changelog:\n    uses: nyaomaru/changelog-bot/.github/workflows/changelog.yaml@main\n    with:\n      changelog_path: CHANGELOG.md\n      # config_path: .github/changelog-bot.json\n      base_branch: main\n      provider: openai\n      release_tag: ${{ github.event.release.tag_name }}\n      release_name: ${{ github.event.release.tag_name }}\n      # release_body: '...'\n      # language: ja\n      # instructions_file: .github/changelog-instructions.md\n      # dry_run: 'true'\n    secrets:\n      REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n      # ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}\n      # GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}\n```\n\nAction inputs (for both 1 and 3):\n\n- `changelog-path` / `changelog_path`: path to `CHANGELOG.md` (default `CHANGELOG.md`).\n- `config-path` / `config_path`: path to a JSON config file.\n- `base-branch` / `base_branch`: base branch for PR (default `main`).\n- `provider`: `openai`, `anthropic`, or `gemini` (default `openai`).\n- `npm-version` / `npm_version`: npm dist-tag or range for the CLI package (default `latest`).\n- `minimum-package-age-days` / `minimum_package_age_days`: minimum publish age required for the resolved npm package version before the action installs it (default `2`, set to `0` to disable explicitly).\n- `release-tag` / `release_tag`: tag or ref to generate for.\n- `release-name` / `release_name`: display version (without `v`).\n- `release-body` / `release_body`: extra release notes to merge.\n- `language`: language for generated changelog prose (default `en`).\n- `instructions`: extra changelog writing and grouping instructions.\n- `instructions-file` / `instructions_file`: path to an instructions file, relative to the repository root.\n- `dry-run` / `dry_run`: `'true'` to print without writing/PR; explicitly set `'false'` to override `dryRun: true` from config.\n\nWhen `config-path` is used, omitted action inputs can be supplied by the config file. Inputs that are explicitly set in workflow YAML are forwarded as CLI flags and take precedence over config values, even when the value matches the documented default.\n\nOutputs: None.\n\nSecurity note:\n\n- The published action installs the CLI with `pnpm dlx` and sets pnpm’s `minimumReleaseAge` so versions published less than 2 days earlier are blocked by default.\n- The action passes that setting via pnpm’s CLI config override form, `--config.minimum-release-age=...`, which is the flag shape pnpm accepts at runtime.\n- If you need an emergency rollout, either pin an older exact version or set `minimum-package-age-days: '0'` to disable the guard intentionally.\n- If you run the CLI directly with `npx`, this guard does not apply automatically. Use `pnpm dlx` with `minimumReleaseAge`, or pin an exact version yourself if you want the same protection.\n\nEnvironment:\n\n- `GITHUB_TOKEN` (required to create the PR; not needed in dry-run).\n- Or GitHub App auth variables (`GITHUB_APP_ID`, `GITHUB_APP_PRIVATE_KEY`, optional `GITHUB_APP_INSTALLATION_ID`).\n- `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` (optional for AI generation).\n- `REPO_FULL_NAME` auto-set by the Action; set yourself if calling the CLI directly.\n\n### GitHub App authentication in Actions (YAML examples)\n\nUse a GitHub App instead of a PAT so PRs come from your bot account and permissions are least‑privilege.\n\n1. Using the published Action with a GitHub App\n\n```yaml\nname: Update Changelog (App Auth)\n\non:\n  release:\n    types: [published]\n\njobs:\n  changelog:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write # to push branch\n      pull-requests: write # to open PR\n    steps:\n      - uses: actions/checkout@v4\n        with: { fetch-depth: 0 }\n\n      - uses: nyaomaru/changelog-bot@v0\n        with:\n          changelog-path: CHANGELOG.md\n          base-branch: main\n          provider: openai\n          release-tag: ${{ github.event.release.tag_name }}\n          release-name: ${{ github.event.release.tag_name }}\n        env:\n          # Use App auth (do not set GITHUB_TOKEN to force App path)\n          CHANGELOG_BOT_APP_ID: ${{ secrets.CHANGELOG_BOT_APP_ID }}\n          CHANGELOG_BOT_APP_PRIVATE_KEY: ${{ secrets.CHANGELOG_BOT_APP_PRIVATE_KEY }}\n          # Optional: hardcode installation id; otherwise auto-detected\n          # CHANGELOG_BOT_APP_INSTALLATION_ID: ${{ secrets.CHANGELOG_BOT_APP_INSTALLATION_ID }}\n          # Optional: GHES\n          # CHANGELOG_BOT_API_BASE: https://ghe.example.com/api/v3\n          # Optional: AI keys\n          # OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n          # ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}\n```\n\n2. Running the CLI directly with a GitHub App\n\n```yaml\nname: Update Changelog (App Auth)\n\non:\n  release:\n    types: [published]\n\njobs:\n  changelog:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n      pull-requests: write\n    steps:\n      - uses: actions/checkout@v4\n        with: { fetch-depth: 0 }\n\n      - uses: actions/setup-node@v4\n        with: { node-version: 22 }\n\n      - run: |\n          npx @nyaomaru/changelog-bot@latest \\\n            --release-tag ${{ github.event.release.tag_name }} \\\n            --release-name ${{ github.event.release.tag_name }} \\\n            --changelog-path CHANGELOG.md \\\n            --provider openai\n        env:\n          REPO_FULL_NAME: ${{ github.repository }}\n          CHANGELOG_BOT_APP_ID: ${{ secrets.CHANGELOG_BOT_APP_ID }}\n          CHANGELOG_BOT_APP_PRIVATE_KEY: ${{ secrets.CHANGELOG_BOT_APP_PRIVATE_KEY }}\n          # CHANGELOG_BOT_APP_INSTALLATION_ID: ${{ secrets.CHANGELOG_BOT_APP_INSTALLATION_ID }}\n          # CHANGELOG_BOT_API_BASE: https://ghe.example.com/api/v3\n          # OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n          # ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}\n```\n\nNotes\n\n- Paste the App private key into a repository/organization secret as a multiline PEM; secrets preserve newlines.\n- If you also provide `GITHUB_TOKEN`, PAT takes precedence and the run will use the PAT path.\n\n### Using a GitHub App instead of a PAT\n\nIf you install `changelog-bot` as a GitHub App in your org, the PRs will be authored by the App’s account and you can scope permissions cleanly.\n\nSet the following in your workflow or environment (use aliases; no `GITHUB_` prefix required):\n\n```sh\nexport CHANGELOG_BOT_APP_ID=123456\nexport CHANGELOG_BOT_APP_PRIVATE_KEY=\"-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----\\n\"\n# Optional: hardcode installation id; otherwise we auto-detect from the repo\n# export CHANGELOG_BOT_APP_INSTALLATION_ID=987654\n```\n\nThe CLI exchanges the App credentials for an installation access token at runtime and uses it for:\n\n- GitHub REST calls (PR lookups, release notes fetch)\n- PR creation (Octokit)\n\nToken rotation: We mint a fresh installation token per CLI run. Tokens expire in ~1 hour; no manual rotation required.\n\n## Local development setup\n\nIf you're contributing to `changelog-bot`, the repo ships a `mise.toml` to pin tool versions and expose handy tasks.\n\n### Mise (toolchain \u0026 tasks)\n\n- Tools: Node `22`, pnpm `11.2.2`.\n- Tasks: `lint`, `build`, `test`, `test_unit`, `test_performance`, `qa`.\n\n```sh\n# Install tool versions declared in mise.toml\nmise install\n# Install dependencies\nmise dev_install\n\n# Run common tasks\nmise build         # same as: pnpm build\nmise lint          # same as: pnpm lint\nmise test          # same as: pnpm test\nmise qa            # runs lint, test, build in sequence\n```\n\n### Manual setup\n\n```sh\npnpm install\npnpm run build\n\n# Configure environment variables (OpenAI / Anthropic API keys, GitHub token, etc.)\n# by copying `.env.example` to `.env` and filling the required values.\ncp .env.example .env\n\n# Optional: run via npx after publishing\nnpx @nyaomaru/changelog-bot --help\n```\n\n## Notes \u0026 FAQ\n\n- ❓ _Do I need AI keys?_ → No. The CLI gracefully falls back to heuristic mode.\n- 🔑 _Is GITHUB_TOKEN required?_ → Only when creating PRs (non-dry-run).\n- 🧩 _What if my tag already exists?_ → Duplicate version headings are automatically detected and skipped.\n- 🔗 _Compare links?_ → Automatically ensured and updated for every release.\n\n**Compatibility Policy**\n\n- During `v0`, breaking changes may occur as we stabilize flags and output. We avoid breaks when possible and document changes in the changelog.\n- To pin versions:\n  - Action: use a major tag (`uses: nyaomaru/changelog-bot@v0`) or a specific ref (e.g., `@v0.1.2`).\n  - Action + CLI pin: set `npm-version` input (e.g., `npm-version: 0.1.2`). By default, the action blocks versions published less than 2 days ago unless you override `minimum-package-age-days`.\n  - npx: `npx @nyaomaru/changelog-bot@0.1.2 ...`.\n- From `v1` onward, we follow SemVer: no breaking changes without a major version bump.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/nyaomaru/changelog-bot/main/public/ChangelogBot_text.png\" width=\"600px\" align=\"center\" alt=\"changelog-bot text\" /\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyaomaru%2Fchangelog-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnyaomaru%2Fchangelog-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyaomaru%2Fchangelog-bot/lists"}