1) Adds a DB migration for all services to toggle on push, issue, and merge events.
2) Upon an issue or merge request event, fire service hooks.
3) Slack service supports custom messages for each of these events. Other services
not supported at the moment.
4) Label merge request hooks with their corresponding actions.
Add the form-control CSS class to the feature checkboxes on the
application settings page to fix the vertical alignment with their
labels. Also add aria-describedby attributes to form controls that have
a help text block.
Fix protected branches routing
### Summary
On the master branch, if you attempt to access the protected branches in the project settings with an empty repo, you get `NoMethodError - undefined method "project_url"`.
### Steps to reproduce
1. Check out GitLab master and run.
2. Create a new project.
3. Go to Settings.
4. Click on "Protected branches"
### Expected behavior
The controller is supposed to redirect back to the projects page since there are no branches.
### Observed behavior
Internal Error 500
### Relevant logs
```
NoMethodError - undefined method `project_url' for #<Projects::ProtectedBranchesController:0x007fd920054af0>:
app/controllers/application_controller.rb:157:in `method_missing'
actionpack (4.1.9) lib/action_dispatch/routing/polymorphic_routes.rb:142:in `polymorphic_url'
actionpack (4.1.9) lib/action_dispatch/routing/url_for.rb:161:in `url_for'
actionpack (4.1.9) lib/action_controller/metal/redirecting.rb:91:in `_compute_redirect_to_location'
turbolinks (2.0.0) lib/turbolinks.rb:15:in `_compute_redirect_to_location_with_xhr_referer'
actionpack (4.1.9) lib/action_controller/metal/redirecting.rb:71:in `redirect_to
```
### Fix
I added a unit test for the empty project case and replicated the issue. I added the URL router helpers that appear to be necessary after 42387b733b.
See merge request !359
Irker is a gateway which sends IRC messages on git updates. This new
service provides an interface to this gateway, integrated in Gitlab, for
each updates.
As per the guidelines, this commit adds the new feature in the
CHANGELOG, tests and documentation.
See http://www.catb.org/esr/irker/
Include number of affected people in all/group mention autocomplete item.
As mentioned in #2054.
To minimize misuse of all/group mentions, the autocomplete title includes the number of members this mention will notify, so users will be more considerate what groups they mention.
Example:
at-all "**all** All Project and Group Members (12)"
at-gitlab "**gitlab** GitLab (12)"
See merge request !1596
Filter icons look like proper buttons
The filter icons (Push events, Merge events, Comments, Team) now have a border
that signifies they can be pushed. This not only keeps it in line with the rest
of the application buttons, but it makes it more obvious, especially for the
Merge events button with a checkbox icon.
Fixes#1993
See merge request !1576
Fixes grammatical consistency and small changes
This commit adds consistency to small things like periods, commas,
and gives additional information to buttons and headers, etc.
Fixes#2002, #2005, #2003.
See merge request !1570