4681: Repository bugtracker configuration fails when trying to use a custom Jira instance.

ddejean

What version are you running?

3.0.5

What's the URL of the page containing the problem?

https://rb.eng.pulse-origin.com/admin/db/scmtools/repository/44/

What steps will reproduce the problem?

  1. Go to ReviewBoard administration interface
  2. In "MANAGE" go to "Repositories" and edit a repository
  3. In "BUG TRACKER" uncheck "Use hosting service's bug tracker" and configure a custom bug tracker with: Type=JIRA and JIRA URL=https://jira.eng.pulse-origin.com
  4. Save settings.

What is the expected output? What do you see instead?

I expect to see my new configuration saved, instead I see:

Something broke! (Error 500)

It appears something broke when you tried to go to here. This is either a bug in Review Board or a server configuration error. Please report this to your administrator.

In ReviewBoard logs I get:
2018-03-26 13:09:48,594 - ERROR - - root - Failed to generate %(jira_url)s/browse/%%s field for hosting service JIRA using {u'hosting_account_username': u'', u'hosting_url': u''}: Missing key u'jira_url'
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-3.0.5-py2.7.egg/reviewboard/hostingsvcs/service.py", line 1090, in get_bug_tracker_field
return bug_tracker_field % field_vars
KeyError: u'jira_url'
2018-03-26 13:09:48,595 - ERROR - None - ddejean - /admin/db/scmtools/repository/44/ - djblets.log.middleware - Exception thrown for user ddejean at https://rb.eng.pulse-origin.com/admin/db/scmtools/repository/44/

u'Internal error when generating %(jira_url)s/browse/%%s field (Missing key "u\'jira_url\'"). Please report this.'
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/core/handlers/base.py", line 112, in get_response
response = wrapped_callback(request, callback_args, callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/contrib/admin/options.py", line 465, in wrapper
return self.admin_site.admin_view(view)(*args,
kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/utils/decorators.py", line 99, in _wrapped_view
response = view_func(request,
args, kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/views/decorators/cache.py", line 52, in _wrapped_view_func
response = view_func(request, *args,
kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/contrib/admin/sites.py", line 198, in inner
return view(request, args, kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/utils/decorators.py", line 29, in _wrapper
return bound_func(*args,
kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/utils/decorators.py", line 99, in _wrapped_view
response = view_func(request,
args, kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/utils/decorators.py", line 25, in bound_func
return func(self, *args2,
kwargs2)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/db/transaction.py", line 371, in inner
return func(*args, kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/contrib/admin/options.py", line 1244, in change_view
if form.is_valid():
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-3.0.5-py2.7.egg/reviewboard/scmtools/forms.py", line 1171, in is_valid
if not super(RepositoryForm, self).is_valid():
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/forms/forms.py", line 129, in is_valid
return self.is_bound and not bool(self.errors)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/forms/forms.py", line 121, in errors
self.full_clean()
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-3.0.5-py2.7.egg/reviewboard/scmtools/forms.py", line 941, in full_clean
super(RepositoryForm, self).full_clean(*args,
kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/forms/forms.py", line 274, in full_clean
self._clean_form()
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.11.7-py2.7.egg/django/forms/forms.py", line 300, in _clean_form
self.cleaned_data = self.clean()
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-3.0.5-py2.7.egg/reviewboard/scmtools/forms.py", line 977, in clean
self._clean_bug_tracker_info()
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-3.0.5-py2.7.egg/reviewboard/scmtools/forms.py", line 831, in _clean_bug_tracker_info
plan, new_data)
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-3.0.5-py2.7.egg/reviewboard/hostingsvcs/service.py", line 1101, in get_bug_tracker_field
'key': e,
KeyError: u'Internal error when generating %(jira_url)s/browse/%%s field (Missing key "u\'jira_url\'"). Please report this.'

What operating system are you using? What browser?

OS: Debian 9 with KDE
Browser: Firefox 59.0 64 bits

Please provide any additional information below.

If I put the same bug tracker configuration in a new repository, I can't submit, the UI reports JIRA URL field to be missing.

#1 pschiffer

Any update? Bug trackers cannot be configured for new repositories...