The gerrie:crawl command is the main command of the Gerrie application. The main responsibility of this command is to receive the data from the Gerrit instance and transfer the data into a RDBMS. This happens in several steps:

  1. Receive all information of configuration / options + arguments
  2. Query the Gerrit instance for the / a project(s)
  3. Transfer the project data into a unique format
  4. Proceed (insert / update) project information
  5. Query the Gerrit instance for Changesets + detailed information
  6. Transfer the Changeset data into a unique format
  7. Proceed (insert / update) changeset information

One requirement to execute gerrie:crawl is the necessary database structure. You can setup the table scheme with the command gerrie:setup-database. An alternative way can be the –setup-database-tables option of the gerrie:crawl command.


At the moment Gerrie is only able to communicate with the SSH API of Gerrie. The support for the REST API is not build in yet in Gerrie.

Next to the described main logic there a several small features build in like

  • debugging functionality to detect if every attribute which is received by the API is transformed to the unique format and no information is missing
  • debugging functionality to detect if the project / instance is crawled the first time and only insert statements and not update statements will be executed
  • logging to see what happens