Commit Graph
987 Commits
Author SHA1 Message Date
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
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
Douwe Maan c352aaa008 Merge branch '12792-emoji-as-text-diff-comment' 2016-02-19 16:59:36 -08:00
Kamil Trzciński 20781b2927 Merge branch 'builds-artifacts-API' into 'master'
Introduce API for serving the artifacts archive

Add API to download build artifacts archive in context of GitLab API

/cc @DouweM @grzesiek 

See merge request !2893
2016-02-19 22:30:11 +00:00
Kamil Trzcinski 73be775cd7 Fix ci_build trace trait 2016-02-19 19:31:57 +01:00
Rubén DávilaandRobert Speicher b8295fc323 Fix build and add specs 2016-02-19 13:14:53 -05:00
Rubén DávilaandRobert Speicher b6fe51b901 Some updates from last code review. 2016-02-19 13:14:50 -05:00
Rubén DávilaandRobert Speicher df5f362c34 Add some specs plus some refactor. 2016-02-19 13:14:50 -05:00
Rubén DávilaandRobert Speicher f56ee9d3b9 Save merge commit id when MR is merged 2016-02-19 13:14:49 -05:00
Grzegorz Bizon 86a49dfb88 Move build erasable implementation from concern to model
Discussion:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2560#note_3659905
2016-02-19 17:24:59 +01:00
Grzegorz Bizon 293999cabb Fix name of build erasable, remove superfluous method from it 2016-02-19 17:24:59 +01:00
Grzegorz BizonandGrzegorz Bizon 21152d7d51 Use DELETE verb for erasing a build content
Also added API specs for that
2016-02-19 17:24:59 +01:00
Grzegorz BizonandGrzegorz Bizon c850ceec5d Create method that checks if build has been erased
+ minor improvements
2016-02-19 17:24:59 +01:00
Grzegorz BizonandGrzegorz Bizon 2c7f36f430 Update relevant build fields when build is erased 2016-02-19 17:24:59 +01:00
Grzegorz BizonandGrzegorz Bizon f3e92fb4d0 Make CI build eraseable only if build is completed 2016-02-19 17:24:59 +01:00
Grzegorz BizonandGrzegorz Bizon c8102d938b Add build eraseable feature implementation 2016-02-19 17:24:03 +01:00
Grzegorz BizonandGrzegorz Bizon 89b181204c Use build artifacts trait in build specs 2016-02-19 17:24:03 +01:00
Tomasz Maczukin 49d5c35b69 Fix old usages of ci_runner factory 2016-02-19 13:18:49 +01:00
Zeger-Jan van de Weg aba1aa49a9 Improve #set_award! on the Note model 2016-02-19 10:10:55 +01:00
Zeger-Jan van de Weg 11ed1cbbb7 Emoji reponses on diffs aren't award emoji 2016-02-19 10:04:38 +01:00