Commit Graph
2391 Commits
Author SHA1 Message Date
Valery Sizov 162cd0099c fix deprecation messages in tests 2015-12-03 10:33:43 +02:00
Valery Sizov e6dadea389 git rid of deprecated warnings 2015-12-02 08:50:00 +02:00
Valery Sizov 13c6096e42 Merge branch 'upload_hook' into 'master'
Fire update hook from GitLab

https://gitlab.com/gitlab-org/gitlab-ce/issues/3069

See merge request !1882
2015-11-30 17:22:00 +00:00
Valery Sizov e0131c5d07 Merge branch 'rails_update_to_4_2' into 'master'
Rails update to 4.2.4

https://gitlab.com/gitlab-org/gitlab-ce/issues/2694

See merge request !1902
2015-11-30 16:49:09 +00:00
Valery SizovandValery Sizov ae18ba1632 Fire update hook from GitLab 2015-11-30 18:36:34 +02:00
Valery Sizov f1504e1ad5 test fix 2015-11-30 18:03:07 +02:00
Valery Sizov e92ceb7b57 fix specs 2015-11-30 16:12:31 +02:00
Dmitriy Zaporozhets 69e9c4143b Merge branch 'expire-application-settings-startup' of https://gitlab.com/stanhu/gitlab-ce 2015-11-30 10:23:25 +01:00
Douwe Maan 8f4b6d51f0 Merge branch 'jcorcuera/gitlab-ce-issue_3428' 2015-11-27 12:53:10 +01:00
Stan Hu 2f90e71fd3 Merge pull request #9670 from janten/gravatar-retina
Add support for HiDPI displays in gravatar service
2015-11-26 08:13:28 -08:00
Jose Corcuera b9df1a6355 Strip attributes for Milestone and Issuable. #3428 2015-11-26 10:16:50 -05:00
Valery SizovandValery Sizov 7f214cee74 Migrate mailers to ActiveJob 2015-11-26 17:03:43 +02:00
Valery Sizov 3e0fe27627 Merge remote-tracking branch 'origin/master' into rails_update_to_4_2 2015-11-26 12:30:28 +02:00
Robert Speicher 5f0d1f30b0 Remove enumerize gem 2015-11-25 17:06:04 -05:00
Stan Hu e55473ad68 Expire application settings from cache at startup
If a DB migration occurs, there's a chance that the application settings are
loaded from the cache and provide stale values, causing Error 500s.
This ensures that at startup the settings are always refreshed.

Closes #3643
2015-11-25 11:30:33 -08:00
Valery Sizov 40ff1318d2 Rails update to 4.2.4 2015-11-25 18:18:44 +02:00
Robert Speicher 31a34b5917 Merge branch 'ci-artifacts-path' into 'master'
Expose artifacts path

This fixes broken artifacts storage path.

Fixes #3607 
Fixes #3608

Related: gitlab-org/omnibus-gitlab!544

See merge request !1869
2015-11-23 22:19:13 +00:00
Robert Speicher 2d77a21d59 Merge branch 'ci-fix-500' into 'master'
Fix 500 when using CI

- Fix for Ci::Build state machine, allowing to process builds without the project
- Forcefully update builds that didn't want to update with state machine
- Fix saving GitLabCiService as Admin Template

Fixes #3556 

See merge request !1873
2015-11-23 21:51:51 +00:00
Douwe Maan 761bf63810 Merge branch 'issue_2296' into 'master'
Generate system note after Task item has been updated on Issue or Merge Request.

Reference: #2296 

Everytime the User check or uncheck a Task Item from the Issue or
Merge Request description, a new update is going to be
added to the activity logs of the Issue or Merge Request.

Note that when using the edit form, you can only update the Task item
status or add/delete/modify existing ones. Doing both actions is not
fully supported.

See merge request !1848
2015-11-23 13:09:34 +00:00
Kamil Trzcinski 57e974c03b Fix 500 when using CI
- Fix for Ci::Build state machine, allowing to process builds without the project
- Forcefully update builds that didn't want to update with state machine
- Fix saving GitLabCiService as Admin Template
2015-11-23 13:51:41 +01:00
Kamil Trzcinski 11728b50f9 Expose artifacts path 2015-11-23 13:05:22 +01:00
Robert Schilling 26b12e2c37 Add upvote/downvote fields to merge request and note API to preserve compatibility 2015-11-21 21:36:31 +01:00
Yorick Peterse d496a6b919 Handle removed source projects in MR CI commits
When calling MergeRequest#ci_commit the code would previously raise an
error if the source project no longer existed (e.g. because the user
removed their fork).

See #3599 for more information.
2015-11-20 23:43:10 +01:00
Rubén Dávila 3aabed3456 Fix bug that happened when replacing the Task list. #2296
REF: https://gitlab.com/gitlab-org/gitlab-ce/issues/2296#note_2724697
2015-11-20 13:58:45 -05:00
Stan Hu ad1f451f24 Fix Drone web hook URL not being updated 2015-11-20 08:13:25 -08:00
Rubén Dávila fa9f2dec0e Monkey patching TaskList::Item is no longer required. #2296 2015-11-20 10:49:12 -05:00
Ruben DavilaandRubén Dávila 97afb84b31 Generate system note after Task item has been updated on Issue or Merge Request. #2296
Everytime the User check or uncheck a Task Item from the Issue or
Merge Request description, a new update is going to be
added to the activity logs of the Issue or Merge Request.

Note that when using the edit form, you can only update the Task item
status or add/delete/modify existing ones. Doing both actions is not
fully supported.
2015-11-19 21:05:44 -05:00
Kamil Trzciński 0383f84d88 Merge branch 'ci-yaml-validation' into 'master'
Commits without .gitlab-ci.yml are marked as skipped

- Commits without .gitlab-ci.yml are marked as skipped
- Save detailed error when YAML syntax

This also fixes: #3521 #3546 

/cc @jacobvosmaer 


See merge request !1827
2015-11-19 22:57:06 +00:00
Dmitriy Zaporozhets 68d4ab2381 Merge branch 'emoji_votes' into 'master'
Award Emoji

This it first iteration of award emoji feature.
We have plan to extend emoji picker by the next release.

For now, you can add award by clicking to the emoji picker or posting a regular comment with emoji like "👍" and any other. You can post not only emoji that listed in the emoji picker.

See merge request !1825
2015-11-19 21:34:38 +00:00
Dmitriy Zaporozhets e1780825ee Merge branch 'finding-issues-by-labels-performance' into 'master'
Improve performance of finding issues with/without labels

The changes in this MR ultimately lead to finding issues with(out) labels being about 2x faster due to:

1. Newly added indexes on `issues.state` and `projects.visibility_level`
2. Adjusting the query so that finding issues for multiple projects is more efficient

See merge request !1787
2015-11-19 19:35:38 +00:00
Kamil Trzcinski 8248314bc9 Don't rescue Exception, but StandardError 2015-11-19 20:17:17 +01:00
Robert Speicher 56476f1847 Merge branch 'dbalexandre/gitlab-ce-fix-personal-snippet-access-workflow' into 'master'
Improve personal snippet access workflow.

Replaces !1709

Fixes #3258

See merge request !1817
2015-11-19 17:22:20 +00:00
Valery Sizov bdf4007cb7 adressing comments 2015-11-19 18:12:17 +02:00
Valery Sizov 23c5473cc0 added spinach tests 2015-11-19 13:20:09 +02:00
Kamil Trzcinski 0df7a32ea5 Fix tests 2015-11-19 12:09:34 +01:00
Kamil Trzcinski 2b907f61ff Commits without .gitlab-ci.yml are marked as skipped
- Save detailed error when YAML syntax
2015-11-19 12:09:34 +01:00
Yorick Peterse 8591cc02be Use a JOIN in IssuableFinder#by_project
When using IssuableFinder/IssuesFinder to find issues for multiple
projects it's more efficient to use a JOIN + a "WHERE project_id IN"
condition opposed to running a sub-query.

This change means that when finding issues without labels we're now
using the following SQL:

    SELECT issues.*
    FROM issues
    JOIN projects ON projects.id = issues.project_id

    LEFT JOIN label_links ON label_links.target_type = 'Issue'
                          AND label_links.target_id  = issues.id

    WHERE (
        projects.id IN (...)
        OR projects.visibility_level IN (20, 10)
    )
    AND issues.state IN ('opened','reopened')
    AND label_links.id IS NULL
    ORDER BY issues.id DESC;

instead of:

    SELECT issues.*
    FROM issues
    LEFT JOIN label_links ON label_links.target_type = 'Issue'
                          AND label_links.target_id  = issues.id

    WHERE issues.project_id IN (
        SELECT id
        FROM projects
        WHERE id IN (...)
        OR visibility_level IN (20,10)
    )
    AND issues.state IN ('opened','reopened')
    AND label_links.id IS NULL
    ORDER BY issues.id DESC;

The big benefit here is that in the last case PostgreSQL can't properly
use all available indexes. In particular it ends up performing a
sequence scan on the "label_links" table (processing around 290 000
rows). The new query is roughly 2x as fast as the old query.
2015-11-19 11:58:05 +01:00
Yorick Peterse a42d469ab2 Merge branch 'atom-feed-latest-update' into 'master'
Improve performance of user profiles, finding groups, and finding projects

This MR improves the following:

* Rendering of profile pages and Atom feeds
* Finding groups (using GroupsFinder & friends)
* Finding projects (using ProjectsFinder & friends)

Initially this MR was intended to only improve rendering of Atom feeds, but over time other fixes were introduced as well as the same code was the cause of all these problems.

See merge request !1790
2015-11-19 10:05:53 +00:00
Valery Sizov fdd5a8f2e1 addressing comments 2015-11-19 01:26:00 +02:00
Valery Sizov fd2c0fe446 award emoji 2015-11-19 01:25:27 +02:00
Yorick Peterse efd5d93745 Use "GitLab.com" instead of "gitlab.com" 2015-11-18 20:20:55 +01:00
Yorick Peterse 26482bddb0 Don't pluck project IDs in User#owned_projects
This won't work efficiently if you happen to have a lot of projects.
2015-11-18 13:12:44 +01:00
Yorick Peterse 73f302edf9 Apply CI scope changes to the User model
These changes are based on those from commit
03f5ff750b, except they use a UNION
instead of plucking IDs into memory.
2015-11-18 13:05:45 +01:00
Yorick Peterse e116a356b8 Refactor User#authorized_groups/projects
These methods no longer include public groups/projects (that don't
belong to the actual user) as this is handled by the various finder
classes now. This also removes the need for passing extra arguments.

Note that memoizing was removed _explicitly_. For whatever reason doing
so messes up the users controller to a point where it claims a certain
user does _not_ have access to certain groups/projects when it does have
access. Existing code shouldn't be affected as these methods are only
called in ways that they'd run queries anyway (e.g. a combination of
"any?" and "each" which would run 2 queries regardless of memoizing).
2015-11-18 13:05:45 +01:00
Yorick Peterse a4fc8112df Added Project.visible_to_user
This method can be used to filter projects to those visible to a given
user.
2015-11-18 13:05:45 +01:00
Yorick Peterse a74d6d2043 Group methods for filtering public/visible groups
These methods will be used to get a list of groups, optionally
restricted to only those visible to a given user.
2015-11-18 13:05:45 +01:00
Yorick Peterse 01620dd7e7 Added Event.limit_recent
This will be used to move some querying logic from the users controller
to the Event model (where it belongs).
2015-11-18 13:05:45 +01:00
Yorick Peterse 5fcd9986b8 Refactor getting user groups/projects/contributions
This new setup no longer loads any IDs into memory using "pluck",
instead using SQL UNIONs to merge the various datasets together. This
results in greatly improved query performance as well as a reduction of
memory usage.

The old setup was in particular problematic when requesting the
authorized projects _including_ public/internal projects as this would
result in roughly 65000 project IDs being loaded into memory. These IDs
would in turn be passed to other queries.
2015-11-18 13:05:45 +01:00
Yorick Peterse bfd9855a2b Prefix table names for User UNIONs 2015-11-18 13:05:45 +01:00
Yorick Peterse 189c40c33d Use SQL::Union for User#authorized_groups
This removes the need for plucking any IDs into Ruby.
2015-11-18 13:05:45 +01:00