Commit Graph
10623 Commits
Author SHA1 Message Date
Valery Sizov 93bcc9ca7f Merge remote-tracking branch 'origin/master' into ce_upsteram 2015-11-05 14:26:35 +02: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
Achilleas Pipinellis 97f9157de9 Merge branch 'update-ci-settings' into 'master'
update example of regex for pytest-cov



See merge request !1745
2015-11-05 06:42:00 +00:00
Robert Speicher 5df6b0b758 Merge branch 'facebook-auth' into 'master'
Add Facebook authentication

See merge request !1740
2015-11-04 15:23:38 +00: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
Stan Hu 82aa54193f Merge branch 'fix-infinite-redirect' into 'master'
Only redirect to homepage url when its not the root url

It was possible to create an infi redirect when the user set up the
`home_page_url` to redirect to the main URL of the gitlab instance.

This fix makes sure this redirect is not possible.

Fixes #1020 

/cc @dblessing 

See merge request !1703
2015-11-04 14:53:35 +00:00
Dmitriy Zaporozhets c5d637b2ca Improvements to profile page UI
* add separator between tabs
* show project avatars
* fix tooltip offset on user calendar
* remove gray hover for tabs

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-04 14:13:25 +01:00
Yorick Peterse 6d91ee0095 Merge branch 'create-project-performance' into 'master'
Improve performance of creating projects



See merge request !1650
2015-11-04 10:14:30 +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
mozillazg 5f94e130d1 update example of regex for pytest-cov 2015-11-04 11:41:44 +08:00
Robert Speicher d09d62b6b8 Replace all usages of git command with configurable binary path
Closes #3311
2015-11-03 17:11:09 -05:00
Douwe Maan 4773d98e83 Add Facebook authentication 2015-11-03 17:59:07 +01:00
Dmitriy Zaporozhets 482a17089f Merge branch 'improve-profile-page' 2015-11-03 17:33:29 +01:00
Dmitriy Zaporozhets ef6f6f80ec Add extra padding between user description and links on profile page
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-03 16:42:02 +01:00
Dmitriy Zaporozhets a74aba01b2 Merge branch 'fix-clipboard-btn' into 'master'
Fix clipboard button overflow

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

See merge request !1739
2015-11-03 15:18:05 +00:00
Dmitriy Zaporozhets 7d0d60d324 Merge branch 'go-to-nav' 2015-11-03 15:52:27 +01:00
Dmitriy Zaporozhets 00ac792cfb Fix clipboard button overflow
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-03 15:44:52 +01:00
Dmitriy Zaporozhets 4d7f00fdea Apply new design for user profile page
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-03 15:32:40 +01:00
Kamil Trzciński 77ef4855e0 Merge branch 'drop-old-builds' into 'master'
Cleanup stuck CI builds

Fixes #3143

/cc @dzaporozhets @jacobvosmaer 

See merge request !1655
2015-11-03 13:56:43 +00:00
Dmitriy Zaporozhets ab129f7b23 Improve profile page UI
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-03 14:00:41 +01:00
Dmitriy Zaporozhets e3aed91219 Better name for up-level links
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-03 13:22:11 +01:00
Kamil Trzciński 86c0d8d289 Merge branch 'only-syntax' into 'master'
Extend yml syntax for only and except to support specifying repository path

This allows to limit execution of jobs to specific repository.

For example:
```yaml
job:
  only:
    - branches@gitlab-org/gitlab-ce
  except:
    - master@gitlab-org/gitlab-ce
```

The above will run `job` for all branches on `gitlab-org/gitlab-ce`, except master.

@dzaporozhets @JobV @vsizov Please review.


See merge request !1720
2015-11-03 12:13:21 +00:00
Kamil Trzcinski 8d2758e02d Cleanup stuck CI builds daily 2015-11-03 13:12:16 +01:00
Dmitriy Zaporozhets d23ffc832c Fix code that depends on incorrect inflector behavior
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-03 12:00:27 +01:00
Yorick Peterse 732f5380af Only sort by IDs by default
Sorting by both "created_at" and "id" in descending order is not needed
as simply sorting by "id" in descending order will already sort rows
from new to old. Depending on the query and data involved sorting twice
can also introduce significant overhead.
2015-11-03 11:54:43 +01:00
Dmitriy Zaporozhets fb2f8be4d7 Merge branch 'olhado/gitlab-ce-commit-search' 2015-11-03 11:28:56 +01:00
Dmitriy Zaporozhets d0398514b8 Add 'New file' link to dropdown on project page
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-03 09:21:35 +01:00
Stan Hu aa27108e6b Merge pull request #9791 from konpyu/fix-deprecated
Fix deprecated `prepend_before_filter` -> `prepend_before_action`
2015-11-02 23:47:37 -08: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
Jeroen van Baarsen 2dec5ec990 Only redirect to homepage url when its not the root url
It was possible to create an infi redirect when the user set up the
`home_page_url` to redirect to the main URL of the gitlab instance.

This fix makes sure this redirect is not possible.

Fixes !1020

Signed-off-by: Jeroen van Baarsen <jeroenvanbaarsen@gmail.com>
2015-11-02 15:42:30 +01:00
Kamil Trzcinski c03da1caad Extend yml syntax for only and except to support specifying repository path 2015-11-02 14:44:06 +01:00
Marin Jankovski 412f8f47a3 Merge branch 'cernvcs/gitlab-ee-feature/jira_api_path' 2015-11-02 09:43:47 +01:00
Robert Speicher 3b0039f659 Persist blob editor's value on submit, not on click
Prior, the value of the Ace editor was only being persisted if the user
physically clicked the submit button, which the "quick submit" behavior
doesn't do.

Now the value will be properly transferred before any form is submitted.
2015-10-31 16:08:34 +01:00
KON YUICHI 31723eb9f0 fix deprecated 2015-10-31 22:32:06 +09:00
Yorick Peterse a0ba6c6c19 Merge branch 'optimize-user-find-by-any-email' into 'master'
Improve performance of User.find_by_any_email



See merge request !1698
2015-10-30 17:28:30 +00:00
Valery Sizov e29e63fd8c When someone as marked as a required approver for a merge request, an email should be sent 2015-10-30 16:54:00 +02:00
Alex Lossent f4501143d2 Allow configuring the Jira API URL
A DB migration takes care of initializing the API URL using the same logic as before.
Remove the api_version property which now seems redundant.
2015-10-30 14:34:39 +01:00
Dmitriy Zaporozhets 49a73b6e70 Merge branch 'minor-ui-fixes' into 'master'
Minor ui fixes



See merge request !1704
2015-10-30 11:52:41 +00:00
Yorick Peterse a9df714764 Use a subquery with IDs only for find_by_any_email
This further improves performance of User.find_by_any_email and is
roughly twice as fast as the previous UNION setup.

Thanks again to @dlemstra for suggesting this.
2015-10-30 12:00:58 +01:00
Yorick Peterse bba46623c2 Fixed UNION syntax for MySQL
MySQL doesn't support the previous syntax.
2015-10-30 12:00:58 +01:00
Yorick Peterse 24c8f42278 Use a UNION for User.find_by_any_email
This is significantly faster than using a sub-query, at least when run
on the GitLab.com production database. The benchmarks are a lot slower
now with these changes, most likely due to PostgreSQL choosing a
different (and less efficient) plan based on the amount of data present
in the test database.

Thanks to @dlemstra for suggesting the use of a UNION.
2015-10-30 12:00:58 +01:00
Yorick Peterse 49c081b9f3 Improve performance of User.find_by_any_email
This query used to rely on a JOIN, effectively producing the following
SQL:

    SELECT users.*
    FROM users
    LEFT OUTER JOIN emails ON emails.user_id = users.id
    WHERE (users.email = X OR emails.email = X)
    LIMIT 1;

The use of a JOIN means having to scan over all Emails and users, join
them together and then filter out the rows that don't match the criteria
(though this step may be taken into account already when joining).

In the new setup this query instead uses a sub-query, producing the
following SQL:

    SELECT *
    FROM users
    WHERE id IN (select user_id FROM emails WHERE email = X)
    OR email = X
    LIMIT 1;

This query has the benefit that it:

1. Doesn't have to JOIN any rows
2. Only has to operate on a relatively small set of rows from the
   "emails" table.

Since most users will only have a handful of Emails associated
(certainly not hundreds or even thousands) the size of the set returned
by the sub-query is small enough that it should not become problematic.

Performance of the old versus new version can be measured using the
following benchmark:

    # Save this in ./bench.rb
    require 'benchmark/ips'

    email = 'yorick@gitlab.com'

    def User.find_by_any_email_old(email)
      user_table = arel_table
      email_table = Email.arel_table

      query = user_table.
        project(user_table[Arel.star]).
        join(email_table, Arel::Nodes::OuterJoin).
        on(user_table[:id].eq(email_table[:user_id])).
        where(user_table[:email].eq(email).or(email_table[:email].eq(email)))

      find_by_sql(query.to_sql).first
    end

    Benchmark.ips do |bench|
      bench.report 'original' do
        User.find_by_any_email_old(email)
      end

      bench.report 'optimized' do
        User.find_by_any_email(email)
      end

      bench.compare!
    end

Running this locally using "bundle exec rails r bench.rb" produces the
following output:

    Calculating -------------------------------------
                original     1.000  i/100ms
               optimized    93.000  i/100ms
    -------------------------------------------------
                original     11.103  (± 0.0%) i/s -     56.000
               optimized    948.713  (± 5.3%) i/s -      4.743k

    Comparison:
               optimized:      948.7 i/s
                original:       11.1 i/s - 85.45x slower

In other words, the new setup is 85x faster compared to the old setup,
at least when running this benchmark locally.

For GitLab.com these improvements result in User.find_by_any_email
taking only ~170 ms to run, instead of around 800 ms. While this is
"only" an improvement of about 4.5 times (instead of 85x) it's still
significantly better than before.

Fixes #3242
2015-10-30 12:00:58 +01:00
Valery Sizov 83473a4f56 Page is not reloaded periodically to check if rebase is finished 2015-10-29 20:17:35 +02:00
Douwe Maan 0ea38dc519 Merge branch 'binford2k/gitlab-ce-feature/create_new_directories' 2015-10-29 15:50:49 +01:00
Ben FordandDouwe Maan 3be9d2c422 Add ability to create directories in the editor
Simply type a name with a `/` directory separator and new directories
will be created. This does not do the fancy UI work that github.com
does, but it will get the job done.

I could not find tests for file creation, so I didn't add a test for
this slight behaviour modification. I did test directory traversals
though, using both absolute paths like `/tmp/foo.txt` and relative paths
like `../../foo.txt`. Neither case escaped the repository, though
attempting to traverse with a relative path resulted in a 500 error that
did not affect application stability upon reload.
2015-10-29 15:49:07 +01:00
Dmitriy Zaporozhets b1547021bc Fix label destroy js
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-10-29 14:22:11 +01:00
Yorick Peterse 29b3ce56ac Removed extra activity update for new projects
When a project is created the last activity timestamp is already set so
there's no need for another update.
2015-10-29 14:06:11 +01:00
Dmitriy Zaporozhets e0e311a19c Fix bg for labels page when no labels present
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-10-29 10:28:41 +01:00
Dmitriy Zaporozhets 7794cc8b9d Put delete snippet btn after edit btn
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-10-29 10:25:38 +01:00
Michael Chmielewski a0d0a01791 Actually converted code to following suggestions. 2015-10-28 22:34:39 -04:00