Commit Graph
783 Commits
Author SHA1 Message Date
Dmitriy Zaporozhets 949a7e8e20 Merge branch 'report-ssl-errors' of https://gitlab.com/stanhu/gitlab-ce 2015-12-07 20:17:29 +01:00
Valery Sizov bd5fb1b479 Merge branch 'webhook_payload_with_changes' into 'master'
Add added, modified and removed properties to commit object in webhook

https://gitlab.com/gitlab-org/gitlab-ee/issues/20

See merge request !1988
2015-12-07 14:43:13 +00:00
Valery Sizov 3c97cbc74c fixes after review 2015-12-07 15:13:06 +02:00
Valery Sizov 5df2c4419c fox specs 2015-12-07 14:14:35 +02:00
Douwe Maan 6368717852 Merge branch 'issue_1156' 2015-12-07 12:07:22 +01:00
Stan Hu a120b78940 Handle and report SSL errors in Web hook test. Check for status 200 for success.
If a Web hook test fails due to an SSL error or some other error, report
the result back to the user instead of an Error 500.

Closes #3656

Handle response
2015-12-04 07:13:28 -08:00
Valery Sizov 5c1b49f494 Add added, modified and removed properties to commit object in webhook 2015-12-04 16:23:21 +02:00
Rubén Dávila 338eb2c41e Call update hook from new GitHooksService class. #3069 2015-12-03 09:39:15 -05:00
Rubén Dávila 5145706c82 Run custom Git hooks when creating or deleting branches through the UI. #1156 2015-12-03 09:39:15 -05:00
Douwe Maan 928d131e39 Merge branch 'master' into link-refs 2015-12-03 13:32:42 +01:00
Rubén DávilaandValery Sizov f94afdbdb2 Fix broken spec related to MySQL and fractional seconds support. 2015-12-03 09:30:50 +02:00
Douwe Maan 60828ab40e Merge branch 'master' into link-refs 2015-12-02 12:12:03 +01:00
Douwe Maan 62c14ba2ed Render commit reference using short sha, but include full sha in comment. 2015-12-01 12:58:45 +01:00
Douwe Maan 4a0ebccf6b Fix specs 2015-11-30 22:43:54 +01:00
Douwe Maan a7be01cd07 Render commit range reference with short shas, link to full shas. 2015-11-30 21:10:52 +01: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 Sizov e92ceb7b57 fix specs 2015-11-30 16:12:31 +02:00
Jose Corcuera b9df1a6355 Strip attributes for Milestone and Issuable. #3428 2015-11-26 10:16:50 -05: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
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
Valery Sizov 22bbb379ae fox tests 2015-11-19 23:00:30 +02:00
Valery Sizov 671a49cfd5 added specs 2015-11-19 14:41:05 +02:00
Valery Sizov 23c5473cc0 added spinach tests 2015-11-19 13:20:09 +02:00
Valery Sizov fd2c0fe446 award emoji 2015-11-19 01:25:27 +02: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 054f2f98ed Faster way of obtaining latest event update time
Instead of using MAX(events.updated_at) we can simply sort the events in
descending order by the "id" column and grab the first row. In other
words, instead of this:

    SELECT max(events.updated_at) AS max_id
    FROM events
    LEFT OUTER JOIN projects   ON projects.id   = events.project_id
    LEFT OUTER JOIN namespaces ON namespaces.id = projects.namespace_id
    WHERE events.author_id IS NOT NULL
    AND events.project_id IN (13083);

we can use this:

    SELECT events.updated_at AS max_id
    FROM events
    LEFT OUTER JOIN projects   ON projects.id   = events.project_id
    LEFT OUTER JOIN namespaces ON namespaces.id = projects.namespace_id
    WHERE events.author_id IS NOT NULL
    AND events.project_id IN (13083)
    ORDER BY events.id DESC
    LIMIT 1;

This has the benefit that on PostgreSQL a backwards index scan can be
used, which due to the "LIMIT 1" will at most process only a single row.
This in turn greatly speeds up the process of grabbing the latest update
time. This can be confirmed by looking at the query plans. The first
query produces the following plan:

    Aggregate  (cost=43779.84..43779.85 rows=1 width=12) (actual time=2142.462..2142.462 rows=1 loops=1)
      ->  Index Scan using index_events_on_project_id on events  (cost=0.43..43704.69 rows=30060 width=12) (actual time=0.033..2138.086 rows=32769 loops=1)
            Index Cond: (project_id = 13083)
            Filter: (author_id IS NOT NULL)
    Planning time: 1.248 ms
    Execution time: 2142.548 ms

The second query in turn produces the following plan:

    Limit  (cost=0.43..41.65 rows=1 width=16) (actual time=1.394..1.394 rows=1 loops=1)
      ->  Index Scan Backward using events_pkey on events  (cost=0.43..1238907.96 rows=30060 width=16) (actual time=1.394..1.394 rows=1 loops=1)
            Filter: ((author_id IS NOT NULL) AND (project_id = 13083))
            Rows Removed by Filter: 2104
    Planning time: 0.166 ms
    Execution time: 1.408 ms

According to the above plans the 2nd query is around 1500 times faster.
However, re-running the first query produces timings of around 80 ms,
making the 2nd query "only" around 55 times faster.
2015-11-18 13:02:43 +01:00
Douwe Maan c12d0b4d2a Merge branch 'rs-wiki-touches-project' into 'master'
Make ProjectWiki touch Project#last_activity_at after wiki actions

Closes #3026

See merge request !1803
2015-11-17 08:48:29 +00:00
Robert Speicher ccb0c40c54 Make ProjectWiki touch Project#last_activity_at after wiki actions
Closes #3026
2015-11-16 13:08:25 -05:00
Dmitriy Zaporozhets 98d6d491b5 Move global milestone specs
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-16 14:38:34 +01:00
Dmitriy Zaporozhets da8ca8b217 Merge branch 'annotate-models' into 'master'
Annotate models

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

See merge request !1799
2015-11-14 08:27:12 +00:00
Dmitriy Zaporozhets a237999f00 Annotate models
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-13 19:22:46 +01:00
Kamil Trzcinski e53a56acea Fix broken tests 2015-11-13 10:52:50 +01:00
Kamil Trzcinski 6384c757b7 Expose CI enable option in project features
- Enable CI by default for all new projects
2015-11-13 10:52:50 +01:00
Kamil Trzcinski d0e3e823a2 Implement Build Artifacts
- Offloads uploading to GitLab Workhorse
- Use /authorize request for fast uploading
- Added backup recipes for artifacts
- Support download acceleration using X-Sendfile
2015-11-10 12:51:50 +01:00
Dmitriy Zaporozhets 354b69dde2 Merge remote-tracking branch 'origin/release-notes'
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-10 10:20:22 +01:00
Kamil Trzcinski 4fda9ef8a5 Fix tests 2015-11-08 23:55:47 +01:00
Dmitriy Zaporozhets 6f15356aea Add tests to release notes feature
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-06 15:43:59 +01:00
Kamil Trzcinski ba68facf8d CI details cleanup
- Add page titles to CI settings.
- Fix CI admin navigation.
- Remove duplicated scope.
- Use monospace font for commit sha.
- Add page title and header title to build page.
- Proper authorization for cancel/retry builds.
- Use gitlab pagination theme for builds and group members.
- Don't paginate builds widget on build page.
- Add badges to commit page Changes/Builds tabs.
- Add "Builds" to commit Builds tab page title.
- Add and use Ci::Build#retryable? method.
- Add CI::Build#retried? method.
- Allow all failed commit builds to be retried.
- Proper authorization for cancel/retry all builds.
- Remove unused param.
- Use time_ago_with_tooltip where appropriate.
- Tweak builds index text
- Remove duplication between builds/build and commit_statuses/commit_status.
- Use POST rather than GET for canceling and retrying builds.
- Remove redundant URL helpers.
- Add build ID to build page.
- Link branch name on build page.
- Move commit/:sha/ci to commit/:sha/builds.
2015-11-05 15:24:27 +01:00
Valery Sizov 6051c28fc0 Allow groups to appear in the search results if the group owner allows it 2015-11-05 13:18:51 +02:00
Dmitriy Zaporozhets 1c4d1c3bd6 Add release model
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-05 11:03:02 +01:00
Douwe Maan 3f05c22f56 Merge branch 'rs-git-bin-path' into 'master'
Replace all usages of `git` command with configurable binary path

Closes #3311

See merge request !1742
2015-11-04 15:03:16 +00:00
Yorick Peterse 219f920c64 Merge branch 'remove-duplicate-orders' into 'master'
Remove duplicate orders

This changes the default order from `created_at DESC, id DESC` to just `id DESC` as this achieves the same results without the overhead of having to sort data twice (we've seen queries go from 200ms to just a few ms by removing the double sort).

cc @jacobvosmaer @dzaporozhets @rspeicher @DouweM 

See merge request !1735
2015-11-04 10:14:08 +00:00
Robert Speicher d09d62b6b8 Replace all usages of git command with configurable binary path
Closes #3311
2015-11-03 17:11:09 -05:00
Yorick Peterse a2f8f9ad3d Fixed User sorting specs
The descriptions were not accurate and one particular spec seemingly
expected the wrong User row to be returned.
2015-11-03 11:56:04 +01:00
Dmitriy Zaporozhets 810c91fe35 Refactor search by commits message
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-02 16:39:24 +01:00
Michael Chmielewski a0d0a01791 Actually converted code to following suggestions. 2015-10-28 22:34:39 -04:00