{"id":19593175,"url":"https://github.com/thoughtbot/pester","last_synced_at":"2025-10-15T22:15:22.044Z","repository":{"id":24475955,"uuid":"27879911","full_name":"thoughtbot/pester","owner":"thoughtbot","description":"Automatically ask for a PR review","archived":false,"fork":false,"pushed_at":"2021-09-24T16:03:51.000Z","size":3915,"stargazers_count":148,"open_issues_count":7,"forks_count":17,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-04-27T14:39:33.382Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/thoughtbot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-11T16:15:52.000Z","updated_at":"2023-11-09T15:17:45.000Z","dependencies_parsed_at":"2022-08-06T02:00:48.298Z","dependency_job_id":null,"html_url":"https://github.com/thoughtbot/pester","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thoughtbot/pester","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fpester","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fpester/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fpester/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fpester/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thoughtbot","download_url":"https://codeload.github.com/thoughtbot/pester/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thoughtbot%2Fpester/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260336343,"owners_count":22993740,"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-11T08:38:26.879Z","updated_at":"2025-10-15T22:15:16.991Z","avatar_url":"https://github.com/thoughtbot.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pester\n\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)\n\n[![Circle CI](https://circleci.com/gh/thoughtbot/pester/tree/master.svg?style=svg\u0026circle-token=07d9bd80401d852967891e169b8ef64ef36e649f)](https://circleci.com/gh/thoughtbot/pester/tree/master)\n\n[![Code Climate](https://codeclimate.com/repos/5646125569568073e50002ca/badges/ed7a06e73f8d74dfc911/gpa.svg)](https://codeclimate.com/repos/5646125569568073e50002ca/feed)\n\n### What is Pester?\n\nPester is a tool to help with getting pull request reviews. Once you have set up\nPester on your repo, new pull requests will be posted to Pester according to\ntheir tags. These tags will also be used to determine which Slack room Pester\nwill post to.\n\nIf the PR does not have a \"Sign off\" of \"LGTM\", it will be reposted to the same\nrooms again after 30 minutes. The time threshold to repost can be configured\nusing the ENV var, `REPOST_THRESHOLD`.\n\nTo make sure your PR goes to the correct place, your PR description should\ninclude tags like `#rails #javascript #design`. Pester will parse and send to\nall the appropriate rooms!\n\nPester also provides a web interface that allows you to view open PRs for your\ngroup and filter them by tag. This makes it very easy to grab a pull request in\nyour downtime for whatever tag you prefer.\n\n### Authentication\n\nPester uses GitHub teams for controlling access to the web interface. When\nsetting up the app, you should set the `GITHUB_TEAM_ID` environment variable to\nthe team id that will have access.\n\nThere is no User model and users are not tracked in anyway.\n\nWhile creating a new app in the GitHub, you should specify the following url as\nan application callback url:\n\n    https://\u003cyour-host\u003e/auth/githubteammember/callback\n\nThe easiest way to get the `GITHUB_TEAM_ID` is to use the GitHub API:\n\n    % curl -H \"Authorization: token \u003cyour-authorization-token\u003e\" https://api.github.com/orgs/\u003cyour-organization\u003e/teams\n\nThe authorization token can be created [on this GitHub page].\n\n[on this GitHub page]: https://github.com/settings/tokens\n\n### Local Development\n\nAfter you have cloned this repo, run this setup script to set up your machine\nwith the necessary dependencies to run and test this app:\n\n    % ./bin/setup\n\nIt assumes you have a machine equipped with Ruby, Postgres, etc. If not, set up\nyour machine with [this script].\n\n[this script]: https://github.com/thoughtbot/laptop\n\nAfter setting up, you can run the application using [foreman]:\n\n    % foreman start\n\nIf you don't have `foreman`, see [Foreman's install instructions][foreman]. It\nis [purposefully excluded from the project's `Gemfile`][exclude].\n\n[foreman]: https://github.com/ddollar/foreman\n[exclude]: https://github.com/ddollar/foreman/pull/437#issuecomment-41110407\n\n## Contributing\n\nSee the [CONTRIBUTING] document.\nThank you, [contributors]!\n\n  [CONTRIBUTING]: CONTRIBUTING.md\n  [contributors]: https://github.com/thoughtbot/pester/graphs/contributors\n\n\n### Guidelines\n\nUse the following guides for getting things done, programming well, and\nprogramming in style.\n\n* [Protocol](http://github.com/thoughtbot/guides/blob/master/protocol)\n* [Best Practices](http://github.com/thoughtbot/guides/blob/master/best-practices)\n* [Style](http://github.com/thoughtbot/guides/blob/master/style)\n\n## License\n\nPester is Copyright (c) 2015 thoughtbot, inc.\nIt is free software, and may be redistributed\nunder the terms specified in the [LICENSE] file.\n\n  [LICENSE]: LICENSE.md\n\n## About\n\nPester is maintained by [Jason Draper], [Christian Reuter], and [Melissa Xie].\n\n  [Jason Draper]: http://github.com/drapergeek\n  [Christian Reuter]: http://github.com/creuter\n  [Melissa Xie]: https://github.com/mxie\n\n![thoughtbot](http://presskit.thoughtbot.com/images/thoughtbot-logo-for-readmes.svg)\n\nPester is maintained and funded by thoughtbot, inc.\nThe names and logos for thoughtbot are trademarks of thoughtbot, inc.\n\nWe love open source software!\nSee [our other projects][community]\nor [hire us][hire] to help build your product.\n\n  [community]: https://thoughtbot.com/community?utm_source=github\n  [hire]: https://thoughtbot.com/hire-us?utm_source=github\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthoughtbot%2Fpester","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthoughtbot%2Fpester","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthoughtbot%2Fpester/lists"}