Class: Gitlab::GithubImport::Representation::IssueEvent
- Inherits:
-
Object
- Object
- Gitlab::GithubImport::Representation::IssueEvent
- Includes:
- Representable
- Defined in:
- lib/gitlab/github_import/representation/issue_event.rb
Class Method Summary collapse
-
.from_api_response(event, additional_data = {}) ⇒ Object
Builds an event from a GitHub API response.
-
.from_json_hash(raw_hash) ⇒ Object
Builds an event using a Hash that was built from a JSON payload.
Instance Method Summary collapse
- #github_identifiers ⇒ Object
-
#initialize(attributes) ⇒ IssueEvent
constructor
attributes - A Hash containing the event details.
- #issuable_id ⇒ Object
- #issuable_type ⇒ Object
Constructor Details
#initialize(attributes) ⇒ IssueEvent
attributes - A Hash containing the event details. The keys of this Hash (and any nested hashes) must be symbols.
16 17 18 |
# File 'lib/gitlab/github_import/representation/issue_event.rb', line 16 def initialize(attributes) @attributes = attributes end |
Class Method Details
.from_api_response(event, additional_data = {}) ⇒ Object
Builds an event from a GitHub API response.
event - An instance of Hash containing the event details.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/gitlab/github_import/representation/issue_event.rb', line 40 def from_api_response(event, additional_data = {}) new( id: event[:id], actor: user_representation(event[:actor] || event[:user]), event: event[:event], commit_id: event[:commit_id], label_title: event.dig(:label, :name), old_title: event.dig(:rename, :from), new_title: event.dig(:rename, :to), milestone_title: event.dig(:milestone, :title), issue: event[:issue], source: event[:source], assignee: user_representation(event[:assignee]), requested_reviewer: user_representation(event[:requested_reviewer]), review_requester: user_representation(event[:review_requester]), created_at: event[:created_at], updated_at: event[:updated_at], submitted_at: event[:submitted_at], state: event[:state], body: event[:body] ) end |
.from_json_hash(raw_hash) ⇒ Object
Builds an event using a Hash that was built from a JSON payload.
64 65 66 67 68 69 70 71 72 |
# File 'lib/gitlab/github_import/representation/issue_event.rb', line 64 def from_json_hash(raw_hash) hash = Representation.symbolize_hash(raw_hash) hash[:actor] = user_representation(hash[:actor], source: :hash) hash[:assignee] = user_representation(hash[:assignee], source: :hash) hash[:requested_reviewer] = user_representation(hash[:requested_reviewer], source: :hash) hash[:review_requester] = user_representation(hash[:review_requester], source: :hash) new(hash) end |
Instance Method Details
#github_identifiers ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/gitlab/github_import/representation/issue_event.rb', line 20 def github_identifiers { id: id, issuable_iid: issuable_id, event: event } end |
#issuable_id ⇒ Object
32 33 34 |
# File 'lib/gitlab/github_import/representation/issue_event.rb', line 32 def issuable_id issue && issue[:number] end |
#issuable_type ⇒ Object
28 29 30 |
# File 'lib/gitlab/github_import/representation/issue_event.rb', line 28 def issuable_type issue && issue[:pull_request].present? ? 'MergeRequest' : 'Issue' end |