Skip to content

Files

Latest commit

6a22bf5 · Mar 23, 2022

History

History
This branch is 1 commit ahead of, 15423 commits behind kubernetes/test-infra:master.

gerrit

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Gerrit

Gerrit is a free, web-based team code collaboration tool.

Related Deployments

Adapter

Reporter

Related packages

Client

We have a gerrit-client package that provides a thin wrapper around
andygrunwald/go-gerrit, which is a go client library for accessing the Gerrit Code Review REST API

You can create a client instance by pass in a map of instance-name:project-ids, and pass in an oauth token path to start the client, like:

projects := map[string][]string{
	"foo.googlesource.com": {
		"project-bar",
		"project-baz",
	},
}

c, err := gerrit.NewClient(projects)
if err != nil {
	// handle error
}
c.Start(cookiefilePath)

The client will try to refetch token from the path every 10 minutes.

You should also utilize grandmatriarch to generate a token from a passed-in service account credential.

If you need extra features, feel free to introduce new gerrit API functions to the client package.

Adapter

The adapter package implements a controller that is periodically polling gerrit, and triggering presubmit and postsubmit jobs based on your prow config.

Gerrit Labels

Prow adds the following Labels to Gerrit Presubmits that can be accessed in the container by leveraging the Downward Api.

  • "prow.k8s.io/gerrit-revision": SHA of current patchset from a gerrit change
  • "prow.k8s.io/gerrit-patchset": Numeric ID of the current patchset
  • "prow.k8s.io/gerrit-report-label": Gerrit label prow will cast vote on, fallback to CodeReview label if unset
    - name: PATHCSET_NUMBER
      valueFrom:
        fieldRef:
          fieldPath: metadata.labels['prow.k8s.io/gerrit-patchset']

Caveat

The gerrit adapter currently does not support gerrit hooks, If you need them, please send us a PR to support them :-)