add slack notifications for wiki pages
## What does this MR do?
Lets the Slack service be configured to send notifications when wiki pages are created or edited.
## Are there points in the code the reviewer needs to double check?
I'm just starting to get familiar with the Gitlab codebase and I was unsure on how to get the wiki page url to pass it to the slack message, on whether or not I needed to refactor the create/update methods for wiki pages from the controller to a service (but seemed necessary to test it better), and if I needed to add a column to the web hooks table or if the services table would have been enough. Please let me know if I should change anything and I will improve the MR, thanks for checking :)
## Why was this MR needed?
Related to #563 and fixes#4233.
See merge request !2998
Sanitize branch names for confidential issues
- When creating new branches for confidential issues, prefer a branch name like `issue-15` to `some-sensitive-issue-title-15`.
- The behaviour for non-confidential issues stays the same.
Closes#14566
See merge request !3671
Start with iid on branch creation
After the discussion it in #3886 it was decided the iid should be in the beginning of the branch name.
See merge request !3708
Fix trailing slash in teamcity_url
Originally opened at !2309 by @ctmay4.
As described in #3515, if you have trailing spaces in the the Teamcity server name, the service
will not work properly. Switching from `URI.parse` to `URI.join` fixes it so that it works with
or without a trailing slash.
Fixes#3515.
See merge request !3679
To reproduce:
1. Create a project with some content
2. Rename the project
3. Create a new project with the same name.
4. Boom - 404.
After step 2, the branch and tag counts were not being cleared. This would
cause `repository.has_visible_content?` to erroneously return `true`
for the newly-created project.
Closes#13384
- Test the case where we have a referenced merge request that's being
- excluded as a "related branch"
- This took a while to figure out, especially the
`create_cross_references!` line.
- Previously, the controller held the logic to calculate
related branches, which was:
`<branches ending with `issue.iid`> - <branches with a merge request referenced in the current issue>`
- This logic belongs in the `related_branches` method, not in the
controller. This commit makes this change.
- This means that `Issue#related_branches` now needs to take a `User`.
When we find the branches that have a merge request referenced in the
current issue, this is limited to merge requests that the current user
has access to.
- This is not directly related to #14566, but is a related refactoring.