diff options
| author | Izaak Alpert <ihalpert@blackberry.com> | 2013-04-25 10:15:33 -0400 |
|---|---|---|
| committer | Izaak Alpert <ialpert@blackberry.com> | 2013-07-17 22:41:30 -0400 |
| commit | 3d7194f0112da12e8732df9ffe8b34fe7d0a9f6b (patch) | |
| tree | 9b3c68c04b5ead5e35456595a07453b036b2dbc8 /app/models/note.rb | |
| parent | fd033671933fcc0f472480d98c907aefde357416 (diff) | |
| download | gitlab-ce-3d7194f0112da12e8732df9ffe8b34fe7d0a9f6b.tar.gz | |
Merge Request on forked projects
The good:
- You can do a merge request for a forked commit and it will merge properly (i.e. it does work).
- Push events take into account merge requests on forked projects
- Tests around merge_actions now present, spinach, and other rspec tests
- Satellites now clean themselves up rather then recreate
The questionable:
- Events only know about target projects
- Project's merge requests only hold on to MR's where they are the target
- All operations performed in the satellite
The bad:
- Duplication between project's repositories and satellites (e.g. commits_between)
(for reference: http://feedback.gitlab.com/forums/176466-general/suggestions/3456722-merge-requests-between-projects-repos)
Fixes:
Make test repos/satellites only create when needed
-Spinach/Rspec now only initialize test directory, and setup stubs (things that are relatively cheap)
-project_with_code, source_project_with_code, and target_project_with_code now create/destroy their repos individually
-fixed remote removal
-How to merge renders properly
-Update emails to show project/branches
-Edit MR doesn't set target branch
-Fix some failures on editing/creating merge requests, added a test
-Added back a test around merge request observer
-Clean up project_transfer_spec, Remove duplicate enable/disable observers
-Ensure satellite lock files are cleaned up, Attempted to add some testing around these as well
-Signifant speed ups for tests
-Update formatting ordering in notes_on_merge_requests
-Remove wiki schema update
Fixes for search/search results
-Search results was using by_project for a list of projects, updated this to use in_projects
-updated search results to reference the correct (target) project
-udpated search results to print both sides of the merge request
Change-Id: I19407990a0950945cc95d62089cbcc6262dab1a8
Diffstat (limited to 'app/models/note.rb')
| -rw-r--r-- | app/models/note.rb | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/app/models/note.rb b/app/models/note.rb index c23aab03bcc..0175430be4d 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -32,8 +32,8 @@ class Note < ActiveRecord::Base delegate :name, :email, to: :author, prefix: true validates :note, :project, presence: true - validates :line_code, format: { with: /\A[a-z0-9]+_\d+_\d+\Z/ }, allow_blank: true - validates :attachment, file_size: { maximum: 10.megabytes.to_i } + validates :line_code, format: {with: /\A[a-z0-9]+_\d+_\d+\Z/}, allow_blank: true + validates :attachment, file_size: {maximum: 10.megabytes.to_i} validates :noteable_id, presence: true, if: ->(n) { n.noteable_type.present? && n.noteable_type != 'Commit' } validates :commit_id, presence: true, if: ->(n) { n.noteable_type == 'Commit' } @@ -45,24 +45,24 @@ class Note < ActiveRecord::Base scope :inline, -> { where("line_code IS NOT NULL") } scope :not_inline, -> { where(line_code: [nil, '']) } - scope :common, ->{ where(noteable_type: ["", nil]) } - scope :fresh, ->{ order("created_at ASC, id ASC") } - scope :inc_author_project, ->{ includes(:project, :author) } - scope :inc_author, ->{ includes(:author) } + scope :common, -> { where(noteable_type: ["", nil]) } + scope :fresh, -> { order("created_at ASC, id ASC") } + scope :inc_author_project, -> { includes(:project, :author) } + scope :inc_author, -> { includes(:author) } - def self.create_status_change_note(noteable, author, status) + def self.create_status_change_note(noteable, project, author, status) create({ - noteable: noteable, - project: noteable.project, - author: author, - note: "_Status changed to #{status}_" - }, without_protection: true) + noteable: noteable, + project: project, + author: author, + note: "_Status changed to #{status}_" + }, without_protection: true) end def commit_author @commit_author ||= - project.users.find_by_email(noteable.author_email) || - project.users.find_by_name(noteable.author_name) + project.users.find_by_email(noteable.author_email) || + project.users.find_by_name(noteable.author_name) rescue nil end @@ -97,8 +97,8 @@ class Note < ActiveRecord::Base # otherwise false is returned def downvote? votable? && (note.start_with?('-1') || - note.start_with?(':-1:') - ) + note.start_with?(':-1:') + ) end def for_commit? @@ -136,8 +136,8 @@ class Note < ActiveRecord::Base else super end - # Temp fix to prevent app crash - # if note commit id doesn't exist + # Temp fix to prevent app crash + # if note commit id doesn't exist rescue nil end @@ -146,8 +146,8 @@ class Note < ActiveRecord::Base # otherwise false is returned def upvote? votable? && (note.start_with?('+1') || - note.start_with?(':+1:') - ) + note.start_with?(':+1:') + ) end def votable? |
