Gerrit Integration

Set up FirmwareCI integration with Gerrit repositories using service user credentials and CLI-based synchronization.

Prerequisites

  • Repository set up with .firmwareci infrastructure (see Repository Setup)
  • Gerrit service user account with appropriate permissions
  • fwci CLI tool authenticated

Limitations

Important: Gerrit integration currently supports CLI-based synchronization only. Webhook-based automatic synchronization is not available.

This means:

  • Manual synchronization required for each commit
  • No automatic validation on pushes
  • Status updates require additional setup (see Gerrit Integration Plugin)

Setup Steps

1. Create Service User

In Gerrit, create or use an existing service user account with:

  • Read access to the repository
  • Permission to post review comments (for status updates)

2. Generate HTTP Password

For the service user:

  1. Navigate to Settings > HTTP Password in Gerrit
  2. Generate or note the HTTP password
  3. Important: This is NOT the user’s login password

3. Run Integration Command

Provide the service user credentials:

$ fwci integration --gerrit-auth="USERNAME:PASSWORD"

Example:

$ fwci integration --gerrit-auth="firmwareci-bot:abc123xyz"

4. Verify Integration

View configured integration:

$ fwci integration

CLI Synchronization

Gerrit integration requires manual commit synchronization using the CLI. See CLI Synchronization for complete instructions including the --force flag for automation.

HTTPS Authentication

When synchronizing with HTTPS remotes fails, see these extra authentication options:

Environment Variables (Recommended):

export GIT_TOKEN=your_http_password
export GERRIT_USERNAME=your_gerrit_username

Interactive Prompt (Fallback):

Enter username for https://gerrit.example.com/repo: your_gerrit_username
Enter token/password for https://gerrit.example.com/repo: <your HTTP password>

Important: Use your Gerrit HTTP password, not your site login password.

Status Updates to Gerrit

To post test results back to Gerrit changes, additional setup is required.

See the Gerrit Integration documentation for:

Next Steps