Commit Graph
1947 Commits
Author SHA1 Message Date
Dmitriy Zaporozhets 2fa3acaa43 Merge branch 'advanced-cache' into 'master'
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
2015-07-17 17:22:13 +02:00
Dmitriy Zaporozhets 90e47dd949 Merge branch 'rs-issue-1773' into 'master'
Fix mentions not being created upon issue/merge request update

New cross-references weren't being added when they were made in an issue or merge request update.

This happened because the relevant `UpdateService`s were making the `notice_added_references` call
after the model had already been updated and saved, so the `changes` attribute was empty and no
cross-references were made at all.

This fixes the bug and adds a bit of testing and a bit of refactoring.

Closes #1773

See merge request !974
2015-07-14 08:40:08 +00:00
Robert Speicher f3d4767d0c Rename notice_added_references to create_new_cross_references! 2015-07-13 21:31:16 -04:00
Robert Speicher e4c698fd5c Refactor Mentionable#notice_added_references
It now accounts for models that have changed but have already been
persisted, such as when called from an UpdateService.

Closes #1773
2015-07-13 21:31:00 -04:00
Dmitriy Zaporozhets 5f34759ecb Allow user to specify content he wants to see on project page
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-07-13 18:24:15 +02:00
Dmitriy Zaporozhets 00053c805c Merge branch 'ssh-key-linebreaks' into 'master'
Add error message for SSH key linebreaks

Solves this [request](http://feedback.gitlab.com/forums/176466-general/suggestions/5653544-check-for-linebreaks-in-ssh-key).

See merge request !672
2015-07-13 09:33:55 +00:00
Dmitriy Zaporozhets d93da8bed5 Merge branch 'rs-disable-2fa' into 'master'
Add User#disable_two_factor!

This method encapsulates all the logic for disabling 2FA on a specific
User model.

See merge request !961
2015-07-13 08:47:55 +00:00
Dmitriy Zaporozhets ec19a960ca Add tests for repository search files
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-07-12 14:32:25 +02:00
Dmitriy Zaporozhets 9ab12e099d Fix search blobs for wiki
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-07-12 14:01:06 +02:00
Nikita Verkhovin 562d78a65a Add error message for SSH key linebreaks 2015-07-12 00:18:56 +06:00
Robert Speicher 22724418d3 Add User#disable_two_factor!
This method encapsulates all the logic for disabling 2FA on a specific
User model.
2015-07-10 16:18:30 -04:00
Dmitriy Zaporozhets f6609c9882 Implement search of code via git grep
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-07-10 17:50:50 +02:00
Dmitriy Zaporozhets 27a9ff8264 Merge branch 'rs-dev-issue-2372' into 'master'
Filter by issues/merge requests without a milestone

Closes internal https://dev.gitlab.org/gitlab/gitlabhq/issues/2372

See merge request !886
2015-07-08 21:42:29 +00:00
Stan Hu 954eedf368 Change "Irc Uri" -> "IRC URI" 2015-07-07 05:48:32 -07:00
Robert Speicher d00cb00d6b Rename NoMilestone to Milestone::None
Also refactors IssuableFinder to avoid redundant title check.
2015-07-06 22:39:55 -04:00
Robert Speicher 3ee3cb24d4 Allow user to filter by Issues/Merge Requests without a Milestone 2015-07-06 22:39:55 -04:00
Dmitriy Zaporozhets f3590c83ea Merge branch 'audit_log' into 'master'
Audit log for user authentication

https://dev.gitlab.org/gitlab/gitlabhq/issues/2318

See merge request !931
2015-07-06 10:09:53 +00:00
Valery Sizov 411829fdb5 Audit log for user authentication 2015-07-06 12:36:08 +03:00
Dmitriy Zaporozhets 5f52d6a038 Merge branch 'add-irker-options' into 'master'
Add Irker service configuration options

### What does this MR do?

This MR makes a number of hard-coded Irker parameters configurable in the service settings: Irker server host, port, and default IRC URI. It also removes the "max recipient" limit since the recipient list is configurable only by the project owner, and it makes no sense to update the limit when it is implied in the recipient list already.

### Why was this MR needed?

The existing service assumed that gitlab.com was running an Irker daemon on `localhost` when it was not. Using Irker on gitlab.com thus did not work at all. This MR allows users to provide their own Irker daemons.

### Are there points in the code the reviewer needs to double check?

My main concern is whether allowing a user to specify the server/port combination would have security implications for a host. Given that HipChat and Slack allow users to do this, I didn't think this was doing anything novel.

### What are the relevant issue numbers?

* Closes #1713
* Closes #1714
* Closes gitlab-com/support-forum#139

### Screenshots

### Before

![image](https://gitlab.com/stanhu/gitlab-ce/uploads/2eb3eb815e249e9fb669fc97ecd4f3c8/image.png)

### After

![image](https://gitlab.com/gitlab-org/gitlab-ce/uploads/cceaba951c05bd3df2c842cc68046b87/image.png)

See merge request !930
2015-07-06 08:57:16 +00:00
Stan Hu d4be82d1c9 Add Irker service configuration options
Closes #1713
Closes #1714
Closes gitlab-com/support-forum#139
2015-07-05 06:40:56 -07:00
catatsuy 87ac590078 'created_at DESC' is performed twice
If you are already sorting in descending order in the created_at,
it is run twice when you run the .recent.
It has passed in the string 'created_at DESC'.
Ruby on Rails is directly given to the SQL.
It is a slow query in MySQL.
2015-07-02 21:28:31 +09:00
Dmitriy Zaporozhets 2e6bbb12f8 Refactor can_be_merged logic for merge request
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-07-01 17:24:03 +02:00
Dmitriy Zaporozhets 804168e1de Merge branch 'use-rugged-for-merge' into 'master'
Merge branches inside one repository using rugged instead of satellites

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>

cc @rspeicher @DouweM

See merge request !918
2015-07-01 15:08:41 +00:00
Dmitriy Zaporozhets d24c40ec21 Merge branches inside one repository using rugged instead of satellites
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-07-01 16:23:58 +02:00
Valery Sizov 6ede2db328 fix of GitLab CI forking 2015-07-01 13:26:45 +03:00
Dmitriy Zaporozhets 2d85458ac7 Merge branch 'fix-zero-sha-lookup' into 'master'
Repository#blob_at should return nil for 00000000... sha

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>

See merge request !916
2015-07-01 09:30:43 +00:00
Dmitriy Zaporozhets baf12f45d8 Repository#blob_at should return nil for 00000000... sha
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-07-01 11:02:37 +02:00
Dmitriy Zaporozhets a5b54f919a Reporter role can manage issue tracker now
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-30 13:33:02 +02:00
Dmitriy Zaporozhets 7ca017b513 Refactor issue, mr, note abilities to include project abilities too
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-26 18:15:36 +02:00
Dmitriy Zaporozhets 083d4604c4 Change dynamic abilities to new format
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-26 17:18:40 +02:00
Dmitriy Zaporozhets 342d553709 Rename abilities to correspond contoller/model action names
write_ was renamed to create_
modify_  was renamed to update_

So now in update action we have next code

def create
  can?(current_user, :create_issue, @issue)
end

def update
  can?(current_user, :update_issue, @issue)
end

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-26 15:55:56 +02:00
Dmitriy Zaporozhets d5947ada44 Simplify set of assignee, milestone and label to admin_issue rule
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-26 15:45:45 +02:00
Dmitriy Zaporozhets d315d1eba4 Dont allow guest to set assigne, milestone and label when create new issue or merge request
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-25 15:38:04 +02:00
Dmitriy Zaporozhets 0c8b96bdbc Merge branch 'performance-improvements' into 'master'
Performance improvements

* store @participants in variable
* store result of subscribed? call into variable

In total it reduce amount of SQL queries for issue or merge_request with 10 comments/participants almost twice.

See merge request !883
2015-06-25 08:14:03 +00:00
Dmitriy Zaporozhets a5f23435f7 Improve performance for issue#show page
* store @participants in variable
* store result of subscribed? call into variable

In total it reduce amount of SQL queries for issue with 10 comments/participants twice.

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-24 12:49:34 +02:00
Douwe Maan 43b444f40a Merge branch 'rs-issue-1850' into 'master'
Only look up Commit authors/committers by email

- Removes looking up authors/committers by name
- Renames `User.find_for_commit` to `User.find_by_any_email`

Closes #1850

See merge request !878
2015-06-24 09:47:13 +00:00
Robert Speicher 7e4829c3e9 Allow user to remove public email address 2015-06-23 21:22:00 -04:00
Robert Speicher e9b65a3e05 Only look up Commit authors/committers by email
- Removes looking up authors/committers by name
- Renames `User.find_for_commit` to `User.find_by_any_email`
2015-06-23 18:07:15 -04:00
Dmitriy Zaporozhets 21e227d870 Validate presence of provider field in Identity
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-23 11:21:23 +02:00
Dmitriy Zaporozhets f189c36d8d Merge branch 'rs-dev-issue-2414' into 'master'
Allow Admin to filter users by 2FA status

> ![Screen_Shot_2015-06-19_at_4.38.12_PM](https://gitlab.com/gitlab-org/gitlab-ce/uploads/deba7f2a6b8d1548c1d1ac401e0e35a1/Screen_Shot_2015-06-19_at_4.38.12_PM.png)

Closes internal https://dev.gitlab.org/gitlab/gitlabhq/issues/2414

See merge request !852
2015-06-23 08:48:22 +00:00
Robert Speicher dcfce8b198 Use alias_attribute to define User#two_factor_enabled 2015-06-22 21:14:07 -04:00
Dmitriy Zaporozhets cc9b5c49d1 Merge branch 'revert-mr-state-names'
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>

Conflicts:
	features/steps/project/merge_requests.rb
2015-06-22 15:43:09 +02:00
Robert SpeicherandDmitriy Zaporozhets 2120e2dd95 Replace remaining references to Note.create_cross_reference_note 2015-06-22 12:13:46 +02:00
Dmitriy Zaporozhets 75f7a9648e Merge branch 'web-editor-autocrlf' into 'master'
Convert CRLF newlines to LF when committing using the web editor.

Fixes #1823 and https://github.com/gitlabhq/gitlabhq/issues/7950.

Depends on https://gitlab.com/gitlab-org/gitlab_git/merge_requests/29 being merged and a new gitlab_git being released.

cc @jacobvosmaer

See merge request !858
2015-06-22 10:11:26 +00:00
Dmitriy Zaporozhets 29b6d465a7 Merge branch 'rs-dev-issue-2355' into 'master'
MergeRequest#show performance improvements

This is a first pass on improving the performance of the `MergeRequests#show` page. Notable changes:

- The "Commits" tab is loaded lazily, so the initial page load should be much faster for MRs with many commits.
- Relative timestamps via `timeago` are only initialized once per load instead of `O(n^2)`. This greatly improves frontend rendering times for a large number of commits.
- Refactored `User.find_for_commit` to use a single ARel-generated SQL query instead of the old method which resulted in one query, and could result in up to three.

See merge request !838
2015-06-22 09:48:49 +00:00
Dmitriy Zaporozhets ea9dda9541 Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce 2015-06-22 11:26:33 +02:00
Robert Speicher d3ff8c1a95 Make default value for otp_required_for_login false instead of null 2015-06-20 19:40:48 -04:00
Douwe Maan 0734756ee4 Convert CRLF newlines to LF when committing using the web editor. 2015-06-20 14:35:24 +02:00
Douwe Maan c0df5ff126 Merge branch 'snippet_optional_filename' into 'master'
Make snippet filename optional.

Fixes #2384.

See merge request !1866
2015-06-20 10:47:06 +00:00
Douwe Maan b2eef41d41 Merge branch 'fix-error-500-internal-snippet' into 'master'
Fix Error 500 when one user attempts to access another's personal, internal snippet

### What does this MR do?

This MR fixes an Error 500 that occurred if one user tried to access another's personal, internal snippet. Steps to reproduce:

### Why was this MR needed?

1. Go to `<hostname>/snippets/new`.
2. Select "Internal".
3. Create a snippet. Save the URL (e.g. `<hostname>/snippets/20`)
4. Logout and sign in as another user.
5. Go to the URL in step 3.

### What are the relevant issue numbers?

Closes #1815

See merge request !854
2015-06-20 10:38:33 +00:00