Crates.io | libgerrit |
lib.rs | libgerrit |
version | 0.2.8 |
source | src |
created_at | 2017-03-01 21:28:04.454022 |
updated_at | 2018-02-05 23:09:50.282281 |
description | Rust client to gerrit |
homepage | |
repository | https://github.com/silvio/gerrit-rust |
max_upload_size | |
id | 8755 |
size | 63,460 |
gerrit-rust
is a console client for gerrit written in rust. This is a rust
learner project. Have patience with me :-)
Currently tested with Gerrit V02.09 and V02.13.
Common github workflow: fork, clone, branch, commit, push and then pullrequest. I'm happy about every PR, but I will ask questions about changes to learn from your knowledge.
git
binary in $PATH
Some design considerations here. Implemented features marked with [x]
. All
other ideas are todos and marked with [ ]
.
semver at version 1.0.0. Before this version no semver!
remove external depency to host
git binary
gerrit with download plugin
manage of topics over more than one repository (git submodules like)
0.1.0 ggr topic forget <BRANCHNAME> [-R]
Delete a branch at mainfolder and and with -R
in all subfolders.
-s
in conjunction with -R
to remove all branches
recursive which have no commit and the repositories are clean. Warn
unclean repositories/branches. 0.1.8 ggr topic checkout <BRANCHNAME>
Checkout a branch on all repositories.
0.1.7 ggr topic pull ...
same as ggr topic fetch
. This sub function is renamed because fetch
is more in line with git speak than pull
.
0.1.8 ggr topic fetch [-f] [-b branchname] <topicname>
fetch latest version of commits for a topic. Create for all
changes a branch with the patch identifier as name, or with -b
with
a given branchname.
--track <branch>
option.--closed
option to pull closed (merged) topics-a
get history of topic. See topic history
. 0.1.21 ggr topic history <topicname>
fetch all versions of all changes within ggr/<topicname>/<topicid>
. The topicid
is the reference
number plus version of the patch.
0.1.17 ggr topic reviewer [<TOPIC>] [-r <+/-MAIL>,...]
Add(+) or remove(-) reviewer (-r
) from topic. Without an option we
receive a list of all reviewers on this topic.
-v
/--verbose
for detailed view of approvals--format
option for formating of output. Using of rust
variable and formating informations like {email}
,
{email:15.2}
. 0.1.18 ggr topic abandon|restore [<TOPIC>]
Abandon/restore a complete topic.
[-m <MESSAGE>]
adds a abandon message to all
changes in this topic[-n <NONE|OWNER|REVIEWERS|ALL>]
notifiy a group of accounts
about this abandon action or don't notify (via NONE
). Default is
ALL
. 0.1.19 ggr topic verify [<TOPICNAME>] [-c <code-review>] [-l "<revie-label>"] [-m <MESSAGE>]
Gerrits labels are configurable on server side. Via -l
option the
label can be accessed. (e.g. -l "Code-Review:2"
). Option -c <VALUE>
is a convenient option for -l "Code-Review:<VALUE>"
. Currently only
-2/-1/0/1/2
as values for labels possible.
Additionaly a message can appended on all commits of a topic.
Query changes
0.1.0 ggr changes query <QUERY>
query a searchstring to gerrit server. Use as QUERY
the same syntax
as in gerrit web frontend. eg
0.1.7 Add --regexp-selector
to show only keys selected by
regular expression.
This remove the --fields selector introduced in 0.1.4.
0.1.6 Add a --human
option to print it in human readable
format.
0.1.4 Add --field-list
to get all selectable fields,
usable for --fields
option on a second call.
0.1.4 Add --raw
for json in raw format. Usable for pretty
printer over pipe
0.1.4 Option -o
/--ofields
to get additional information
of changes back (like REVISION etc ...)
Examples:
ggr changes query status:open is:watched n:2
: query open changes
which watched
flag.
0.1.5 Use of curl-rs as http client
0.1.0 Use a config file .ggr.config
in TOML format
api
: base url with schema (http)
0.1.3 User authentication (deprecated since 0.1.9)
username
: username for loginpassword
: password for login
[x] 0.1.9 only .netrc
settings are respected for username and
password. u/p in config file are ignoredroot
: true if this is the uppermost project of all repositories
underneath
Authentication (e.g.: digest, basic)
digest
and basic
are supported. Current implementation
calls both. First one is basic
and second one is digest
.Consider to configure via config file or put all settings into
as entries in .git/config
.
The values are same for config file and git-config approach. For the
git-config we use ggr-
as a prefix.
provide a configuration frontend
ggr config set baseurl 'http://localhost'
: set new baseurl
ggr config unset -C project1 root
: remove root
in project1
repositoryggr config set root
: set root for current repositoryggr config list
: list all options
ggr config generate --base <...> ...
: generates
a .ggr.config
file 0.1.9 Use $HOME/.netrc
file to get username and password.
add a --dry-run
option to print what we want to do, but we don't do
it
Library features
0.1.16 cli needs a subcommand to do lowlevel task -> gerritapi
0.1.0 implement base for http requests and responses
build a feature complete library to work with gerrit servers
access endpoint
accounts endpoint
changes endpoint
reviewer endpoint
Revision Endpoints
config endpoint
groups endpoint
plugins endpoint
projects endpoint
Removed functionality
ggr topic create <BRANCHNAME> [-r sub:rev]
Removed since 0.1.22, use instead git submodule foreach 'git branch <topicname>; true'
Old functionality:
Create branch at main folder and specified subfolders. If a branch with
same name exists it isn't touched. rev
is the reference where branch
should created Defaults to orign/master
. For base folder use -r .
.
Other Ideas
0.1.9 implement a log mechanism to get debugging information via loglevel switch
0.1.20 ggr changes fetch CHANGEID
Fetchs a changeid CHANGEID and his ancestors. The branch name is the
CHANGEID name.
0.1.16 do work to support more than one gerrit server
0.1.14 create a helper script for setup of development environment
docker pull openfrontier/gerrit
ggr stat [-F <date>] [-T <data>]
some statistics like opened and closed review since a week or between
a timespan. via iso-8601 like date -Is
.
Examples:
ggr stat -F 1w
: last week to nowggr stat -F 2015-12-31 -T 2016-02-01
: from 01.01.2016T00:00 till 01.02.2016T23:59:59ggr stat -F 2016-01-01
: from 02.01.2016T00:00 till nowggr stat -T 2016-02-01
: from begin of gerrit usage till 01.02.2016T23:59:59 ggr topic list -s
List all development branches and the repositories. With -s
it
includes the commits in the branch like git submodule summary
.
ggr topic push [-b] [<BRANCHNAME>]
Push changes to gerrit. Without -b
its pushed to gerrit. With option
-b
its pushed to a build server. Without branchname the current
branch is pushed.
ggr topic rename OLDTOPIC TOPIC
Rename OLDTOPIC to TOPIC
reviewer per commit
reviewer per repository
status of branches
shows status of a branch (remote and local like git remote show ...
ggr status [<BRANCHNAME>]
Support for .repo
folder
Consider to use https://github.com/gsingh93/trace
Consider to use https://github.com/ticki/termion
0.1.11 Document gerritlib::call
module
0.1.5 Add .travis.yml
This creates a dockercontainer which is connectable via http://localhost:8080.
The server is setup for development and all accounts can do all things.
It generate or use a DOCKER-FOR-GERRIT
folder containing of settings,
repositories and ssh-keys.
docker run --rm -it \
-h localhost
-p 8080:8080 -p 29418:29418 \
-v /development/projects/DOCKER-FOR-GERRIT:/var/gerrit/review_site \
--name gerrit \
openfrontier/gerrit:latest
Licensed under