Update CE code to include some refactor done in EE to do with import url
This is simply updating the code to match EE and avoid further conflicts related to `import_data` and `import_url` changes made on EE only.
See merge request !4223
Create a todo on failing MR build
Implements #14067. I worked on this with @DouweM (any mistakes are mine).
When a build fails for a commit, create a todo for the author of the merge request that commit is the HEAD of. If the commit isn't the HEAD commit of any MR, don't do anything. If there already is a todo for that user and MR, don't do anything.
Current limitations:
- This isn't configurable by project.
- The author of a merge request might not be the person who pushed the breaking commit.
- I haven't tested this with a working CI setup, just with the unit tests below and by modifying my DB directly.
See merge request !3177
Since we eager load everything in lib/ putting ERB code in .rb files
will result in syntax errors. By moving the templates to
./generator_templates we can work around this.
Resolve "Wrong sorting of commit order in MR view?"
!4052 fixed this for the most obvious cases, but there were still some problems.
Here's my test case: I have a branch where I was suffering from an unfortunate
issue. Every other commit I made had its commit date set to one day before it
should have been. (Perhaps my system clock was misbehaving.)
```shell
for i in {1..10}
do
echo $i > $i
git add $i
GIT_COMMITTER_DATE=`date -v -$((i % 2))d` git commit -m $i
done
```
The git CLI still gives me the commits in the right order, but I can see that
the timestamps alternate between two values:
```shell
$ git log --format='%h %ct %p %s' master...HEAD
f0c3108 1463646313 3d38a13 10
3d38a13 1463559913 67f419b 9
67f419b 1463646313 74330c0 8
74330c0 1463559913 56361d7 7
56361d7 1463646313 ba1b60c 6
ba1b60c 1463559913 f91497d 5
f91497d 1463646313 79c5e57 4
79c5e57 1463559913 b953cef 3
b953cef 1463646313 12fc411 2
12fc411 1463559913 835715b 1
```
Unfortunately, GitLab didn't like this _at all_. Here's what the commits on my
MR from that branch looked like:

That's because we were sorting the commits by date, which is safe if they are in
that order anyway. If they aren't, then because Ruby's sorting isn't stable, we
lose even the ordering among the correctly-ordered commits with the same
timestamp.
After these changes (and reloading the MR's diff), this looks like:

The commits view was also wrong, but in a slightly different way. In table form:
| View | Before | After |
| --- | --- | --- |
| Commit list | 10, 8, 6, 4, 2, 9, 7, 5, 3, 1 | 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 |
| MR commits | 10, 2, 8, 4, 6, 5, 7, 3, 9, 1 | 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 |
Closes#12724
See merge request !4208
Fixed project settings alert colors
In another MR, the class name was changed making all the alert messages have no background color

See merge request !4161
Fix broken documentation links
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/15249
- [x] `/help/ui`- This is working for me
- [x] `/help/ci/examples/deployment/README.md` - Fixed
- [x] `/help/ci/api/projects.md` - Fixed
- [x] `/help/markdown/LICENSE` - Cannot do much to fix it, added a note.
- [x] `/help/ci/ssh/README.md` - Cannot find this link referenced anywhere.
See merge request !3903
Fixed advice on invalid permissions on upload path
When running the checks, my upload path has wrong permissions, the advice could not fix it because it does not change the permission of this directory (only sub-directories).
```
Uploads directory setup correctly? ... no
Try fixing it:
sudo find /home/git/gitlab/public/uploads -type d -not -path /home/git/gitlab/public/uploads -exec chmod 0700 {} \;
For more information see:
doc/install/installation.md in section "GitLab"
Please fix the error above and rerun the checks.
```
Executing this instead fixed the error :
```
sudo chmod 700 /home/git/gitlab/public/uploads
```
See merge request !2948
Added helper methods for database migrations
These helpers can ultimately be used to write migrations that don't
require downtime.
See #15464 for more information.
See merge request !3860
Fix warning messages with SVG ALLOWED_ELEMENTS
Define the right module names so that Rails autoloading and eager loading will work properly.
Eliminates "warning: already initialized constant Gitlab::Sanitizers::SVG::ALLOWED_ELEMENTS"
See merge request !4207