zuul/zuul/manager
Tobias Henkel e97566ad65 Fix broken jobs overriding checkout to an unprotected branch
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
2021-04-30 05:58:30 +00:00
..
__init__.py Fix broken jobs overriding checkout to an unprotected branch 2021-04-30 05:58:30 +00:00
dependent.py Check cycle items are mergeable before reporting 2021-03-01 18:45:29 +00:00
independent.py Add optional support for circular dependencies 2021-03-01 19:42:56 +01:00
serial.py Add serial pipeline manager 2020-04-29 14:59:15 -07:00
shared.py Move queue from pipeline to project 2021-02-03 13:04:20 +01:00
supercedent.py Support per branch change queues 2021-02-03 13:04:20 +01:00