Commit Graph
1047 Commits
Author SHA1 Message Date
Yorick Peterse cd05d3f78d Cache project avatars stored in Git
The avatar logic has been moved from Project to Repository as this makes
caching easier. The logic itself in turn has been changed so that the
logo file names are cached in Redis. This cache is flushed upon pushing
a commit but _only_ if:

1. The commit was pushed to the default branch
2. The commit actually changes any of the logo files

If no branch or commit is given the cache is flushed anyway, this
ensures that calling Repository#expire_cache without any arguments still
flushes the avatar cache (e.g. this is used when removing a project).

Fixes gitlab-org/gitlab-ce#14363
2016-03-17 18:51:54 +01:00
Douwe Maan 21af7459ab Merge branch '4009-external-users' into 'master'
External Users

The user has the rights of a public user execpt it can never create a project, group, or team. Also it cant view internal projects.

Partially fix for both #4009 and #13938 (except the LDAP sync or a pattern to detect external users)


![Screen_Shot_2016-03-14_at_22.02.52](/uploads/486a84ab3acb98c6cfb71a4ec7d268e2/Screen_Shot_2016-03-14_at_22.02.52.png)

See merge request !3171
2016-03-17 14:15:38 +00:00
Zeger-Jan van de Weg 481e73fb76 Merge branch 'master' into new-branch-button-issue 2016-03-17 11:13:16 +01:00
Hiroyuki Sato f0b052e168 Fix wiki search results point to raw source 2016-03-17 08:58:52 +09:00
Zeger-Jan van de Weg 8077a5f958 Clearify who deletes the user 2016-03-15 21:09:25 +01:00
Zeger-Jan van de Weg a09323c9f5 Fix broken specs 2016-03-15 21:09:25 +01:00
Zeger-Jan van de Weg 2b97c92119 Incorporate review 2016-03-15 20:21:11 +01:00
Zeger-Jan van de WegandZeger-Jan van de Weg ad97bebfed Enhance new branch button on an issue 2016-03-15 20:21:11 +01:00
Zeger-Jan van de WegandZeger-Jan van de Weg 228007dfbc new-branch-button 2016-03-15 20:21:11 +01:00
Zeger-Jan van de Weg 59064aeeef Merge branch 'master' into 4009-external-users 2016-03-15 19:16:16 +01:00
Rémy Coutable 54ec7e9599 Improving the original label-subscribing implementation
1. Make the "subscribed" text in Issuable sidebar reflect the labels
   subscription status

2. Current user mut be logged-in to toggle issue/MR/label subscription
2016-03-15 18:22:02 +01:00
Timothy AndrewandRémy Coutable 0444fa560a Original implementation to allow users to subscribe to labels
1. Allow subscribing (the current user) to a label

- Refactor the `Subscription` coffeescript class
  - The main change is that it accepts a container, and conducts all
    DOM queries within its scope. We need this because the labels
    page has multiple instances of `Subscription` on the same page.

2. Creating an issue or MR with labels notifies users subscribed to those labels

- Label `has_many` subscribers through subscriptions.

3. Adding a label to an issue or MR notifies users subscribed to those labels

- This only applies to subscribers of the label that has just been
  added, not all labels for the issue.
2016-03-15 17:25:37 +01:00
Robert Speicher 178c80a561 Merge branch 'fix-activerecord-join-stupidity' into 'master'
Ignore eager loading in Project.search UNION

This fixes issues such as filtering groups by names on pages such as
https://gitlab.com/dashboard/groups.

See merge request !3229
2016-03-15 16:25:02 +00:00
Yorick Peterse c742760289 Ignore eager loading in Project.search UNION
The queries that are UNION'd together don't need any eager loading
(since we really only use the resulting SQL instead of having
ActiveRecord actually run the queries). By dropping any eager loaded
associations queries such as the following work instead of producing a
SQL error:

    Project.all.includes(:namespace).search('foo')
2016-03-15 16:46:17 +01:00
Rémy Coutable 1714883107 Revert "Merge branch 'avatar-cropping' into 'master' "
This reverts commit 01160fc061, reversing
changes made to 4bff9daf8b.
2016-03-15 14:55:40 +01:00
Robert Speicher c4b35a6230 Merge branch 'fix-commit-status-rendering' into 'master'
Cleanup Ci::Commit, Ci::Build and CommitStatus views

This MR tries to do first sweep of cleanups to Ci::Commit and
Ci::Build objects removing all view-related functions and fixing the
API from other side.

Fixes: https://gitlab.com/gitlab-org/gitlab-ce/issues/6046

See merge request !2760
2016-03-15 00:51:43 +00:00
Zeger-Jan van de Weg 88f8d3a4d6 Merge branch 'master' into 4009-external-users 2016-03-14 20:08:02 +01:00
Robert Speicher b782e7c973 Merge branch 'rs-note-active-spec' into 'master'
Add unit specs for `Note#active?`

See merge request !3133
2016-03-14 12:53:15 -04:00
Dmitriy Zaporozhets d324bf8434 Merge branch 'share-project-ce' into 'master'
Bring from EE: Share Project with Group

- [x] Models and migrations
- [x] Logic, UI
- [x] Tests
- [x] Documentation
- [x] Share with group lock
- [x] Api feature
- [x] Api docs
- [x] Api tests

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

For #12831 

cc @DouweM @rspeicher @vsizov

See merge request !3186
2016-03-14 16:38:52 +00:00
Kamil Trzcinski 16592e2b45 Fix review comments
- Remove unused Gitlab::Application.routes.url_helpers from Ci::Build
- Remove too much logic from a view, use Ci::Commit.matrix_builds
- Use ci_status_with_icon
- Don't describe symbols
2016-03-14 13:33:26 +01:00
Kamil Trzcinski f32e28f6fa Fix commit_spec: invalid validation 2016-03-14 13:20:35 +01:00
Kamil Trzcinski 0672258915 Cleanup CiCommit and CiBuild
- Remove all view related methods from Ci::Build and CommitStatus
- Remove unused Ci::Commit and Ci::Build methods
- Use polymorphism to render different types of CommitStatus
2016-03-14 13:20:35 +01:00
Zeger-Jan van de Weg 76eeb316df Create an external users tab on Admin user list
Also incorporates the review into this, mainly spec changes.
2016-03-13 19:10:33 +01:00
Zeger-Jan van de Weg 42fcd3881f External Users
The user has the rights of a public user execpt it can never create a project,
 group, or team. Also it cant view internal projects.
2016-03-13 19:08:04 +01:00
Dmitriy Zaporozhets 55ceda1204 Bring shared project feature tests from EE
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2016-03-12 14:45:14 +01:00
Robert Speicher a63eba9a2b Add unit specs for Note#active? 2016-03-11 18:16:34 -05:00
Robert Speicher 01f6db4f64 Disallow blank (non-null) values for a Note's line_code attribute
It's unclear how these blank values got added, but GitLab.com had a few:

```
irb(main):002:0> Note.where("line_code IS NOT NULL AND line_code = ''").count
=> 439
```

We've added a migration to convert any existing records to use a NULL
value when blank, and updated Note to set blank values to nil before
validation.
2016-03-11 17:46:50 -05:00
Yorick PeterseandRobert Speicher 4f3fa519c6 Use a UNION in MergeRequest.in_projects
The OR condition for source_project_id/target_project_id leads to a
query plan that performs rather poorly on PostgreSQL due to the use of
sub-queries. Because Rails offers no easy alternative for this
particular problem we're forced to using a UNION for both conditions.
The resulting query performs much faster than just using an OR.
2016-03-11 15:26:32 -05:00
Yorick PeterseandRobert Speicher 78244ffcbf Corrected spec title for Namespace.search 2016-03-11 15:25:24 -05:00
Yorick PeterseandRobert Speicher ee75c49313 Make Namespace.search case-insensitive
This ensures searching namespaces works exactly the same as searching
for any other resource.
2016-03-11 15:25:24 -05:00
Yorick PeterseandRobert Speicher 0ab9571ad7 Fixed a few spec typos 2016-03-11 15:25:23 -05:00
Yorick PeterseandRobert Speicher 2cf7f3f410 Use ILIKE/LIKE for searching milestones 2016-03-11 15:25:22 -05:00
Yorick PeterseandRobert Speicher 87e7c3e132 Use ILIKE/LIKE for Issuable.search and full_search 2016-03-11 15:25:21 -05:00
Yorick PeterseandRobert Speicher 2076bdb62e Use ILIKE/LIKE for searching CI runners 2016-03-11 15:25:21 -05:00
Yorick PeterseandRobert Speicher ce5e831bcf Use ILIKE/LIKE for searching groups 2016-03-11 15:25:21 -05:00
Yorick PeterseandRobert Speicher 800aa29695 Use ILIKE/LIKE for searching users 2016-03-11 15:25:21 -05:00
Yorick PeterseandRobert Speicher 508b6b46fe Use ILIKE/LIKE for searching notes 2016-03-11 15:25:21 -05:00
Yorick PeterseandRobert Speicher 1f5284e5dd Use ILIKE/LIKE for searching snippets
Previously this used a regular LIKE which is case-sensitive on
PostgreSQL. This ensures that for both PostgreSQL and MySQL the
searching is case-insensitive similar to searching for projects.
2016-03-11 15:25:21 -05:00
Yorick PeterseandRobert Speicher db615d0a79 Use ILIKE in Project.search_by_title
Similar to the changes made to Project.search the method
Project.search_by_title now also uses Arel so it can automatically use
ILIKE/LIKE instead of the lower() function.
2016-03-11 15:25:21 -05:00
Yorick PeterseandRobert Speicher 135659a751 Use ILIKE/LIKE + UNION in Project.search
This chance is broken up in two steps:

1. Use ILIKE on PostgreSQL and LIKE on MySQL, instead of using
   "WHERE lower(x) LIKE lower(y)" as ILIKE is significantly faster than
   using lower(). In many cases the use of lower() will force a slow
   sequence scan.

2. Instead of using 1 query that searches both projects and namespaces
   using a JOIN we're using 2 separate queries that are UNION'd
   together. Using a JOIN would force a slow sequence scan, using a
   UNION avoids this.

This method now uses Arel as Arel automatically uses ILIKE on PostgreSQL
and LIKE on MySQL, removing the need to handle this manually.
2016-03-11 15:25:21 -05:00
Dmitriy Zaporozhets ea5f4cae53 Bring ProjectGroupLink model and migrations from EE
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2016-03-11 17:47:05 +01:00
ashleys 4cd9a5208c web hooks to webhooks 2016-03-10 14:48:29 -05:00
Yorick PeterseandRobert Speicher e32726c636 Added specs for Issue#referenced_merge_requests 2016-03-09 22:30:55 -05:00
Douglas Barbosa Alexandre 9e342fb00a Destroy all related todos when removing a project 2016-03-09 11:06:58 -03:00
Dmitriy Zaporozhets 68f1535ab6 Merge branch 'rs-traits-are-good' into 'master'
Make better use of the `visibility_level` factory traits



See merge request !3131
2016-03-09 09:12:26 +00:00
Dmitriy Zaporozhets bc14d81af0 Merge branch 'rs-snippets-dont-expire' into 'master'
Remove `Snippet#expires_at`

This was removed from the interface in
https://github.com/gitlabhq/gitlabhq/pull/6027 but its implementation
lingered around for two years.

See merge request !3103
2016-03-09 09:02:17 +00:00
Robert Speicher b900304c38 Make better use of the visibility_level factory traits 2016-03-08 16:40:45 -05:00
Yorick Peterse 590e1b4b21 Call after_create_branch in Repository#add_branch
This ensures the right caches are flushed when adding a branch via the
UI, instead of only flushing this one random cache.
2016-03-08 18:19:40 +01:00
Yorick Peterse 4ec035b488 Call the right hooks in Repository#add_tag
This ensures Repository#add_tag calls Repository#before_push_tag instead
of just 1 random cache expiration method.
2016-03-08 18:19:40 +01:00
Yorick Peterse 6857b92fab Added specs for Repository#rm_tag 2016-03-08 18:19:40 +01:00