diff options
author | Rémy Coutable <remy@rymai.me> | 2019-05-10 13:33:45 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2019-05-10 13:33:45 +0000 |
commit | 23e6ca22f0fc5e74a275aa19626692b4a5ca43cc (patch) | |
tree | 4e93075235c1bf07709a2e76ba99fdf08e8cf37c | |
parent | 4c16ce118498a2e3b98ad069000031fa9c55fcd3 (diff) | |
parent | db453ffdbd8108739a227519a327978778c28cf9 (diff) | |
download | gitlab-ce-23e6ca22f0fc5e74a275aa19626692b4a5ca43cc.tar.gz |
Merge branch '60180-jira-service-fix-nil-on-find-call-pderichs' into 'master'12-0-auto-deploy-0009600
Resolve "JIRA service: NoMethodError: undefined method `find' for nil:NilClass"
Closes #60180
See merge request gitlab-org/gitlab-ce!28206
-rw-r--r-- | app/models/project_services/jira_service.rb | 1 | ||||
-rw-r--r-- | changelogs/unreleased/60180-jira-service-fix-nil-on-find-call.yml | 5 | ||||
-rw-r--r-- | spec/models/project_services/jira_service_spec.rb | 7 |
3 files changed, 13 insertions, 0 deletions
diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index ebf28dc842c..7b4832b84a8 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -265,6 +265,7 @@ class JiraService < IssueTrackerService def find_remote_link(issue, url) links = jira_request { issue.remotelink.all } + return unless links links.find { |link| link.object["url"] == url } end diff --git a/changelogs/unreleased/60180-jira-service-fix-nil-on-find-call.yml b/changelogs/unreleased/60180-jira-service-fix-nil-on-find-call.yml new file mode 100644 index 00000000000..6891a9ca83c --- /dev/null +++ b/changelogs/unreleased/60180-jira-service-fix-nil-on-find-call.yml @@ -0,0 +1,5 @@ +--- +title: 'Resolved JIRA service: NoMethodError: undefined method ''find'' for nil:NilClass' +merge_request: 28206 +author: +type: fixed diff --git a/spec/models/project_services/jira_service_spec.rb b/spec/models/project_services/jira_service_spec.rb index 4a7eee1fbf3..04ae9390436 100644 --- a/spec/models/project_services/jira_service_spec.rb +++ b/spec/models/project_services/jira_service_spec.rb @@ -166,6 +166,13 @@ describe JiraService do ).once end + it 'does not fail if remote_link.all on issue returns nil' do + allow(JIRA::Resource::Remotelink).to receive(:all).and_return(nil) + + expect { @jira_service.close_issue(resource, ExternalIssue.new('JIRA-123', project)) } + .not_to raise_error(NoMethodError) + end + # Check https://developer.atlassian.com/jiradev/jira-platform/guides/other/guide-jira-remote-issue-links/fields-in-remote-issue-links # for more information it 'creates Remote Link reference in JIRA for comment' do |