Added authentication service for docker registry
This adds a simple authentication service for docker which uses current user credentials to authenticate pulls and pushes.
I have only one concern. Since the `.docker/config` is unencrypted, thus the password for user stored there is unencrypted, maybe we should from the start implement function to generate/provide a separate password just for the purposes of accessing docker registry?
What do you think @jacobvosmaer @sytses @marin?
cc @marin
See merge request !3787
Fix a description for default scope on builds
Should be "**All* builds (from this project)" for the {project,admin}
builds page without scope.
Fix a regression on !2243 (#4240).
See merge request !4118
Update build log incrementally
Proof of concept implementation of incremental sending of build log to browser.
cc @jschatz1 @vsizov @grzesiek @tmaczukin
See merge request !3737
Reuse runners edit form in admin and project area
Reuse runners edit form in admin and project area.

See merge request !4094
Group commits by date in server timezone
`Time#to_date` just takes the (timezone-less) year, date, and month, and
creates a new date from that. Because the commits in the list are
grouped by date, rather than chunked when the date changes, a commit can
be shown in the wrong order if its CommitDate has a timezone-less date
that's different to other commits around it.
Convert all CommitDates to the server timezone before grouping, as that
will at least produce consistent results. Users can still see a
timestamp on the commit that doesn't match the date it's grouped under,
because the timestamp shown uses the user's local timezone, and the
grouping uses the server's timezone, but that was an issue anyway.
### Before

### After

Closes#3870 and closes#17300.
See merge request !4052
`Time#to_date` just takes the (timezone-less) year, date, and month, and
creates a new date from that. Because the commits in the list are
grouped by date, rather than chunked when the date changes, a commit can
be shown in the wrong order if its CommitDate has a timezone-less date
that's different to other commits around it.
Convert all CommitDates to the server timezone before grouping, as that
will at least produce consistent results. Users can still see a
timestamp on the commit that doesn't match the date it's grouped under,
because the timestamp shown uses the user's local timezone, and the
grouping uses the server's timezone, but that was an issue anyway.
We send a state of ansi2html to client, client needs to send this state back.
The state describes the configuration of generator and position within trace.
Support supressing text file diffs on the default branch with .gitattributes
This change allows users to suppress diffs for text files by adding an entry to the `.gitattributes` file. To take effect the file present at the HEAD of the default branch.
When rendering a diff, if the file is text according to the charlock holmes gem (via the `text?` method) but the file is not diffable according to the project repository, then a message is displayed stating that the diff was suppressed.

I looked into ways to do this using a `binary` flag as suggested by @stanhu in [this comment](https://gitlab.com/gitlab-org/gitlab-ce/issues/2315#note_4435454), however, there was no good way to seperate what was a real binary file from one that had been marked as not diffable in `.gitattributes`.
Fixes and closes gitlab-org/gitlab-ce#2315.
See merge request !3806
This is a combination of 3 commits.
- Update the bare repositories info/attributes if the default branch is updated
- Check the diff attributes of a file before showing a diff
- Update CHANGELOG
make some changes for the checks to determine when the messages should be displayed
add item to changelog and also integration test
make some changes to the test
make some changes
Load the "New Branch" button asynchronously
Here's how it looks like for logged in users:

And here it is for anonymous users (or when a new branch can't be created by a logged in user):

See merge request !3855
This button depends on Issue#can_be_worked_on? which in turn depends on
Issue#related_branches. By rendering this button asynchronously we can
finally remove all usages of Issue#related_branches and
Issue#referenced_merge_requests from the issues "show" page.
Project group UI
Closes#13991

See merge request !3911