Integration of github-services WIP
Created by: dsander
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 gem.
My goal was to make as few changes as possible to the gem. This changes 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 theService
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
😉
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
regards,
Dominik