{"id":18355380,"url":"https://github.com/midwire/parliament","last_synced_at":"2025-06-26T07:31:53.829Z","repository":{"id":16744426,"uuid":"19501929","full_name":"midwire/parliament","owner":"midwire","description":"A Ruby app that listens to Github events and merges pull requests when specified criteria have been met. Inspired by [plus-pull](https://github.com/christofdamian/plus-pull).","archived":false,"fork":false,"pushed_at":"2019-06-17T15:36:19.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-10T01:47:48.491Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":false,"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/midwire.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-06T16:30:46.000Z","updated_at":"2019-06-17T15:36:03.000Z","dependencies_parsed_at":"2022-09-24T09:40:18.237Z","dependency_job_id":null,"html_url":"https://github.com/midwire/parliament","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/midwire/parliament","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midwire%2Fparliament","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midwire%2Fparliament/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midwire%2Fparliament/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midwire%2Fparliament/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/midwire","download_url":"https://codeload.github.com/midwire/parliament/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/midwire%2Fparliament/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262022203,"owners_count":23246276,"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-11-05T22:06:43.355Z","updated_at":"2025-06-26T07:31:53.788Z","avatar_url":"https://github.com/midwire.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parliament\n\nA Ruby app that listens to GitHub events and automatically merges pull requests when specified they are mergeable.\n\n## Usage\n\nWhen Pull requests have satisfied the following criteria, they are automatically merged:\n* The requirements configured in the GitHub repository are met for the base branch (the branch being merged into). This includes any branch protection requirements, like Continuous Integration checks, required number of approvals, user-specific required approvals, etc.\n* The pull request can be merged.\n\n## Installation/Setup\n\n### Parliament\nTBD\n\n### GitHub\nSetup is easy, just setup the webhook for all events to a repo and it'll start handling merge requests (Parliament handles `+form` and `+json`, so use what you'd prefer).\n\nMake sure you add `/webhook` to the end of the URL, as follows:\n\n```\nhttps://www.yourserver.com/webhook\n```\n\n## Configuration\nParliament can be configured by setting configuration options within the configuration block in `application.rb`, i.e.\n\n```ruby\nParliament.configure do |config|\n\n  # Personal Access Token\n  config.personal_access_token = \u003cGitHub Personal Access Token\u003e\n\n  # current status must be success\n  #\n  # default: true\n  config.check_status = false\n\n  # an array of required voters' github usernames\n  #\n  # default: empty array\n  config.required_usernames = ['databyte', 'c0', 'pasha']\n\n  # also accepts an array-returning Proc that is called on each check with the raw data from the webhook.\n  config.required_usernames = Proc.new { |data| ... }\n\n  # an array of required CI contexts\n  #\n  # default: empty array\n  config.required_contexts = ['ci/circleci: validate', 'codeclimate']\n\n  # also accepts an array-returning Proc that is called on each check with the raw data from the webhook.\n  config.required_contexts = Proc.new { |data| ... }\n\nend\n```\n\n## Alternatives\n* [plus-pull](https://github.com/christofdamian/plus-pull)\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n\n## Running the Tests\n\n`bundle exec rake`\n\n## License\n\nParliament is released under the MIT License. See the bundled LICENSE file for\ndetails.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmidwire%2Fparliament","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmidwire%2Fparliament","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmidwire%2Fparliament/lists"}