Fix Gerrit JWT 404 error for domains with no token set

Bug: 1310399
Change-Id: I8352e9e54e567f5e00d32428b4f8f5229894bda2
Reviewed-on: https://chromium-review.googlesource.com/c/infra/gerrit-plugins/buildbucket/+/3570538
Reviewed-by: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
2 files changed
tree: f84c69c8437e048a72aea910468cc6be92e5424f
  1. src/
  2. web/
  3. .eslintrc.json
  4. .gitignore
  5. BUILD
  6. codereview.settings
  7. LICENSE
  8. OWNERS
  9. README.md
  10. run-with-prod-data.sh
  11. run-with-testsite.sh
README.md

Buildbucket Plugin for Gerrit

Usage

This plugin is configured via the buildbucket.config file present in the repo‘s refs/meta/config ref, as well as the same file in all repositories in the repo’s inheritance chain (up to and including All-Projects).

An example buildbucket.config is below:

[host]
  git = "chromium.googlesource.com"
  gerrit = "chromium-review.googlesource.com"

[bucket "luci.chromium.try"]
[bucket "luci.chrome.try"]

In the vast majority of cases, the host.git and host.gerrit values are global to the entire host, so that stanza is specified in the All-Projects repo. Buckets and builders, on the other hand, are almost always very repository-specific, and so are only specified in “leaf” repositories which are not in any other repo's inheritance chain.

All changes to buildbucket.config files are instantly reflected. There is no caching period or need to restart the server.

If your project doesn't want the “retry failed” button to show, you can disable it:

[option]
  hide-retry-button = true

If your project uses Quick Run/RTS and wants to surface the rocket ship icon 🚀 for builds using Quick Run, you can show it by setting rts_was_used = true in the output properties (example recipe).

Setup

This plugin must be placed inside the Gerrit plugins directory:

git clone --recurse-submodules https://gerrit.googlesource.com/gerrit
cd gerrit/plugins
git clone https://chromium.googlesource.com/infra/gerrit-plugins/buildbucket

Web Plugin Development

For running unit tests execute:

bazel test --test_output=all //plugins/buildbucket/web:karma_test

For checking or fixing eslint formatter problems run:

bazel test //plugins/buildbucket/web:lint_test
bazel run //plugins/buildbucket/web:lint_bin -- --fix "$(pwd)/plugins/buildbucket/web"

For testing the plugin with Gerrit FE Dev Helper build the JavaScript bundle and copy it to the plugins/buildbucket folder:

bazel build //plugins/buildbucket/web:buildbucket
cp -f bazel-bin/plugins/buildbucket/web/buildbucket.js plugins/buildbucket

and let the Dev Helper redirect from .+/plugins/buildbucket/static/buildbucket.js to http://localhost:8081/plugins_/plugins/buildbucket.js.

Note: Testing is disabled for Safari due to this issue.