-
Notifications
You must be signed in to change notification settings - Fork 114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Curry] Application receives updates from GitHub PRs, comments on the PR or sets a label based upon the CLA status of the committers in the Pull Request #84
Conversation
I'm not trying to be too...something...but it feels like using the "curry" nomenclature in the actual code base has the potential to be confusing to people in the community. Just my $.02. |
@gabeweaver probably not. Currying isn't used explicitly very frequently and it's unlikely somebody would mistake this for Proc#curry or the concept in general. |
I think Brett and I are open to changing the name, too, for what it's worth. For the time being, Curry is nice shorthand for "CLA Checker" in both code and speech. |
We decided to run with name spacing all of the CLA Checking/GitHub PR/JIRA ticket opening in Curry to be explicit about what functionality is included in that name space. This whole feature does quite a bit more than CLA checking, and we needed a name to talk about this part of the application as a whole. Totally open to changing the name, as well. 馃槃 |
i shan't shit on your creativity :) On Fri, Jan 31, 2014 at 9:00 AM, Brett Chalupa notifications@github.comwrote:
VP of Product | cramerdevelopment.com |
This is the first part of Curry - a part of the application that checks the committers of pull requests that are opened insubscribed repos. Pivotal Tracker Story: https://www.pivotaltracker.com/story/show/64753356 This implements the following: * Interface for managing the repositories that Supermarket subscribes to, which also interfaces with GitHub to create a subscription hook * Creates an end-point that GitHub sends a POST request to when a pull request is updated (opened, synchronize, closed, reopened) * Checks all of the committers in a pull request, and stores committers who have not signed a CLA, identifying those committers either by their GitHub login, or if they don't have a GitHub login, the email address used to author the commit. * If all of the committers in a pull request have signed the Supermarket CLA, a label is added to the Pull Request saying so. * If there are users who have not signed a CLA, a comment is left instructing those users to do so. Implementation details: * Use the Octokit gem to interface with GitHub's API. * Use VCR for recording and playing back HTTP requests in tests * Use currybowl for Curry hub callbacks. Only used in Development. * The checking of PR committers and interacting with the Pull Request are handled with Sidekiq background jobs.
The recipe is loosely based off of [phlipper/chef-redis], and at this point only provides one overridable attribute. For development and staging this should suffice. We can expand the scope of the recipe as needed. [phlipper/chef-redis]: https://github.com/phlipper/chef-redis
Like the Redis recipe, the Sidekiq recipe is minimally configurable; just enough to get something running for now. When deploys start, we tell Sidekiq workers to stop accepting new jobs. When we stop our web server, we also stop Sidekiq. When we start the web server, we start Sidekiq. At some point, we'll want a process manager to handle some things that Sidekiq currently does on its own: daemonization, and log redirection in particular. It'd also be nice to have a monitor to revive crashed processes.
Automatically verify CLA status of incoming PRs.
馃毀
Curry allows Chef Admins to keep track of GitHub repositories for which Supermarket tracks CLA status. This Pull Request encompasses the initial part of this functionality: subscribing to GitHub repositories, checking the committers CLA status on Supermarket and leaving a comment and/or label based on the results.
Pivotal Tracker ID: 64753356
Left to do: