{"id":13819324,"url":"https://github.com/davearonson/pull-request-roulette","last_synced_at":"2025-12-16T14:50:45.240Z","repository":{"id":8163678,"uuid":"9585555","full_name":"davearonson/pull-request-roulette","owner":"davearonson","description":"Site to match up developers with people willing to comment on their pull requests","archived":false,"fork":false,"pushed_at":"2022-12-14T00:52:50.000Z","size":242,"stargazers_count":29,"open_issues_count":33,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-16T04:36:19.799Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davearonson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-21T20:52:21.000Z","updated_at":"2023-01-29T20:13:46.000Z","dependencies_parsed_at":"2023-01-11T17:18:51.908Z","dependency_job_id":null,"html_url":"https://github.com/davearonson/pull-request-roulette","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davearonson/pull-request-roulette","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davearonson%2Fpull-request-roulette","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davearonson%2Fpull-request-roulette/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davearonson%2Fpull-request-roulette/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davearonson%2Fpull-request-roulette/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davearonson","download_url":"https://codeload.github.com/davearonson/pull-request-roulette/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davearonson%2Fpull-request-roulette/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27766538,"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","status":"online","status_checked_at":"2025-12-16T02:00:10.477Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08-04T08:00:45.136Z","updated_at":"2025-12-16T14:50:45.192Z","avatar_url":"https://github.com/davearonson.png","language":"Ruby","funding_links":[],"categories":["Happy Exploring 🤘"],"sub_categories":[],"readme":"pull-request-roulette\n=====================\n\n[![Code Climate](https://codeclimate.com/github/davearonson/pull-request-roulette.png)](https://codeclimate.com/github/davearonson/pull-request-roulette)\n[![Build Status](https://travis-ci.org/davearonson/pull-request-roulette.png)](https://travis-ci.org/davearonson/pull-request-roulette)\n[![Coverage Status](https://coveralls.io/repos/davearonson/pull-request-roulette/badge.png?branch=master)](https://coveralls.io/r/davearonson/pull-request-roulette?branch=master)\n[![Dependency Status](https://gemnasium.com/davearonson/pull-request-roulette.svg)](https://gemnasium.com/davearonson/pull-request-roulette)\n[![PullReview stats](https://www.pullreview.com/github/davearonson/pull-request-roulette/badges/master.svg?)](https://www.pullreview.com/github/davearonson/pull-request-roulette/reviews/master)\n\nWeb app to match up developers, with public pull requests (PRs) on Github, with\npeople willing to comment on their PRs.\n\nThe current workflow is:\n\n- Project owner Polly has a project.\n\n- Coder Carol submits a pull request to Polly's project.\n\n- Either Carol or Polly (or currently, anybody!) submits Carol's PR to Pull\n  Request Roulette (PRR).  Most likely, she'll have done that because Polly\n  just hasn't had the time to look at the PR and approve it.\n\n- Reviewer Rachel comes to PRR, sees Carol's PR in the list, and \"takes\" it.\n\n- It is now marked as under review by Rachel.\n\n- The hope is that Rachel will give Carol's PR a thorough review, using\n  comments or email to notify Carol and Polly when done, and Rachel's comments\n  will help Polly decide whether to accept it.\n\n- Eventually Carol or Rachel or Polly will come to PRR and mark the PR as no\n  longer under review, either to solicit more reviews, or to remove it from the\n  list.  However, removal is not yet implemented.\n\nYes, that's very simple.  There's only one thing being stored (a simple PR\ndescriptor), and it's not even full CRUD as there is no Update.  But this is\njust the MVP.  The main workflow I envision eventually is:\n\n- Project owner Polly has a project.\n\n- Coder Carol submits a pull request to Polly's project.\n\n- Either Carol or Polly (or *maybe* anybody) submits Carol's PR to PRR.\n\n- PRR looks at what languages the files in the PR use, and lets the submitter\n  adjust the list.  (This may be needed due to .txt files, or files with no\n  extension, being in some human language, so that for instance the reviewer\n  needs to know Chinese.  Other than that, it means computer languages.  It\n  might deduce some human languages from filenames like fr.yml.  I do not\n  intend for it to grow language-detection from text, a la Google Translate.)\n\n- Reviewer Rachel has registered at PRR, and possibly specified what languages\n  she knows.\n\n- Rachel comes to PRR, and asks for a PR to review.\n\n- PRR analyzes the possible matches, decides that Carol's is the best match,\n  and presents it (and no others) to her.  This is the \"roulette\" aspect I'm\n  aiming for.\n\n- That includes the details of how many files in what languages, how many\n  additions, deletions, and other changes, etc.\n\n- Rachel may decline it and ask for a different one, but in this case let's say\n  she accepts, or in current parlance, \"takes\" it.\n\n- PRR marks it as being assigned to Rachel for review.\n\n- PRR notifies Carol and Polly... *if* it has their email addresses.\n\n- Polly sees the email and thinks \"hmmm, what is this PRR thing and how does it\n  have my email address?\"  (The answer is, either Polly signed up on PRR after\n  we established user profiles, or she made it public on Github.)\n\n- Meanwhile, Reviewer Roger comes to PRR and asks for a PR to review.\n\n- PRR determines that Carol's *would* be the best match for him, *except* that\n  it's already being reviewed, so it looks for the second best.\n\n- Rachel makes comments on Github, mainly in the PR but possibly in the\n  project's issues.  Github notifies Carol, Polly, and any other interested\n  parties; PRR is not involved.\n\n- Rachel comes back to PRR, and marks the PRR as reviewed.\n\n- PRR notifies Carol and Polly... *if* it has their email addresses.\n\n- PRR asks Rachel to rate Carol as a coder.\n\n- Carol comes back to PRR, and rates Rachel as a reviewer.\n\n- Brief aggregate ratings as coder and/or reviewer are shown when someone lists\n  the users (at least, those who don't hide their profiles); more detailed\n  ratings, if we decide to have them, are shown when someone views their\n  profiles.\n\n- Top coders and/or reviewers may be featured on the front page, newsletter,\n  etc.\n\nIf Rachel shirks her duty, then the fact that the PR has been \"taken\" will\ncount for less and less, when PRR decides on matches.  Eventually, either the\nPR could be marked as \"untaken\", or it could be under review by multiple\nreviewers at once.  There could be a \"pestering\" mechanism so that Rachel gets\nreminded every few days... again, *if* we have her email address.  We could\nrequire it, but I don't like that idea.\n\nSee the Issues for possible features saved for later, known bugs to fix, etc.\n\nThe code is currently deployed at http://www.PullRequestRoulette.com, as a free\npublic service of [Codosaurus, LLC](http://www.Codosaur.us).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavearonson%2Fpull-request-roulette","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavearonson%2Fpull-request-roulette","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavearonson%2Fpull-request-roulette/lists"}