Skip to content
Snippets Groups Projects

Separate observing of Note and MergeRequests

Merged gitlab-qa-bot requested to merge github/fork/robbkidd/separate_mr_observer into master

Created by: robbkidd

It's been awhile since I tackled the observers. Note and MergeRequest had not seen any love yet and were still mashed together in MailerObserver. Here is my latest on fixing that with separate observers for Note and MergeRequest.

  • Move is_assigned? and is_being_xx? methods to IssueCommonality

    This is behavior merge requests have in common with issues. Moved methods to IssueCommonality role. Put specs directly into merge_request_spec.rb because setup differs for issues and MRs specifically in the "closed" factory to use.

  • Add MergeRequestObserver. Parallels IssueObserver in almost every way.

    Ripe for refactoring, but tricky because of the different mailer methods and views.

  • Rename MailerObserver to NoteObserver

    With merge request observing moved out of MailerObserver, all that was left was Note logic. Renamed to NoteObserver, added tests and updated application config for new observer names. Refactored NoteObserver to use the note's author and not rely on current_user.

  • Set current_user for MergeRequestObserver

    IssueObserver and MergeRequestObserver are the only observers that need a reference to the current_user that they cannot look up on the objects they are observing.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
9
10 def after_update(merge_request)
11 send_reassigned_email(merge_request) if merge_request.is_being_reassigned?
12
13 status = nil
14 status = 'closed' if merge_request.is_being_closed?
15 status = 'reopened' if merge_request.is_being_reopened?
16 if status
17 Note.create_status_change_note(merge_request, current_user, status)
18 end
19 end
20
21 protected
22
23 def send_reassigned_email(merge_request)
24 recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id
  • Created by: dzaporozhets

    please fix indentation

    By Administrator on 2012-10-11T15:05:52 (imported from GitLab project)

    By Administrator on 2012-10-11T15:05:52 (imported from GitLab)

  • Created by: dzaporozhets

    :thumbsup:

    By Administrator on 2012-10-11T07:43:09 (imported from GitLab project)

    By Administrator on 2012-10-11T07:43:09 (imported from GitLab)

  • Created by: riyad

    +1

    By Administrator on 2012-10-11T10:40:53 (imported from GitLab project)

    By Administrator on 2012-10-11T10:40:53 (imported from GitLab)

  • gitlab-qa-bot
  • 9
    10 def after_update(merge_request)
    11 send_reassigned_email(merge_request) if merge_request.is_being_reassigned?
    12
    13 status = nil
    14 status = 'closed' if merge_request.is_being_closed?
    15 status = 'reopened' if merge_request.is_being_reopened?
    16 if status
    17 Note.create_status_change_note(merge_request, current_user, status)
    18 end
    19 end
    20
    21 protected
    22
    23 def send_reassigned_email(merge_request)
    24 recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id
    • Created by: robbkidd

      Of course. Squashed or second commit?

      By Administrator on 2012-10-11T15:05:52 (imported from GitLab project)

      By Administrator on 2012-10-11T15:05:52 (imported from GitLab)

  • gitlab-qa-bot
  • 9
    10 def after_update(merge_request)
    11 send_reassigned_email(merge_request) if merge_request.is_being_reassigned?
    12
    13 status = nil
    14 status = 'closed' if merge_request.is_being_closed?
    15 status = 'reopened' if merge_request.is_being_reopened?
    16 if status
    17 Note.create_status_change_note(merge_request, current_user, status)
    18 end
    19 end
    20
    21 protected
    22
    23 def send_reassigned_email(merge_request)
    24 recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id
    • Created by: dzaporozhets

      second

      By Administrator on 2012-10-11T15:05:52 (imported from GitLab project)

      By Administrator on 2012-10-11T15:05:52 (imported from GitLab)

  • Created by: dzaporozhets

    @robbkidd thank you

    By Administrator on 2012-10-11T16:35:33 (imported from GitLab project)

    By Administrator on 2012-10-11T16:35:33 (imported from GitLab)

  • Please register or sign in to reply
    Loading