Files
gem5/util/gerrit-bot
Hoa Nguyen 1e30ade018 util: Fix gerrit bot commit subject parser
Currently, if the commit subject does have tags, the parser will
return the list of tags as a NoneType object, which will be
iterated later. This caused the gerrit bot to fail.

This change lets the parser return the list of tags as an empty
list rather than a NoneType object. Also, a commit subject without
a semicolon `:` will be assumed as having no tags and the whole
subject is the commit message.

Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Change-Id: Ie8c90e14bb85c4ce1c583121d02e75aa87db7811
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/48586
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-07-27 16:31:49 +00:00
..
2020-11-26 08:07:03 +00:00

Gerrit Bot

Getting Username and Password

Gerrit REST API uses the account username and password for the authentication purpose. They are necessary to make a request.

The following are steps to obtain the username and password from .gitcookies files,

  • Follow this link https://gem5-review.googlesource.com/new-password and copy the authenticating script to a new file.

  • After that, run the extract_gitcookies.py to extract the username and password from the authenticating script. For example, the following command extracts the username and password from gerrit_auth_script and writes them to .data/auth,

python3 extract_gitcookies.py gerrit_auth_script .data/auth

The .data/auth will have two lines: the first line contains the username and the second line is the corresponding password. Notes:

  • The above link, https://gem5-review.googlesource.com/new-password, generates a new pair of username and password per visit.
  • The extract_gitcookies.py file is also able to read from .gitcookies file. For example, python3 extract_gitcookies.py ~/.gitcookies output will write all pairs of username and password in two lines per pair to output.
  • The gerrit-bot only reads the pair of username and password appearing in the first and the second line in the .data/auth file.

Gerrit Bot

The structure of the Gerrit bot is as follows:

  • The GerritBotConfig class should contain all constants that are configurable prior to running.

Gerrit API

Deployment

The Gerrit bot is intended to be run as a cron job. Each run of the Gerrit bot will query new changes made to the Gerrit server within a certain period of time, perform actions on each change, and exit.

The following are steps to deploy the Gerrit bot:

  • Create .data folder in the same folder as bot.py,
mkdir .data
  • Follow the steps here to get the Gerrit bot account username and password.

  • To run the Gerrit bot once,

./bot.py
  • To edit the cron table,
crontab -e

To run the Gerrit bot every 30 minutes, add the following line to the crontable,

*/1 * * * * cd /path/to/gerrit/bot/directory && ./bot.py