{"id":19963661,"url":"https://github.com/cyberark/parse-a-changelog","last_synced_at":"2025-04-09T09:11:19.159Z","repository":{"id":46261312,"uuid":"165913758","full_name":"cyberark/parse-a-changelog","owner":"cyberark","description":"A validator for changelogs using the Keep a Changelog standard (http://keepachangelog.com)","archived":false,"fork":false,"pushed_at":"2024-11-12T15:05:07.000Z","size":142,"stargazers_count":16,"open_issues_count":3,"forks_count":5,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-02T08:08:33.862Z","etag":null,"topics":["conjbot-notify","conjur","conjur-dev","developer-tools","internal"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyberark.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-15T19:51:28.000Z","updated_at":"2024-11-12T15:05:12.000Z","dependencies_parsed_at":"2022-09-11T03:10:42.453Z","dependency_job_id":"19c6b361-d266-42d2-9db2-8d706cc55bc2","html_url":"https://github.com/cyberark/parse-a-changelog","commit_stats":{"total_commits":63,"total_committers":14,"mean_commits":4.5,"dds":0.5555555555555556,"last_synced_commit":"627f91ae424c2f553af5d310db672c1ec80492a4"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberark%2Fparse-a-changelog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberark%2Fparse-a-changelog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberark%2Fparse-a-changelog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberark%2Fparse-a-changelog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyberark","download_url":"https://codeload.github.com/cyberark/parse-a-changelog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248008630,"owners_count":21032556,"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":["conjbot-notify","conjur","conjur-dev","developer-tools","internal"],"created_at":"2024-11-13T02:16:44.194Z","updated_at":"2025-04-09T09:11:19.140Z","avatar_url":"https://github.com/cyberark.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# parse-a-changelog\n\nThis gem can be used to validate that a file conforms to the [Keep a Changelog](https://keepachangelog.com) standard. It does this by defining a Keep a Changelog [grammar](https://github.com/cyberark/parse-a-changelog/blob/master/lib/grammar.tt) and using the [treetop parsing DSL](https://github.com/cjheath/treetop) to parse a changelog file according to that grammar.\n\n## Usage\n\nAdd `parse_a_changelog` to your `Gemfile` and `bundle install` or install it directly with:\n\n```\ngem install parse_a_changelog\n```\n\nThe gem includes a binary that can be run with the changelog file as its single argument:\n\n```\nparse path/to/changelog\n```\n\nOr you can use the gem directly in your Ruby code:\n\n```\nresult = ParseAChangelog::parse(\"path/to/changelog\")\n```\n\nFinally, here is an example bash script that runs `parse-a-changelog` on the current directory in a Docker container, which can be useful for including changelog validation in a CI pipeline:\n\n```\n#!/bin/bash -ex\n\ndocker run \\\n  --rm \\\n  --volume \"${PWD}/CHANGELOG.md\":/CHANGELOG.md \\\n  cyberark/parse-a-changelog\n```\n\n# Development\n\nWe welcome contributions of all kinds to `parse-a-changelog`. See our [contributing guide](CONTRIBUTING.md).\n\n# Testing\n\nMake sure you have the `rspec` gem installed in your current gem set then run the tests like so:\n\n```\n$ rspec\n..................\n\nFinished in 0.02494 seconds (files took 0.21634 seconds to load)\n18 examples, 0 failures\n```\n\n# Releasing\n\n1. Create a branch\n1. Determine the appropriate version using [semver](https://semver.org/) and update the `VERSION` file.\n1. Move the contents of the Unreleased section in `CHANGELOG.md` into a new section using the current release version and date.\n1. Update the links at the bottom of `CHANGELOG.md`.\n1. Commit these changes with a commit message about bumping the version.\n1. Run `git tag \u003crelease-version\u003e \u0026\u0026 git push origin --tags`\n1. Create a PR to have the release approved and merged.\n1. Build the gem: `gem build parse_a_changelog.gemspec`\n1. Push the gem: `gem push parse_a_changelog-\u003crelease-version\u003e.gem` (this may require [setting up publishing credentials](https://guides.rubygems.org/publishing/))\n\n# License\n\nThe parse-a-changelog gem is licensed under Apache License 2.0 - see [`LICENSE`](LICENSE) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyberark%2Fparse-a-changelog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyberark%2Fparse-a-changelog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyberark%2Fparse-a-changelog/lists"}