Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
.gitignore
Dockerfile
Makefile
README.md
auth.go
check.go
check_test.go
gerrit.go
in.go
in_test.go
main.go
main_test.go
model.go
out.go
out_test.go

README.md

Gerrit Resource for Concourse

Build Status

Tracks Gerrit change revisions (patch sets).

This is not an official Google product.

Usage

Define a new resource type for your pipeline:

resource_types:
- name: gerrit
  type: docker-image
  source:
    repository: us.gcr.io/concourse-resources/gerrit-resource

Source Configuration

  • url: Required. The base URL of the Gerrit REST API.

  • query: A Gerrit Search query matching desired changes. Defaults to status:open. You may want to specify a project like: status:open project:my-project. See Gerrit documentation on Searching Changes.

  • cookies: A string containing cookies in "Netscape cookie file format" (as supported by libcurl) to be used when connecting to Gerrit. Usually used for authentication.

  • username: A username for HTTP Basic authentication to Gerrit.

  • password: A password for HTTP Basic authentication to Gerrit.

  • digest_auth: If true, use HTTP Digest auth instead of Basic auth.

Behavior

check: Check for new revisions.

The Gerrit REST API is queried for revisions created since the given version was created. If no version is given, the latest revision of the most recently updated change is returned.

in: Clone the git repository at the given revision.

The repository is cloned and the given revision is checked out.

Parameters

  • fetch_protocol: A protocol name used to resolve a fetch URL for the given revision. For more information see the fetch field in the Gerrit REST API documenation. Defaults to http or anonymous http if available.

  • fetch_url: A URL to the Gerrit git repository where the given revision can be found. Overrides fetch_protocol.

out

The given revision is updated with the given message and/or label(s).

Parameters

  • repository: Required. The directory previously cloned by in; usually just the resource name.

  • message: A message to be posted as a comment on the given revision. The message can contain build metadata variables. (e.g.: ${BUILD_ID}) See the [Concourse.CI Metadata Documentation](https://concourse.ci/implementing-resources.html#section_resource-metadata for a complete list of variables.

  • message_file: Path to a file containing a message to be posted as a comment on the given revision. This overrides message unless reading message_file fails, in which case message is used instead. If reading message_file fails and message is not specified then the put will fail. The message can contain build metadata variables. (e.g.: ${BUILD_ID}) See the [Concourse.CI Metadata Documentation](https://concourse.ci/implementing-resources.html#section_resource-metadata for a complete list of variables.

  • labels: A map of label names to integers to set on the given revision, e.g.: {Verified: 1}.

Example Pipeline

resource_types:
- name: gerrit
  type: docker-image
  source:
    repository: us.gcr.io/concourse-resources/gerrit-resource

resources:
- name: example-gerrit
  type: gerrit
  source:
    url: https://review.example.com
    query: status:open project:example
    cookies: ((gerrit-cookies))

jobs:
- name: example-ci
  plan:
  # Trigger this job for every new patch set
  - get: example-gerrit
    version: every
    trigger: true

  - task: example-ci
    file: example-gerrit/ci.yml

  # After a successfuly build, mark the patch set Verified +1
  - put: example-gerrit
    params:
      repository: example-gerrit
      message: CI passed!
      labels: {Verified: 1}