tagpr is a Go CLI tool that automates the GitHub release workflow. It runs as a GitHub Action, monitoring the main branch. When unreleased changes exist, it creates or updates a release pull request with an auto-generated changelog. When that PR is merged, tagpr automatically tags the merge commit with the next semantic or calendar version and creates a GitHub Release. It supports monorepo configurations via tag prefixes, custom version files, label-based version bumping, and both SemVer and CalVer schemes. The tool integrates deeply with the GitHub API (PRs, releases, git trees, issues) and local git commands. It also includes a reusable submodule `gh2changelog` for generating changelogs from GitHub release notes. The codebase is well-structured, with clear separation of concerns, extensive tests, and a functional options pattern for configuration.