{"slug": "i-built-a-service-that-turns-github-prs-to-customer-readable-changelogs", "title": "I built a service that turns GitHub PRs to customer readable changelogs", "summary": "A developer built Shiplog, a Python CLI tool that transforms merged GitHub pull requests into customer-readable changelogs grouped by category. The tool uses AI to rewrite developer-oriented PR titles into user-friendly descriptions, outputting Markdown or JSON. Shiplog is available via pip and works on public repos without authentication.", "body_md": "Nobody reads your PR titles. Especially not your users.\n\nYou merge \"fix: offset bug in pagination endpoint\" and your PM asks, \"so what shipped this week?\" Now you're scrolling through GitHub, rewriting commit messages into something a customer would understand.\n\nI got tired of that loop, so I built **Shiplog** — a Python CLI that reads your merged PRs and rewrites them into clean, grouped changelogs.\n\nOne command:\n\n`bash`\n\npip install shiplog-cli\n\nshiplog generate your-org/your-repo --days 30\n\nIt fetches your merged PRs, runs each through an AI transform, and outputs a changelog grouped by category — New, Improved, Fixed, Infrastructure.\n\nA PR titled fix: pagination offset bug in list endpoint becomes:\n\n▎ Fixed\n\n▎ Pagination now returns correct results — Previously, navigating past the first page of list views could skip or duplicate items due to an offset calculation error.\n\nHow it works\n\nGitHub PRs → Shiplog API → { category, title, body } → Markdown or JSON\n\nQuick examples\n\n`cd your-project`\n\nshiplog generate --days 14\n\n`shiplog generate owner/repo --days 30 -o CHANGELOG.md`\n\n`shiplog generate owner/repo --format json`\n\n`shiplog single \"Add dark mode support\" --body \"Adds theme toggle in settings\"`\n\nWhy not just use git log?\n\ngit log gives you developer context. Changelogs need user context. \"Refactor auth middleware to use JWT validation\" means nothing to a customer.\n\nShiplog rewrites it as something like:\n\n▎ Improved\n\n▎ Login sessions are now more secure — We upgraded how authentication tokens are validated, improving security without any changes on your end.\n\nThat's the gap it fills.\n\nTry it\n\n`pip install shiplog-cli`\n\nshiplog generate --days 7\n\nIt works on any public repo without auth. For private repoKEN or `gh auth token`\n\nautomatically.\n\nSite: [https://shiplog.arksoft.xyz](https://shiplog.arksoft.xyz)\n\nWould love feedback — what would make this useful for your workflow?", "url": "https://wpnews.pro/news/i-built-a-service-that-turns-github-prs-to-customer-readable-changelogs", "canonical_source": "https://dev.to/20sid02/i-built-a-service-that-turns-github-prs-to-customer-readable-changelogs-5611", "published_at": "2026-06-20 14:57:45+00:00", "updated_at": "2026-06-20 15:06:43.335960+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence", "natural-language-processing"], "entities": ["Shiplog", "GitHub", "Python", "Arksoft"], "alternates": {"html": "https://wpnews.pro/news/i-built-a-service-that-turns-github-prs-to-customer-readable-changelogs", "markdown": "https://wpnews.pro/news/i-built-a-service-that-turns-github-prs-to-customer-readable-changelogs.md", "text": "https://wpnews.pro/news/i-built-a-service-that-turns-github-prs-to-customer-readable-changelogs.txt", "jsonld": "https://wpnews.pro/news/i-built-a-service-that-turns-github-prs-to-customer-readable-changelogs.jsonld"}}