Skip to content
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

Merged
merged 4 commits into from
Feb 13, 2014

Conversation

bcobb
Copy link
Contributor

@bcobb bcobb commented Jan 30, 2014

馃毀

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:

  • add redis recipe
  • add sidekiq recipe
  • use foreman for vagrant

@gabeweaver
Copy link

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.

@smith
Copy link
Contributor

smith commented Jan 31, 2014

@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.

@bcobb
Copy link
Contributor Author

bcobb commented Jan 31, 2014

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.

@brettchalupa
Copy link
Contributor

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. 馃槃

@gabeweaver
Copy link

i shan't shit on your creativity :)

On Fri, Jan 31, 2014 at 9:00 AM, Brett Chalupa notifications@github.comwrote:

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. [image: 馃槃]

Reply to this email directly or view it on GitHubhttps://github.com//pull/84#issuecomment-33795785
.

VP of Product | cramerdevelopment.com
Skype: gabe.weaver | + 1 (515) 292-0050 x 1301

@coveralls
Copy link

Coverage Status

Coverage remained the same when pulling ff171be on spicy-curry-64753356 into b97c1a6 on master.

@coveralls
Copy link

Coverage Status

Coverage remained the same when pulling 7759778 on spicy-curry-64753356 into b97c1a6 on master.

@coveralls
Copy link

Coverage Status

Coverage remained the same when pulling 30452de on spicy-curry-64753356 into f98c925 on master.

@coveralls
Copy link

Coverage Status

Coverage remained the same when pulling 30452de on spicy-curry-64753356 into f98c925 on master.

@brettchalupa brettchalupa mentioned this pull request Feb 12, 2014
Brian and Brett and others added 4 commits February 13, 2014 15:11
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.
bcobb added a commit that referenced this pull request Feb 13, 2014
Automatically verify CLA status of incoming PRs.
@bcobb bcobb merged commit ba9df1d into master Feb 13, 2014
@brettchalupa brettchalupa deleted the spicy-curry-64753356 branch February 13, 2014 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants