{"id":22289431,"url":"https://github.com/tf/pr_log","last_synced_at":"2025-07-19T22:03:47.593Z","repository":{"id":34532102,"uuid":"38475106","full_name":"tf/pr_log","owner":"tf","description":"Turn pull requests into changelog entries","archived":false,"fork":false,"pushed_at":"2025-06-16T10:50:19.000Z","size":86,"stargazers_count":57,"open_issues_count":2,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-16T11:36:02.314Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/tf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2015-07-03T06:02:27.000Z","updated_at":"2025-06-16T10:50:23.000Z","dependencies_parsed_at":"2025-06-16T11:36:13.510Z","dependency_job_id":null,"html_url":"https://github.com/tf/pr_log","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/tf/pr_log","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tf%2Fpr_log","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tf%2Fpr_log/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tf%2Fpr_log/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tf%2Fpr_log/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tf","download_url":"https://codeload.github.com/tf/pr_log/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tf%2Fpr_log/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265678178,"owners_count":23810110,"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","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":"2024-12-03T17:09:08.793Z","updated_at":"2025-07-19T22:03:46.650Z","avatar_url":"https://github.com/tf.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PR Log\n\n[![Gem Version](https://badge.fury.io/rb/pr_log.svg)](http://badge.fury.io/rb/pr_log)\n[![CI](https://github.com/tf/pr_log/actions/workflows/test.yml/badge.svg)](https://github.com/tf/pr_log/actions/workflows/test.yml)\n\nTurn GitHub pull requests into changelog entries.\n\n## Assumptions\n\n**Changelogs should be written for humans by humans**\n\nPrLog does not try to auto generate a complete changelog. Instead, it\npulls GitHub data to prefill your changelog as a baseline for manual\nediting. Add prose, order items by priority, insert headers.\n\n**Merged pull requests fully describe project history**\n\nPrLog ignores GitHub issues. If a pull request fixes an\nimportant issue it can reference it in its title or description.\n\n**Pull requests are tagged with version milestones**\n\nPrLog expects pull requests to be assigned to version milestones like\n`v1.1`. This ensures consistency with the issue tracker and helps\nlimit GitHub API requests to relevant data.\n\n**Changelogs are written in Markdown**\n\nMarkdown is the de facto standard for formatting files to be\ndisplayed on GitHub.\n\n## Installation\n\nInstall the command line tool:\n\n    $ gem install pr_log\n\nGenerate a\n[personal access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/)\nand place it in a `.pr_log.yml` file in your home directory:\n\n    # ~/.pr_log.yml\n    access_token: \"xxx\"\n\n## Usage\n\nTo insert items for new pull requests with milestone `v.1.2` into your\n`CHANGELOG.md` file run:\n\n    $ prlog fetch --github-repository some/repository --milestone v1.2\n\nBy default, this creates entries of the form:\n\n    - Title of the pull request\n      ([#100](https://github.com/some/repository/pull/100)))\n\nIf a pull request URL is already mentioned in the changelog, no entry\nwill be created.\n\n### Convention over Configuration\n\nThe `fetch` command can also be invoked without command line options:\n\n    $ prlog fetch\n\nPrLog tries to derive defaults from gemspec information:\n\n- If the `homepage` attribute mentions the URL of the github\n  repository, it is used to determine the github repository name.\n- PrLog constructs a milestone name of the form `v%{major}.%{minor}`\n  from the current gem version.\n\n### Configuration\n\nTo override PrLog's default configuration you can either pass command\nline options or place a `.pr_log.yml` file inside your project's root\nor your home directory:\n\n    # .pr_log.yml\n    changelog_file: \"HISTORY.md\"\n\nThe following configuration options are available:\n\n- `access_token`: Personal access token to use for GitHub API\n  requests.\n\n- `changelog_file`: Relative path to the changelog file.\n\n- `entry_template`: Template string used for new changelog\n  entries. All fields from the\n  [issue search response](https://developer.github.com/v3/search/#search-issues)\n  can be used as interpolations.\n  Default value: `- %{title} ([#%{number}](%{html_url}))`. Use `.` for nested fields (e.g. `%{user.login}`).\n\n- `github_repository`: Name of the GitHub repository of the form\n  `user/repository`.\n\n- `insert_after`: Regular expression or string matching the line\n  inside the changelog after which new items shall be inserted.\n\n- `label_prefixes`: A hash mapping GitHub label names to title\n  prefixes for changelog entries. See below for details.\n\n- `milestone`: Name of the milestone filter fetched pull requests by.\n\n- `milestone_format`: Template string used to derive a milestone name\n  from the current gem version. The strings `%{major}`, `%{minor}` and\n  `%{patch}` are replaces with the corresponding numeric component of\n  the current version. Default value: `v%{major}.%{minor}`.\n\n### Label Prefixes\n\nItems for pull requests with certain labels can be prefixed with a\nstring automatically. To add a \"Bug fix:\" prefix to all pull requests\nwith the label `bug`, add the following lines to your configuration file:\n\n    # pr_log.yml\n    label_prefixes:\n      bug: \"Bug fix:\"\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install\ndependencies. You can also run `bin/console` for an interactive prompt\nthat will allow you to experiment.\nYou can then use `rake install` to install the gem locally.\n\n### Running the Test Suite\n\nThe test suite uses [VCR](https://github.com/vcr/vcr) to record and\nreplay requests to the GitHub API. When running against the bundled VCR\ncassettes, no GitHub credentials are required. If you run the tests\nwithout VCR or re-record the cassettes, set the environment variable\n`PR_LOG_FIXTURE_OAUTH_TOKEN` to a valid GitHub access token. Then run\n`bin/rspec`. Fixture data used by the test suite comes from the\n[tf/pr_log_test_fixture](https://github.com/tf/pr_log_test_fixture)\nrepository.\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at\nhttps://github.com/tf/pr_log. This project is intended to be a safe,\nwelcoming space for collaboration, and contributors are expected to\nadhere to the [Contributor Covenant](http://contributor-covenant.org)\ncode of conduct.\n\n## License\n\nThe gem is available as open source under the terms of the\n[MIT License](http://opensource.org/licenses/MIT).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftf%2Fpr_log","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftf%2Fpr_log","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftf%2Fpr_log/lists"}