Commit Graph
1005 Commits
Author SHA1 Message Date
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
Yorick Peterse 177025b5dd Call the right hooks when removing branches
This ensures that Repository#rm_branch calls
before_remove_branch/after_remove_branch instead of just 1 random cache
expiration method.
2016-03-08 18:19:40 +01:00
Yorick Peterse cb5a5ba095 Cache & flush tag/branch counts
The methods used for this are Repository#tag_count and
Repository#branch_count which cache their output in Redis as well as
memoizing it in an instance variable. Both methods have a corresponding
methods/hooks to flush the caches at the right time.
2016-03-08 18:19:40 +01:00
Yorick Peterse 36730e8e63 Merge branch 'master' into 'master'
adds language names to projects list [image attached]

See merge request !3000
2016-03-08 14:52:53 +00:00
tiagonbotelhoandYorick Peterse 8039bbf7f8 removes the test file of the project spec for invalid method 2016-03-07 21:59:39 +01:00
tiagonbotelhoandYorick Peterse 4b3f3167a4 implements test to simulate empty repo 2016-03-07 21:59:39 +01:00
tiagonbotelhoandYorick Peterse d72e6ad2a1 adds tests and fixes some broken code to main language mr 2016-03-07 21:59:39 +01:00
Robert Speicher 56c4f22c80 Remove redundant integration tests
These three tests were essentially checking that adding a note to
something updated its `noteable`'s `updated_at` attribute.

This is well-tested Rails behavior and we shouldn't feel the need to
write an integration test to verify it. At most we should be ensuring
that the association definition adds the `touch: true` option, which we
now do in Note's unit test.
2016-03-07 15:33:26 -05:00
Douwe Maan 903aa7c95e Merge branch 'issue_13621_2' into 'master'
Labels should be visible in dashboard and group milestone views

Closes #13621

See merge request !2931
2016-03-07 17:18:25 +00:00
Douwe Maan 99f08b3f72 Merge branch 'feature/cross-project-labels' into 'master'
Add support for cross project references for labels

## Summary

Support for cross project references for labels.

## Rationale

1.   Cross project label references are currently not supported in GitLab
1.   `to_reference` method signature in `Label` model breaks the abstraction introduced in `Referable`.

      `concerns/referable.rb:  def to_reference(_from_project = nil)`

      Signatures:

      ```
      label.rb:           def to_reference(format = :id)

      commit_range.rb:    def to_reference(from_project = nil)
      commit.rb:          def to_reference(from_project = nil)
      external_issue.rb:  def to_reference(_from_project = nil)
      group.rb:           def to_reference(_from_project = nil)
      issue.rb:           def to_reference(from_project = nil)
      merge_request.rb:   def to_reference(from_project = nil)
      milestone.rb:       def to_reference(from_project = nil)
      project.rb:         def to_reference(_from_project = nil)
      snippet.rb:         def to_reference(from_project = nil)
      user.rb:            def to_reference(_from_project = nil)
      ```

     This MR suggests using `def to_reference(from_project = nil, format: :id)` which makes use of keyword arguments and preserves abstract interface.

1.   We need support for cross project label references when we want to move issue to another project

     It may happen that issue description, system notes or comments contain reference to label and this reference will be invalid after moving issue to another project and will not be displayed correctly unless we have support for cross project references.

     Merge request that needs this feature: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2831


I think that cross project label references may be useful, (example: `Hey, see our issues for CI in GitLab CE! - gitab-org/gitlab-ce~"CI"`).

cc @JobV @DouweM @rspeicher 

See merge request !2966
2016-03-07 09:16:22 +00:00
Douwe Maan d43c778402 Merge branch 'indicate-mr-diverged-from-target' into 'master'
Indicate when an MR diverged from the target branch

This adds an indicator to the "Merge MR" box, to tell if and how much an MR diverged from its target branch.

For instance, consider an MR to merge the branch `feature` into `master`. Some other commits were added to `master` since `feature` was created, and the two branches diverged.

```text
o master
|
o    o feature
|    |
o    o
|  /
o
```

In this case, there will be a label in the MR Merge box stating:

> This MR is by 3 commits behind the target branch `master`.

## Screenshots

### The branch diverged from the target (UI Proposal)

![UI_suggestion_1](/uploads/cd5bee3959e68026ec7d5097259d53f4/UI_suggestion_1.png)

### The branch diverged from the target (alternative UI Proposal)

![UI_suggestion_2](/uploads/f36977101b59a610850e129837dfbc83/UI_suggestion_2.png)

## How is this useful?

- In a _rebase-workflow_ (MR are preferably rebased before being merged), the reviewer wants to know if an MR is rebased on the target branch before merging it. 
    
    _With this indicator, the reviewer knows immediately if the branch is rebased, or if she needs to ask the committer to rebase its branch._

<br>

- To keep the git history readable, a team prefers to avoid merging branches that really lag a lot behind the target branch. Merging an MR that is 10 commits behind is fine, but 200 is too much.

    _With this indicator, the reviewer can see on the MR page if the branch is really far behind the target – or only a few commits behind._

## Open questions

We've been using this at @captaintrain for a few months now, and found it quite useful.

I guess the open-questions are mostly: what UI would be the more adequate? Any thoughts on this, on the general usefulness and/or on the code?

See merge request !2217
2016-03-07 09:01:26 +00:00
Rubén Dávila 95b06a62c0 Updates from last code review. 2016-03-06 23:07:19 -05:00
Robert Speicher 836d593033 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.
2016-03-05 18:12:17 -05:00
Rémy Coutable 00cb4a9714 Merge branch 'renaming-repository-caching' into 'master'
Flush repository caches before renaming projects

This should hopefully solve gitlab-org/gitlab-ce#13790. Once I know the exact steps to reproduce the problem I should be able to confirm this.

cc @dblessing @inem 

See merge request !2974
2016-03-03 15:35:11 +00:00
Pierre de La Morinerie 543845f7ef Indicate how much an MR branch diverges from the target branch 2016-03-03 15:11:44 +01:00
Grzegorz Bizon acd877c73e Add cross project references support for label model 2016-03-03 10:41:11 +01:00
Grzegorz Bizon 65ba4da925 Add support for keyword arguments in label reference method 2016-03-03 10:41:11 +01:00
Rubén Dávila d9e0191592 Add some specs for Repository#revert. 2016-03-01 19:16:27 -05:00
Douwe Maan ad9137a785 Merge branch 'rs-avatar-validation' into 'master'
Only validate avatar cropping values when avatar is present AND changed

Closes #13905

See merge request !3018
2016-03-01 16:03:38 +00:00
Robert Speicher 58a8d6e9ba Only validate avatar cropping values when avatar is present AND changed
Closes #13905
2016-02-29 17:19:53 -05:00
Robert Speicher 3334c3fc70 Reset otp_grace_period_started_at after disabling 2FA
Prior, if the user enabled 2FA, then disabled it and came back some time
after the grace period expired, they would be forced to enable 2FA
immediately.
2016-02-29 13:56:40 -05:00
Douwe Maan 2ea8f71bb4 Merge branch '11489-branded-appearance-to-ce' into 'master'
Branded appearance to CE

Closes #11489 

The difference with the EE version is only that there is no distinction between light and dark logos, though this wasn't used anyway. If this is fine, I'll create a MR on EE too.

TODO:
- [x] Copy docs
- [x] Make new screenshots
- [ ] Remove Custom Welcome message feature?

@rymai: I was unsure what labels to add to ping you, so I just ping you like this 😉 

/cc @DouweM

See merge request !2927
2016-02-29 13:18:29 +00:00
Robert Speicher 20ac35e924 Merge branch 'evuez/gitlab-ce-webhook-url-spaces' into 'master'
Strip leading and trailing spaces in URL validator

_Originally opened at !2914 by @evuez._

It makes URLs in webhooks valid even if they contain leading and/or trailing spaces.

Spaces are hard to notice in input fields, this helps users by accepting leading and trailing spaces in webhooks URLs.

Fixes #13652

See merge request !2939
2016-02-26 23:35:43 +00:00
Robert Speicher 2c6e34bc16 Merge branch 'repository-caching-refactor' into 'master'
Refactor Repository Caching

Related issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/13515

See merge request !2936
2016-02-26 22:07:50 +00:00
evuezandRobert Speicher 4d0e2979b9 Allow webhooks URL to have leading and trailing spaces 2016-02-26 14:34:06 -05:00
Zeger-Jan van de Weg 9a2869ab46 Branded login page also in CE
The only major difference with the EE version is the change from a light and dark logo to only a header logo
The dark logo wasn't used anyway, so it seemed to make sense to me to rename the field to the actual function of it
2016-02-26 15:50:51 +01:00
Yorick Peterse 1dfef90a87 Flush repository caches before renaming projects
This ensures that if a project is later re-created using the old path it
doesn't end up re-using the old cache. This also ensures we don't keep
the cache around until its expired by Redis itself.

Fixes gitlab-org/gitlab-ce#13790
2016-02-26 12:36:52 +01:00
Yorick Peterse a10678e7eb Added specs for the various Repository hooks 2016-02-25 12:56:04 +01:00
Robert Speicher 93e6282657 Add :with_avatar trait to User factory 2016-02-24 13:50:03 -05:00
Douglas Barbosa Alexandre 28097398c5 Does not raise an error when Todo is already marked as done 2016-02-23 10:43:29 -03:00
Rémy Coutable 96ed5c5114 Ensure we don't check a commit's description for revert message if it has no description 2016-02-22 18:33:02 +01:00
Douglas Barbosa Alexandre 04d1b41258 Merge branch 'tasks' into 'master'
Add Todos

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/2425

Tasks:

-  Prepare database
 - [X] Create a new table (`todos`)
- Tasks Queue view
 - [X] Add a number icon showing the number of todos on the top right next to the new and logout button that will redirect the user to the todos page
 - [X] Add a chronological list of todos, with the 'Todos' tab active by default
 - [X] Add a 'Done' button to each todo
 - [x] Add filters (project, author, type, and action)
- Todos generation
 - [X] When user issue/mr is assgined to someone
 - [x] When user is mentioned on (issues/mr's/comments)
- Mark todo as `done`
 - [X] When clicks on the 'Done' button
 - [X] When edit issue/mr
 - [X] When left/edit a comment
 - [X] When reassign issue/mr
 - [X] When add/remove labels to issue/mr
 - [X] When issue/mr is closed
 - [X] When mr is merged
 - [X] When added an emoji
 - [X] When changed the issue/mr milestone

* Screenshot:

![Screenshot_2016-02-20_12.45.57](/uploads/4b2554b1bde25aed3347e1ae41e8e0c0/Screenshot_2016-02-20_12.45.57.png)

See merge request !2817
2016-02-22 02:36:41 +00:00
Yorick Peterse e0cb3212ed Flush emptiness caches whenever needed
This ensures that the emptiness cache (used for Repository#empty? and
Repository#has_visible_content?) is flushed after comitting changes
(using the web editor, API or Git) for new repositories. Once a
repository is no longer empty there's no need to explicitly flush the
cache for Repository#empty?. The cache for
Repository#has_visible_content? in turn is already flushed whenever
needed.

Fixes gitlab-org/gitlab-ce#13387
2016-02-20 20:17:50 +01:00
Douglas Barbosa Alexandre 3d52e139b1 Rename Tasks to Todos 2016-02-20 12:39:27 -02:00
Douglas Barbosa Alexandre 7200989675 Refactoring task queue partials 2016-02-20 12:12:05 -02:00
Douglas Barbosa Alexandre 8673a70f50 Improve formatted message for tasks when action is a mention 2016-02-20 12:12:05 -02:00
Douglas Barbosa Alexandre a74a69db68 Use destroy, in case we ever have before_destroy callbacks on Task 2016-02-20 12:12:05 -02:00
Douglas Barbosa Alexandre bc54300ce5 Fix task factory 2016-02-20 12:12:05 -02:00
Douglas Barbosa Alexandre b13a73446a Fix pending examples from task model spec 2016-02-20 12:12:05 -02:00
Douglas Barbosa Alexandre 1d476b0656 Create a pending task when a user is mentioned on a note 2016-02-20 12:12:05 -02:00
Douglas Barbosa Alexandre 7cafa2ce92 Add tasks queue list page 2016-02-20 12:10:26 -02:00
Douglas Barbosa Alexandre 41d8f5649e Add task model 2016-02-20 12:10:26 -02:00
Douwe Maan 3a97a5ddfd Merge branch 'rs-blob' into 'master'
Add a `Blob` model that wraps `Gitlab::Git::Blob`

This allows us to take advantage of Rails' `to_partial_path` to render
the correct partial based on the Blob type, rather than cluttering the
view with conditionals.

It also allows (and will allow in the future) better encapsulation for
Blob-related logic which makes sense for our Rails app but might not
make as much sense for the core `gitlab_git` library, such as detecting
if the blob is an SVG.

See merge request !2887
2016-02-20 01:12:52 +00:00