Problem:
When I was trying zuul installation, I encountered multiple errors
regarding parsing timestamps received via events from gitlab. Timestamps
received did not match the format expected by gitlabconnection.py source
code. For example, instead of %Z (timezone name) I received %z (timezone
offset)
Proposed solution
Add a little bit more formats to check before failing parsing received
timestamps. Move logic to the function, which can be reused within the
file.
I did not drop formats, which were present in the code before, as I
believe, some gitlab installations can indeed send timestamps in such
formats, so I left those parsers as fallbacks.
Signed-off-by: Oleksandr Kovalchuk <anxolerd@outlook.com>
Change-Id: I6ec6002ac4810bee162cd60f3f62c068f133bd3b
The release of pyjwt 2.0.0 changed the behavior of some functions, which
caused errors. Fix the errors, use pyjwt 2.0.0's better handling of JWKS,
and pin requirement to 2.X to avoid future potential API breaking changes.
Change-Id: Ibef736e0f635dfaf4477cc2a90a22665da9f1959
The timestamp field helps to prepare visualization in
Kibana.
The duration field was set to integer in Kibana object, but
the value was string, so the Kibana was doing incorrect visualizations.
Also this commit provides fix for rst block in elasticserarch driver
document.
Change-Id: I92a034d78f9193476eccecc7efb4a818d4b4a658
It has the capability to index build and buildset results.
With the help of tools like Kibana, advanced analytics
dashboard could be built on top of the Zuul Elasticsearch
index.
Optionally job's variables and zuul_return data can be
exported along with build results under the job_vars and
job_returned_vars fields.
Change-Id: I5315483c55c10de63a3cd995ef681d0b64b98513
-quick-start steps are modified and fit more to what a reader would do
-quick-start test code is mainly splitted into 2 files, one which is a
setup part as a role, the second one starts with cloning the test
repository, just like all followings tutorial will do
-some elementary steps when manipulating or checking gerrit are being
added as roles
tutorial ssh config: test ssh configuration has been modified to allow
using a known_hosts file for both someone executing localtest and
opendev.org's zuul. A reader executing the tutorial would still have to
accept the fingerprint. To do so, commit-msg hook is fetched manually,
otherwise it would be downloaded by git-review throught scp. Alas,
git-review doesn't allow to pass options to scp to provide a new
known_hosts file.
User's ssh key is used if ~/.ssh/id_rsa.pub is available, otherwise use
a generated one.
- "to_json | from_json | json_query" in test is due to an issue between
ansible and jmespath [1]
[1] https://github.com/ansible-collections/community.general/issues/320
Change-Id: Id5c669537ff5afc7468352139980ebade167d534
Removes outdated workaround on importlib-resources.
This fixes issue with py39+, where stdlib already provides it.
Change-Id: I82264c293ff9072e970e81417658fc934cccea2d
Newer versions of Gerrit have a built-in work-in-progress flag
which, when set, makes the change unsubmittable. Update the
canMerge method in the Gerrit driver to recognize the new flag.
Change-Id: Ia8e5e50086933215c45e92b419a04c1117880a34
Gerrit's refs are left-padded with zeroes if the change's number is
below 10, for example 9,1 -> refs/changes/09/9/1.
Fix an error in computing the change's ref when the change's number is
below 10.
Modify the test framework to emulate Gerrit ref naming convention more
faithfully in tests.
Change-Id: I54a3c3dcaa9a08cff97bfd701e28b6f240fdb77d
The latest release of Gerrit has changed the name of the
Non-Interactive Users group to Service Users.
Change-Id: Ia6d33df50498164e4df2ef6b062cb3807151ca9f
Co-Authored-By: Guillaume Chauvel <guillaume.chauvel@gmail.com>
Release 2.0.0 on December 22, 2020 brought breaking changes. Pin to the
last working version until we can fix the breaks properly.
Change-Id: I2e6cc36d373f8c774eda5f5caec9868f74023729
Git versions between 2.18 and 2.26 have version 2 protocol support
but it's not enabled by default. Starting in 2.26, it is the
default. V2 is more efficient at negotiating refs and can reduce
the time spent updating a repo by 50% on large repos.
This adds a setting to the container images to specify that v2
should be used. The images are currently built with git 2.20, which
is in the range where this is needed.
Change-Id: Ifc471c5fde49c65137bc34e49734b3ac3d33e3e1
This allows mypy to produce the same results regardless how is called.
For example IDEs will produce the same results as tox -e linters
instead of displaying violations which the core team decided to
disable.
Change-Id: I20eeafc0549f78e3d4f9636793cfe031389b6bbe
The HEADER_* argument format for the uri module has been deprecated
for some time and now removed. Update to use the new format.
Change-Id: I4691642213344f2516e6f146da669141db39772a
Now that 3.19.1 has been merged, re-add these notes (with modified ids)
so they will appear in the next release.
Change-Id: If2906763c51f1c829b1bbc1c5672b5e3f3746c6f
Reno will assign these release notes to the 3.19.1 tag if they are here when
we merge it into master. Remove them for now, merge the tag, then add them back
in a later commit.
Change-Id: Ida294bb12ffd7b06890bb3af865c6ac783fbb394
Change I08ee908a340f7d3c923b7054ec79cb921bf6571b originally introduced
a filter on this change, to avoid inadvertent collisions between SHA1
or Change-Id.
It looks like this got refactored out with
I11920a13615de103eb3d8fb305eacbbcb30e5e40
Restore the filter to the SSH query
Change-Id: I9a88ebccf36ac3404b5b91922863e32977a06866
Co-Authored-By: Clark Boylan <clark.boylan@gmail.com>
In the Zuul project in general we try to avoid having nitpicky
arguments about code style. Unless it causes a real problem,
we usually accept the stylistic aspects of code as people write
it. Since js indentation is not functional, like python, let's
ignore it.
Change-Id: If787e9a9fee92bdca1c4add448a5c85f02d4118d