The global repo state filters out unprotected branches if we exclude
unprotected branches. However it is possible to define
override-checkout to an unprotected branch. Handling override-checkout
has been overlooked when creating the repo state. If that's not in the
repo state the checkout will fail on the executor with an exception
during job execution [1].
[1] Trace:
Exception while executing job
Traceback (most recent call last):
File "/Users/q479080/git/zuul/zuul/.tox/py39/lib/python3.9/site-packages/git/refs/symbolic.py", line 302, in set_reference
obj = self.repo.rev_parse(ref + "^{}") # optionally deref tags
File "/Users/q479080/git/zuul/zuul/.tox/py39/lib/python3.9/site-packages/git/repo/fun.py", line 213, in rev_parse
obj = name_to_object(repo, rev[:start])
File "/Users/q479080/git/zuul/zuul/.tox/py39/lib/python3.9/site-packages/git/repo/fun.py", line 147, in name_to_object
raise BadName(name)
gitdb.exc.BadName: Ref 'feat-x' did not resolve to an object
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/q479080/git/zuul/zuul/zuul/executor/server.py", line 947, in execute
self._execute()
File "/Users/q479080/git/zuul/zuul/tests/base.py", line 3008, in _execute
super()._execute()
File "/Users/q479080/git/zuul/zuul/zuul/executor/server.py", line 1147, in _execute
repo.checkout(selected_ref)
File "/Users/q479080/git/zuul/zuul/zuul/merger/merger.py", line 528, in checkout
repo.head.reference = ref
File "/Users/q479080/git/zuul/zuul/.tox/py39/lib/python3.9/site-packages/git/refs/symbolic.py", line 305, in set_reference
raise ValueError("Could not extract object from %s" % ref) from e
ValueError: Could not extract object from feat-x
Change-Id: Ia0020ba29cc54edd2544693bcd11b90dee8fe46d