Ignore deleted labels in label events
Discovered at gitlab-org/quality/triage-ops!125 (comment 177632537)
The actual error was:
gitlab-triage-1.0.0/lib/gitlab/triage/resource/label_event.rb:39:in `label': undefined method `reverse_merge' for nil:NilClass (NoMethodError)
The issue in question is https://gitlab.com/gitlab-org/gitlab-ee/issues/9172 and we can access the API data via: https://gitlab.com/api/v4/projects/278964/issues/9172/resource_label_events
There are two offenders here by searching "label":null
: (removed some info below to make it easier to read)
{"id":4411771,"user":{"id":711023},"created_at":"2019-01-11T21:15:08.961Z","resource_type":"Issue","resource_id":17281209,"label":null,"action":"add"}
and:
{"id":4413746,"user":{"id":711023},"created_at":"2019-01-11T22:27:09.686Z","resource_type":"Issue","resource_id":17281209,"label":null,"action":"remove"}
They're probably:
This might mean that label was removed, therefore no info for that label can be shown.
We can fix this by applying:
diff --git a/lib/gitlab/triage/resource/label_event.rb b/lib/gitlab/triage/resource/label_event.rb
index d2dae1e..0c2c425 100644
--- a/lib/gitlab/triage/resource/label_event.rb
+++ b/lib/gitlab/triage/resource/label_event.rb
@@ -35,6 +35,8 @@ module Gitlab
end
def label
+ return unless resource[:label]
+
@label ||= Label.new(
resource[:label].reverse_merge(added_at: resource[:created_at]),
parent: self)