[gitlab-housekeeper] User of resource label event is nil sometimes
As can be seen in https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/jobs/7088009758#L76, it looks like event["user"]
is sometimes nil
.
bundler: failed to load command: gitlab-housekeeper (/home/gdk/.asdf/installs/ruby/3.2.3/lib/ruby/gems/3.2.0/bin/gitlab-housekeeper)
/home/gdk/gitlab-development-kit/gitlab/gems/gitlab-housekeeper/lib/gitlab/housekeeper/gitlab_client.rb:66:in `block in non_housekeeper_changes': undefined method `[]' for nil:NilClass (NoMethodError)
next if event["user"]["id"] == current_user_id
^^^^^^
from /home/gdk/gitlab-development-kit/gitlab/gems/gitlab-housekeeper/lib/gitlab/housekeeper/gitlab_client.rb:65:in `each'
from /home/gdk/gitlab-development-kit/gitlab/gems/gitlab-housekeeper/lib/gitlab/housekeeper/gitlab_client.rb:65:in `non_housekeeper_changes'
from /home/gdk/gitlab-development-kit/gitlab/gems/gitlab-housekeeper/lib/gitlab/housekeeper/runner.rb:156:in `create'
from /home/gdk/gitlab-development-kit/gitlab/gems/gitlab-housekeeper/lib/gitlab/housekeeper/runner.rb:86:in `block (3 levels) in run'
Indeed, user
can be nil
, see https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab/merge_requests/155346/resource_label_events:
[
{
"id": 309806735,
"user": null,
"created_at": "2024-06-05T03:11:56.826Z",
"resource_type": "MergeRequest",
"resource_id": 306334103,
"label": {
"id": 34130105,
"name": "automation:gitlab-housekeeper-authored",
"description": "Any merge requests authored by the automated `gitlab-housekeeper` gem https://gitlab.com/gitlab-org/gitlab/-/tree/master/gems/gitlab-housekeeper",
"description_html": "Any merge requests authored by the automated `gitlab-housekeeper` gem \u003ca href=\"https://gitlab.com/gitlab-org/gitlab/-/tree/master/gems/gitlab-housekeeper\"\u003ehttps://gitlab.com/gitlab-org/gitlab/-/tree/master/gems/gitlab-housekeeper\u003c/a\u003e",
"text_color": "#1F1E24",
"color": "#ffecdb"
},
"action": "add"
}
]
I think this can happen when the event author no longer exists (i.e. Ghost user).
Edited by Rémy Coutable