From c08967c6d2e482454b25087cae1118944913d4ed Mon Sep 17 00:00:00 2001 From: liuzhaoyang Date: Thu, 8 Jul 2021 23:11:50 +0800 Subject: [PATCH 1/4] packgae init --- gerrit-view-0.4.6.tar.gz | Bin 0 -> 26759 bytes python-gerrit-view.spec | 58 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 gerrit-view-0.4.6.tar.gz create mode 100644 python-gerrit-view.spec diff --git a/gerrit-view-0.4.6.tar.gz b/gerrit-view-0.4.6.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f0afe9fb076ba1bfcc3ee1e554f0a7f7dea8c05d GIT binary patch literal 26759 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 literal 0 HcmV?d00001 diff --git a/python-gerrit-view.spec b/python-gerrit-view.spec new file mode 100644 index 0000000..9229c5e --- /dev/null +++ b/python-gerrit-view.spec @@ -0,0 +1,58 @@ +%global pypi_name gerrit-view + +Name: python-gerrit-view +Version: 0.4.6 +Release: 1 +Summary: A set of tools to query/view Gerrit patch reviews and their Zuul status + +License: ASL 2.0 +URL: https://pypi.org/project/gerrit-view/ +Source0: https://files.pythonhosted.org/packages/10/d7/4442b6fd9f828ef487e4fc8c0ba7f65c337de9bcdc80f997a54d691461e6/gerrit-view-0.4.6.tar.gz + +BuildArch: noarch + +BuildRequires: python3-setuptools +BuildRequires: python3-devel +BuildRequires: python3-urwid +BuildRequires: python3-requests + +%global _description\ +A set of tools to query/view Gerrit patch reviews and their status.\ +Current set of tools: (1) qgerrit -- to query different projects' Gerrit\ +reviews based on a set of criteria/filters; (2) cgerrit -- to view (in\ +real time) Gerrit reviews on CLI; (3) czuul -- to view Gerrit reviews'\ +Zuul (a pipeline oriented project gating and automation system) status\ +on CLI. + +%description %_description + +%package -n python3-gerrit-view +Summary: %summary +Requires: python3-gerritlib +Requires: python3-requests +Requires: python3-six +Requires: python3-prettytable +Requires: python3-urwid +Requires: python3-paramiko +Requires: python3-GitPython +%{?python_provide:%python_provide python3-gerrit-view} + +%description -n python3-gerrit-view %_description + +%prep +%setup -q -n %{pypi_name}-%{version} + +%build +%{__python3} setup.py build + +%install +%{__python3} setup.py install -O1 --skip-build --root %{buildroot} + +%files -n python3-gerrit-view +%doc README.rst +%{_bindir}/* +%{python3_sitelib}/gerrit_view-%{version}* + +%changelog +* Fri Jul 9 2021 liuzhaoyang - 0.4.6-1 +- Package init -- Gitee From a6429fb26142b0c906bb9b950e77e98a2edcdc8c Mon Sep 17 00:00:00 2001 From: liu zhaoyang Date: Fri, 9 Jul 2021 03:20:22 +0000 Subject: [PATCH 2/4] update README.md. --- README.md | 169 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 144 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 5f7c96b..5d4da7d 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,156 @@ -# python-gerrit-view +Project description -#### 介绍 -Gerrit viewer tools +Current set of tools: -#### 软件架构 -软件架构说明 +qgerrit – to query different projects’ Gerrit reviews based on a set of criteria/filters. +cgerrit – to view (in real time) Gerrit reviews on CLI. +czuul – to view Gerrit reviews’ Zuul (a pipeline oriented project gating and automation system) status on CLI. -#### 安装教程 +qgerrit -1. xxxx -2. xxxx -3. xxxx +Use qgerrit to query different projects’ Gerrit reviews based on a set of criteria/filters: -#### 使用说明 +$ qgerrit -u 'harlowja' +$ qgerrit -h -1. xxxx -2. xxxx -3. xxxx +Usage: qgerrit [options] -#### 参与贡献 -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +Options: + -h, --help show this help message and exit + -l USER, --login=USER + connect to gerrit with USER + -u USER, --user=USER gather information on given USER + -s STATUS, --status=STATUS + gather information on given status + -m MESSAGE, --message=MESSAGE + filter on message + -p PROJECT, --project=PROJECT + gather information on given project + -b BRANCH, --branch=BRANCH + filter on branch + -a APPROVAL, --approval=APPROVAL + filter on approval value min %n [default: no filter] + -k FILE, --keyfile=FILE + gerrit ssh keyfile [default: attempt to use + local agent] + -t SORT, --sort=SORT sort order for results [default: createdOn] + -n LIMIT, --limit=LIMIT + Limit the number of returned results. Note that this + limit is applied before sorting + -d, --deps Display results as a dependency tree + -f FIELD, --field=FIELD + display field in results [default: 'approvals', + 'branch', 'createdOn', 'lastUpdated', 'owner', + 'project', 'status', 'subject', 'topic', 'url'] -#### 码云特技 -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +Examples + +To enumerate all reviews requests for openstack/nova which touch a file with libvirt in the name: + +$ qgerrit \ + -l harlowja \ + -f url -f branch -f owner -f subject:100 \ + -f lastUpdated -f createdOn -f approvals \ + --sort createdOn \ + --project openstack/nova \ + libvirt + +Show reviews for neutron which does not have any negative karma, as those reviews are going to be resubmitted any way: + +$ qgerrit -l harlowja -a c0,v0 neutron + +(Thanks to Daniel Berrange for the above two examples) + +cgerrit + + +Use cgerrit to watch (in realtime) the reviews showing up (powered by urwid and the gerrit libraries): + +$ cgerrit +$ cgerrit -h + +Usage: cgerrit [options] + +Options: + + -h, --help show this help message and exit + -u USER, --user=USER gerrit user [default: harlowja] + -s SERVER, --server=SERVER + gerrit server [default: review.openstack.org] + -p PORT, --port=PORT gerrit port [default: 29418] + --prefetch=COUNT prefetch amount [default: 50] + -k FILE, --keyfile=FILE + gerrit ssh keyfile [default: attempt to use local + agent] + --project=PROJECT only show given projects reviews + -v FILE, --verbose=FILE + run in verbose mode and log output to the given file + -i COUNT, --items=COUNT + how many items to keep visible [default: 50] + -r FILE, --record-file=FILE + record file to store past events (also used for + initial view population if provided) +Keys supported + + +(S, s) - Change sort mode (default none) +(q, Q, esc) - Quit +(up, down, page up, page down) - Scroll up/down + +Examples + +To view reviews (real-time) for a specific project: + +$ cgerrit -u harlowja --project=openstack/neutron +To view reviews (real-time) for all projects: + +$ cgerrit -u harlowja +czuul +Use czuul to watch the reviews zuul status (powered by urwid and the requests libraries): + +$ czuul +$ czuul -h +Usage: czuul [options] + + +Options: + + -h, --help show this help message and exit + -s URL, --server=URL zuul server [default: + http://zuul.openstack.org/status.json] + --split-screens=SCREENS + split screen count [default: 3] + -p PIPELINE, --pipeline=PIPELINE + only show given pipelines reviews + -r SECONDS, --refresh=SECONDS + refresh every X seconds [default: 30] + --project=PROJECT only show given projects reviews + --no-details skip fetching each reviews details + -v FILE, --verbose=FILE + run in verbose mode and log output to the given file + --detail-remote=REMOTE_SERVER + fetch review remotes from this gerrit server [default: + https://review.openstack.org/] + + +Keys supported + +(R, r) - Force refresh +(q, Q, esc) - Quit +(up, down, page up, page down) - Scroll up/down +(left, right) - Scroll left/right +(enter) - show job details + + +Examples + +To get details about a project: + +$ czuul --project "openstack/nova" +To track all OpenStack project details in one go: + +$ czuul --project "openstack/*" \ No newline at end of file -- Gitee From a42c4b778e1c0f74fe12232cb21b15c7ebb8db5f Mon Sep 17 00:00:00 2001 From: liu zhaoyang Date: Fri, 9 Jul 2021 03:21:33 +0000 Subject: [PATCH 3/4] update README.md. --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 5d4da7d..4e202db 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ qgerrit Use qgerrit to query different projects’ Gerrit reviews based on a set of criteria/filters: -$ qgerrit -u 'harlowja' -$ qgerrit -h +qgerrit -u 'harlowja' +qgerrit -h Usage: qgerrit [options] @@ -51,7 +51,7 @@ Examples To enumerate all reviews requests for openstack/nova which touch a file with libvirt in the name: -$ qgerrit \ +qgerrit \ -l harlowja \ -f url -f branch -f owner -f subject:100 \ -f lastUpdated -f createdOn -f approvals \ @@ -61,7 +61,7 @@ $ qgerrit \ Show reviews for neutron which does not have any negative karma, as those reviews are going to be resubmitted any way: -$ qgerrit -l harlowja -a c0,v0 neutron +qgerrit -l harlowja -a c0,v0 neutron (Thanks to Daniel Berrange for the above two examples) @@ -70,8 +70,8 @@ cgerrit Use cgerrit to watch (in realtime) the reviews showing up (powered by urwid and the gerrit libraries): -$ cgerrit -$ cgerrit -h +cgerrit +cgerrit -h Usage: cgerrit [options] @@ -105,15 +105,15 @@ Examples To view reviews (real-time) for a specific project: -$ cgerrit -u harlowja --project=openstack/neutron +cgerrit -u harlowja --project=openstack/neutron To view reviews (real-time) for all projects: -$ cgerrit -u harlowja +cgerrit -u harlowja czuul Use czuul to watch the reviews zuul status (powered by urwid and the requests libraries): -$ czuul -$ czuul -h +czuul +czuul -h Usage: czuul [options] @@ -150,7 +150,7 @@ Examples To get details about a project: -$ czuul --project "openstack/nova" +czuul --project "openstack/nova" To track all OpenStack project details in one go: -$ czuul --project "openstack/*" \ No newline at end of file +czuul --project "openstack/*" \ No newline at end of file -- Gitee From 438890de3cd6c12a404a5525c8ddaf04f1789cfe Mon Sep 17 00:00:00 2001 From: liu zhaoyang Date: Fri, 9 Jul 2021 03:24:26 +0000 Subject: [PATCH 4/4] update README.md. --- README.md | 80 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 57 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 4e202db..a32d92d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ Project description Current set of tools: qgerrit – to query different projects’ Gerrit reviews based on a set of criteria/filters. + cgerrit – to view (in real time) Gerrit reviews on CLI. + czuul – to view Gerrit reviews’ Zuul (a pipeline oriented project gating and automation system) status on CLI. @@ -12,6 +14,7 @@ qgerrit Use qgerrit to query different projects’ Gerrit reviews based on a set of criteria/filters: qgerrit -u 'harlowja' + qgerrit -h Usage: qgerrit [options] @@ -20,27 +23,34 @@ Usage: qgerrit [options] Options: -h, --help show this help message and exit - -l USER, --login=USER - connect to gerrit with USER + + -l USER, --login=USER connect to gerrit with USER + -u USER, --user=USER gather information on given USER + -s STATUS, --status=STATUS gather information on given status + -m MESSAGE, --message=MESSAGE filter on message - -p PROJECT, --project=PROJECT - gather information on given project - -b BRANCH, --branch=BRANCH - filter on branch - -a APPROVAL, --approval=APPROVAL - filter on approval value min %n [default: no filter] + + -p PROJECT, --project=PROJECT gather information on given project + + -b BRANCH, --branch=BRANCH filter on branch + + -a APPROVAL, --approval=APPROVAL filter on approval value min %n [default: no filter] + -k FILE, --keyfile=FILE - gerrit ssh keyfile [default: attempt to use - local agent] + gerrit ssh keyfile [default: attempt to use local agent] + -t SORT, --sort=SORT sort order for results [default: createdOn] + -n LIMIT, --limit=LIMIT Limit the number of returned results. Note that this limit is applied before sorting + -d, --deps Display results as a dependency tree + -f FIELD, --field=FIELD display field in results [default: 'approvals', 'branch', 'createdOn', 'lastUpdated', 'owner', @@ -71,6 +81,7 @@ cgerrit Use cgerrit to watch (in realtime) the reviews showing up (powered by urwid and the gerrit libraries): cgerrit + cgerrit -h Usage: cgerrit [options] @@ -78,27 +89,37 @@ Usage: cgerrit [options] Options: -h, --help show this help message and exit + -u USER, --user=USER gerrit user [default: harlowja] + -s SERVER, --server=SERVER gerrit server [default: review.openstack.org] + -p PORT, --port=PORT gerrit port [default: 29418] + --prefetch=COUNT prefetch amount [default: 50] + -k FILE, --keyfile=FILE - gerrit ssh keyfile [default: attempt to use local - agent] + gerrit ssh keyfile [default: attempt to use local agent] + --project=PROJECT only show given projects reviews + -v FILE, --verbose=FILE run in verbose mode and log output to the given file + -i COUNT, --items=COUNT how many items to keep visible [default: 50] + -r FILE, --record-file=FILE - record file to store past events (also used for - initial view population if provided) + record file to store past events (also used for initial view population if provided) + Keys supported (S, s) - Change sort mode (default none) + (q, Q, esc) - Quit + (up, down, page up, page down) - Scroll up/down Examples @@ -106,43 +127,55 @@ Examples To view reviews (real-time) for a specific project: cgerrit -u harlowja --project=openstack/neutron + To view reviews (real-time) for all projects: cgerrit -u harlowja + czuul + Use czuul to watch the reviews zuul status (powered by urwid and the requests libraries): czuul + czuul -h -Usage: czuul [options] +Usage: czuul [options] Options: -h, --help show this help message and exit - -s URL, --server=URL zuul server [default: - http://zuul.openstack.org/status.json] - --split-screens=SCREENS - split screen count [default: 3] - -p PIPELINE, --pipeline=PIPELINE - only show given pipelines reviews + + -s URL, --server=URL zuul server [default: http://zuul.openstack.org/status.json] + + --split-screens=SCREENS split screen count [default: 3] + + -p PIPELINE, --pipeline=PIPELINE only show given pipelines reviews + -r SECONDS, --refresh=SECONDS refresh every X seconds [default: 30] + --project=PROJECT only show given projects reviews + --no-details skip fetching each reviews details + -v FILE, --verbose=FILE run in verbose mode and log output to the given file + --detail-remote=REMOTE_SERVER - fetch review remotes from this gerrit server [default: - https://review.openstack.org/] + fetch review remotes from this gerrit server [default:https://review.openstack.org/] Keys supported (R, r) - Force refresh + (q, Q, esc) - Quit + (up, down, page up, page down) - Scroll up/down + (left, right) - Scroll left/right + (enter) - show job details @@ -151,6 +184,7 @@ Examples To get details about a project: czuul --project "openstack/nova" + To track all OpenStack project details in one go: czuul --project "openstack/*" \ No newline at end of file -- Gitee