Unauthenticated users had access to disabled features of public
projects. The code has been slightly refactored so that feature checks
are done in a separate method and can also be applied for public access.
Recalculating graph_log took minutes on a large repository since each
of the 6000 commits would need to calculate the diff. Since graph_log
does not appear to be used, remove it from the list of things to update.
For the Linux kernel repository, this reduced the ProjectCacheWorker time
from 8+ minutes to 16 seconds.
Closes#2016
Fix label read access for unauthenticated users
The label page was added to navigation for unauthorized users because
the previously used milestone read permission was still checked. This
has been fixed and read access to labels is now granted (again) for
public projects.
This regression has been introduced in
07efb17e10 (7.12).
See also 9bcd36396b.
Refs !836, !842.
See merge request !1000
The label page was added to navigation for unauthorized users because
the previously used milestone read permission was still checked. This
has been fixed and read access to labels is now granted (again) for
public projects.
This regression has been introduced in
07efb17e10 (7.12).
See also 9bcd36396b.
Refs !836, !842.
Fix bug where notes were being rendered with wrong color preferences due to caching
### What does this MR do?
This MR adds the user's color preferences as part of the caching key for notes.
### Why was this MR needed?
This should fix a bug introduced via 4d80360b where notes were being loaded from the cache without regard to the current user's color scheme.
### What are the relevant issue numbers?
Closes#2008
See merge request !994
Fix OAuth provider bug where GitLab would not go return to the redirect_uri after sign-in
### What does this MR do?
This MR fixes a bug when GitLab is used as an OAuth provider (e.g. to GitLab CI) where the user is not redirected back to the original URI after a successful sign-in. This MR tweaks the Doorkeeper configuration to set the `user_return_to` Devise session variable, as mentioned in this [Stack Overflow](http://stackoverflow.com/questions/14504739/how-to-use-both-devise-and-doorkeeper-gems) post.
### Why was this MR needed?
If you attempt to "Login via GitLab" from GitLab CI and aren't logged out completely, GitLab asks for your username and password. After you login, you get directed to the GitLab dashboard instead of back to GitLab CI. It's easy to reproduce:
1. Set up a GitLab CI and GitLab instance (e.g. ci.gitlab.com, gitlab.com).
2. Start an Incognito Window so that you are logged out of GitLab CI and GitLab.
3. Go to the GitLab CI instance. Click the "Login with GitLab".
4. Enter in your credentials.
5. Watch your browser login to GitLab and not return to GitLab CI.
### What are the relevant issue numbers?
Closes#1612
See merge request !998
Fix file upload dialog for comment editing
This fixes the file upload dialog which currently works for new comments
but not for comment editing. The cause for this is a missing DOM class
which causes traversal to the dropzone to fail.
This is fixed by adding the expected `gfm-form` class to the edit form.
It has to be added dynamically since adding it to the form template
would break the form's layout and comment saving.
The following screenshot illustrates the issue:

See merge request !956
This fixes the file upload dialog which currently works for new comments
but not for comment editing. The cause for this is a missing DOM class
which causes traversal to the dropzone to fail.
This is fixed by adding the expected `gfm-form` class to the edit form.
It has to be added dynamically since adding it to the form template
would break the form's layout and comment saving.
Validate format of project_url and token for GitLab CI service.
If `project_url` and `token` for are invalid, [service_hook creation](https://gitlab.com/gitlab-org/gitlab-ce/blob/7-13-stable/app/models/project_services/gitlab_ci_service.rb#L30-34) will silently fail due to validation of URL in `WebHook`.
Given that token is a sequence of numbers and letters for GitLab CI making sure that there are no unexpected characters should be enough to prevent service_hook being nil.
Fixes#1997
See merge request !987
Advanced cache
Fixes#1993
* Build missing cache values in background job after each push
* Store commit_count in project table. Refresh in background job
* moved repository size calculation in background job
## Advantages
Every time push is triggered - we build cache for project even without user visiting project page.
That means first visit is as fast as others now. This is especially good for active projects where people have some requests fast because of cache and some slow - because cache was build in their request.
Between cache expired and cache built we we had gap when Linux repo can give 502 error because calculation commits count takes 30 seconds or even more.
Using value from database fix this problem. Before cache is updated you see old value from database. After - you see new one.
Basically this merge request is super win to GitLab. We don't do some heavy operations in user request but instead in background job.
## Temporary problem
After this migration all projects will have `0` commits in database. It fill be replaced with real value on next push. I did not add recalculation to migration because it will last forever on big instances. Can be fixed by adding rake task which will go in background on live instance without downtime
See merge request !986
The release manager owns the stable branches
I think this helps the release manager because it means they don't
have to worry about others pushing commits at the last minute.
See merge request !1907
Added new doc about creating a new branch
Added new document about creating a branch and fixed bullets in all the other documents. Also fixed "git push REMOTE BRANCH".
See merge request !1894