Skip to content

Raise UnexpectedResponse error when project or group not found

Jennifer Li requested to merge jennli-issue-322 into master

What does this MR do and why?

Raises UnexpectedResponse when the response is either 404 Project Not Found or 404 Group Not Found.

Closes Debugging info shows "1 resources after filteri... (#322 - closed)

Validation

I have a test repo with a incident_created policy. Tested with the following scenarios, note the invalid token:

Before

cmd: gitlab-triage --token I_AM_INVALID --source-id 123 --source projects -f policies/incident_created.yml

******************************************************
Executing policies from policies/incident_created.yml.
******************************************************
===============================
Triaging the `123` project
===============================

---------------------------------------
Processing summaries & rules for issues
---------------------------------------

-----------------------------------------------------------------------
Gathering resources for rule: **Post message when incident is created**
-----------------------------------------------------------------------
.

* Found 1 resources...
* Filtering resources...
* Total after filtering: 1 resources
* Limiting resources...
* Total after limiting: 1 resources

After

  1. cmd: gitlab-triage --token I_AM_INVALID --source-id 123 --source projects -f policies/incident_created.yml
Click to expand
******************************************************
Executing policies from policies/incident_created.yml.
******************************************************
===============================
Triaging the `123` project
===============================

---------------------------------------
Processing summaries & rules for issues
---------------------------------------

-----------------------------------------------------------------------
Gathering resources for rule: **Post message when incident is created**
-----------------------------------------------------------------------
.Traceback (most recent call last):
	19: from /Users/jennli/.asdf/installs/ruby/2.7.7/bin/gitlab-triage:23:in `<main>'
	18: from /Users/jennli/.asdf/installs/ruby/2.7.7/bin/gitlab-triage:23:in `load'
	17: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/bin/gitlab-triage:11:in `<top (required)>'
	16: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/2.7.0/set.rb:328:in `each'
	15: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/2.7.0/set.rb:328:in `each_key'
	14: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/bin/gitlab-triage:18:in `block in <top (required)>'
	13: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:73:in `perform'
	12: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:73:in `each'
	11: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:82:in `block in perform'
	10: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:249:in `process_rules'
	 9: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:249:in `each'
	 8: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:250:in `block in process_rules'
	 7: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:346:in `resources_for_rule'
	 6: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/expand_condition.rb:13:in `perform'
	 5: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/expand_condition.rb:13:in `each'
	 4: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:351:in `block in resources_for_rule'
	 3: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:389:in `fetch_resources'
	 2: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/network.rb:8:in `query_api'
	 1: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/rest_api_network.rb:48:in `query_api'
/Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/rest_api_network.rb:117:in `raise_unexpected_response': Unexpected response: {"message"=>"404 Project Not Found"} (Gitlab::Triage::Errors::Network::UnexpectedResponse)
  1. cmd: gitlab-triage --token I_AM_INVALID --source-id 123 --source groups -f policies/incident_created.yml
Click to expand
******************************************************
Executing policies from policies/incident_created.yml.
******************************************************
=============================
Triaging the `123` group
=============================

---------------------------------------
Processing summaries & rules for issues
---------------------------------------

-----------------------------------------------------------------------
Gathering resources for rule: **Post message when incident is created**
-----------------------------------------------------------------------
.Traceback (most recent call last):
	19: from /Users/jennli/.asdf/installs/ruby/2.7.7/bin/gitlab-triage:23:in `<main>'
	18: from /Users/jennli/.asdf/installs/ruby/2.7.7/bin/gitlab-triage:23:in `load'
	17: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/bin/gitlab-triage:11:in `<top (required)>'
	16: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/2.7.0/set.rb:328:in `each'
	15: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/2.7.0/set.rb:328:in `each_key'
	14: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/bin/gitlab-triage:18:in `block in <top (required)>'
	13: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:73:in `perform'
	12: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:73:in `each'
	11: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:82:in `block in perform'
	10: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:249:in `process_rules'
	 9: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:249:in `each'
	 8: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:250:in `block in process_rules'
	 7: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:346:in `resources_for_rule'
	 6: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/expand_condition.rb:13:in `perform'
	 5: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/expand_condition.rb:13:in `each'
	 4: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:351:in `block in resources_for_rule'
	 3: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/engine.rb:389:in `fetch_resources'
	 2: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/network.rb:8:in `query_api'
	 1: from /Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/rest_api_network.rb:48:in `query_api'
/Users/jennli/.asdf/installs/ruby/2.7.7/lib/ruby/gems/2.7.0/gems/gitlab-triage-1.40.0/lib/gitlab/triage/rest_api_network.rb:117:in `raise_unexpected_response': Unexpected response: {"message"=>"404 Group Not Found"} (Gitlab::Triage::Errors::Network::UnexpectedResponse)
Edited by Jennifer Li

Merge request reports