Skip to main content

Repoload - a change request download tool.

Project description

Repoload - a change request download tool

repoload is a commandline tool, written in python3, that should make your life and daily work with the repo tool and the gerrit review system more pleasant.

repoload has currently only a very limited set of functionalities and a lot of TODOS in the code, but it's already useful. The possibility to download multiple CRs (Change Requests) by naming the crossrepo topic is the must-have feature, because it's not supported by repo itself.

The full feature list is:

  • Query gerrit for open CRs
  • Query gerrit for open topic names
  • Download a CR or multiple CRs linked by a topic at once.

It also works with gerrit using the autosubmitter plugin.

Usage

Before using repoload you have to install the script and configure the gerrit server URL. See below.

The primary use case of repoload is to easily checkout crossrepo/ CRs (Change Requests) from gerrit.

Example:

 # Change directory into the repo checkout
 $ cd to/repo/checkout

 # Bring your repo checkout into a consistent state
 # Beware: 'repo sync' maybe drops your local modifications without a warning
 # Backup your code changes!
 $ repo sync

 # Query the gerrit server for open CRs
 # You can use `grep` to filter for your coworker's CRs
 $ repoload changes | grep -i john
 123: Add feature A (Jon Doe <john.doe@my.corp.com>) [topic: crossrepo/feature-a]
 128: Update library for feature A (John Doe <john.doe@my.corp.com>) [topic: crossrepo/feature-a]
 [...]

 # For downloading all CRs linked by a topic, just use the topic name
 $ repload download crossrepo/feature-a

 # For downloading only a single CR, use the CR number
 $ repload download 123

 # Build, test and have fun.

All repoload commands have an abbreviation:

 $ repoload c     # for 'changes'
 $ repoload t     # for 'topics'
 $ repoload d     # for 'download'

For further information see:

 $ repoload --help
 $ repoload download --help    # and so forth

Installation

The installation of repoload is possible over PyPI or by directly using the python script.

PyPI:

$ python3 -m pip install --user repoload

To manually install the self contained repoload.py python script. Just drop the file in a folder that your environment variable PATH references.

Example:

$ mkdir -p ~/bin
$ cp repoload/repoload.py ~/bin/repoload
$ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
$ chmod +x ~/bin/repoload  # ensure that the script is executeable

After that the command repoload should be available in a newly started shell and the command

$ repoload changes

should print a list of open change requests.

Repoload looks for the manifest repository configuration file to determine the URL of the Gerrit server. It works automatically if the current working directory is below a repo checkout. Alternatively, the environment variable ANDROID_BUILD_TOP can be set to the directory where a repo checkout is located. Finally, the URL can be set directly via the environment variable GERRIT_URL.

Create and publish a release

To create a release of repoload additional packaging dependency's are needed:

$ python3 -m pip install --user --upgrade twine setuptools wheel

Next the release which is described in the setup.py file gets packaged. The version number is taken from the repoload/repoload.py __VERSION__ string.

$ python3 setup.py sdist bdist_wheel

As final step the release can be uploaded to PyPI. See the PyPI documentation on how to configure the credentials for twine.

$ python3 -m twine upload dist/*

License

The code is licensed under the MIT License. See the file COPYING.

Contribution

The project is open for contribution. Open a github pull request or send a patch via email. If you take the patch route, you can find our mail addresses in the git history easily.

Please add a Signed-off-by tag in the commit/patch message to state the copyright ownership and license information of your patch. Read Developer Certificate of Origin v1.1 to understand the meaning and obligations your are taking by adding your sign-off. Thanks in advance.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repoload-0.2.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

repoload-0.2-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file repoload-0.2.tar.gz.

File metadata

  • Download URL: repoload-0.2.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9

File hashes

Hashes for repoload-0.2.tar.gz
Algorithm Hash digest
SHA256 a58c134e51e679a2f24d412e193dbd9aeeb2bc64ad4d36a9a52b17946c594d9d
MD5 13b91b69651494de0223186f0595a646
BLAKE2b-256 2f92350b2d3c943ea147a11d8a181ff6aa157963a3eeefdeefb100cfd408cb55

See more details on using hashes here.

File details

Details for the file repoload-0.2-py3-none-any.whl.

File metadata

  • Download URL: repoload-0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9

File hashes

Hashes for repoload-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 35df980eface8daa39c47ed2d233312fa277b2ce94504174a9ae684f8e04d4a6
MD5 6b16d93411c7f4fd92f008286fbf1d09
BLAKE2b-256 c4df1ad09014c4d21355666867aae50c93f1e291933966adc84c39b814d56d9f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page