gitlabhq/gitlabhq — pull request #3709 by dsander (2013-04-24 14:36:06+00:00)
Title: Integration of github-services WIP

This is not a finished feature, probably basic functions are not implemented yet. I created this pull request to check if you guys are OK with my approach of integrating the [github-services](https://github.com/github/github-services) gem.

My goal was to make as few changes as possible to the gem. [This changes](https://github.com/IMnet/gitlabhq/compare/github-services) are the ones I had to make and which will probably never be merged to the original version as they are pretty specific to our needs.

__List of changes I made and/or are proposing:__

* Removed the `Service` model and rely on the `Service` classes github-services provides
* Created a `ProjectService` which stores the configuration for every Project <-> GitHub Service
* _Todo_: change the payload to match GitHubs version as much as possible. For the current web hook the payload should of course stay the same.
* _Todo_: create a github-service for GitLabCI, because GitHub requires that implemented services send the payload unmodified, so it would probably be good to change the receiving endpoint in GitLabCI or create a new one
* _Todo_: migrate the old GitLabCI service settings to the new one
* _Todo_: validate as many hooks as possible that they are working as expected and blacklist the broken ones
* _Todo_: tests for the code, and make this actually usable :wink:

__What does work?__

At the moment the services can just be used via the 'Test service' button. I tested the Campfire, Hipchat and IRC hooks and they worked kinda nicely :smile:

Here is a small teaser:
![teaser](https://f.cloud.github.com/assets/20943/420310/27897016-acec-11e2-908d-841978f64c2c.gif)

regards,

Dominik