Reorganizing docs as recommended in:
https://www.divio.com/blog/documentation/
This is simply a reorganization of the existing documents and changes
no content EXCEPT to correct the location of sphinx doc references.
Expect followup changes to change document names (to reflect the new
structure) and to move content from existing guides (e.g., to move the
pipeline/project/job structure definitions out of the "Project Configuration"
reference guide into their own reference documents for easier locatability).
All documents are now located in either the "overview", "tutorials",
"discussions", or "references" subdirectories to reflect the new structure
presented to the user. Code examples and images are moved to "examples" and
"images" root-level directories.
Developer specific documents are located in the "references/developer"
directory.
Change-Id: I538ffd7409941c53bf42fe64b7acbc146023c1e3
GitHub has added a lot of controls around the review object, so it is
useful to be able to run tests and then submit a review rather than
simply merge. One use-case is also to be able to self-approve with a
comment, such as is done in the test code added.
Change-Id: I16872062e627b385f78023878bea348555ec5348
The `sshkey` option is only there for usage when using the webhook
method of configuring the GitHub connection, this change documents
and clarifies that.
Change-Id: Iee5cccc12b5226aec8aadfe3bd73e8e52f98aac2
Currently we have fixed rate limit logging in the GitHub driver. This
does a rate limit api call after almost each api call to
GibHub. However if the GitHub Enterprise instance doesn't have a rate
limit configured this logging doesn't make sense and costs an
additional network round trip time for every request. Thus make this
configurable and by default enabled to retain the current behavior.
Change-Id: I39762611ff74e2ab1fb277f8e9c32be0673abfa3
This change fixes the event subscription list and re-order the items so
that they match the GitHub web interface order.
Change-Id: I02e8d101ee08b6993725788e55f4ac54cfd75a9c
Correct (working for me) require.review.type is `approved` and not
`approval`. From the code it looks like the review status is being
treated as a type (githubconnection.py:L982)
Change-Id: I26af7145c6f7ec6a99790bf6781b475c7d89fb1a
Currently when creating a post pipeline with the github driver we can
only use the push event. This has the drawback that it ignores
protected branches and thus also works speculatively on any branch if
you want to have a generic post pipeline. This imposes problems with
secrets.
So instead using the push event we want to trigger on pull_request
closed events. However this currently doesn't work as we cannot
distinguish between merged and abandoned pull requests. Adding a
merged requirement nicely solves that problem.
Change-Id: I46670c6aa036976c430a6034a6b1da0e23fa9f92
The github status requirements matching and trigger filter are
currently plain text matching based. This currently limits sharing of
pipeline definitions between tenants as zuul reports the status as
'<tenant>/<pipeline>'. This currently makes it necessary to define
trigger filter for each tenant [1] and completely blocks pipeline
requirements.
A solution to this is regex matching which makes it possible to define
the filter once [2].
Further this enables an interesting further use case to trigger on any
successfull status [3]. This makes it easier to cooperate with other
CI systems or github apps which also set a status.
Directly use re2 as this will be used in the future for regex
matching.
[1] Trigger filter snippet
trigger:
github:
- event: pull_request
action: status
status:
- zuul:tenant1/check:success
- zuul:tenant2/check:success
- zuul:tenant3/check:success
- zuul:tenant4/check:success
[2] Regex trigger filter snippet
trigger:
github:
- event: pull_request
action: status
status:
- zuul:.+/check:success
[3] Generic success filter snippet
trigger:
github:
- event: pull_request
action: status
status:
- .*:success
Change-Id: Id1b9d7334db78d0f13db33d47a80ffdb65f921df
The currently documented webhook URL is without port.
Such a webhook does not work, since zuul-web listens
on port 9000.
This is related to https://review.openstack.org/554829.
Change-Id: Ia06291eb97338239776e8b68d1f2541fd0aa875c
This is just a skeleton for now, and should be expanded, but it
should be correct and up to date for what we expect in the v3
release.
Change-Id: I305200cbfc128cc1bc09e809540a873f60e0fe5c
Co-Authored-By: Leif Madsen <lmadsen@redhat.com>
Co-Authored-By: Monty Taylor <mordred@inaugust.com>
Co-Authored-By: Paul Belanger <pabelanger@redhat.com>
In order to support connections to test installations of GitHub
Enterprise it is useful to be able to disable the ssl verification.
Change-Id: I819c12feb7825f7cf48e522424edefd48aac2b5b
Also start using some code-block sections.
Also fix some leftover :ref: and :zuul:value: entries from previous
patches.
Change-Id: I6350640f1f822c159e0eca088cc873f66f6bc46d
Pipeline requirements are now per-source. Remove dead validation
code in configloader which appeared to validate the old form (but
was actually overriden). Remove requirements from the zuul trigger
which are not used. Move the current requirements documentation
into the gerrit driver docs, and create github requirements docs.
Change-Id: I87e3813242dd3cd67138eae9efa96693fc598af0
It's quite unsafe to run without webhook_token, and quite easy for us to
run our tests with a terribly predictable one. This will ensure that
nobody accidentally runs a Zuul vulnerable to MITM proxy attacks.
Per the link right under the doc we just changed, we also use
hmac.compare_digest to prevent timing analysis by malicious attackers
which would help them discover the secret.
Change-Id: Ie8aa83b81b8e4ef1bb755a664bf416a8663930fa
There were two essential settings completely missing. Add them. Also add
some text about what things are called in the UI, since we're using
completely different words in the Zuul config.
Change-Id: Ibead129aeab137154fe58f7db8d359f565868781
Refresh the user and admin guide for v3 changes, and reorganize into
a narrative structure which makes more sense for v3.
Change-Id: I4ac3b18d5ed33b0fea4e2ef0318b19bfc3447ccc