diff options
author | Luke Granger-Brown <git@lukegb.com> | 2021-04-06T16·47+0100 |
---|---|---|
committer | lukegb <lukegb@tvl.fyi> | 2021-04-06T18·43+0000 |
commit | 21765a140705dbd6c89c77ffb974c2143a953f5c (patch) | |
tree | 3daaecee7af9fb0c350ffffe8673c47cda8c9f15 /ops | |
parent | 79aa14278832be17c41ea179b92047454c511789 (diff) |
feat(ops/gerrit-tvl): init TVL Gerrit plugin r/2452
This is just going to be a grab bag of things which do TVL-specific things to Gerrit, whether that be exposing new Prolog predicates or, as I intend to do as the first thing, expose Buildkite builds as checks. Change-Id: Iaeab987a1fdbd078b85e274691c986489903bf3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2872 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'ops')
-rw-r--r-- | ops/gerrit-tvl/HttpModule.java | 14 | ||||
-rw-r--r-- | ops/gerrit-tvl/MANIFEST.MF | 2 | ||||
-rw-r--r-- | ops/gerrit-tvl/README.md | 6 | ||||
-rw-r--r-- | ops/gerrit-tvl/default.nix | 33 | ||||
-rw-r--r-- | ops/gerrit-tvl/static/tvl.js | 3 | ||||
-rw-r--r-- | ops/nixos/monorepo-gerrit.nix | 2 |
6 files changed, 59 insertions, 1 deletions
diff --git a/ops/gerrit-tvl/HttpModule.java b/ops/gerrit-tvl/HttpModule.java new file mode 100644 index 000000000000..6d785c0817fc --- /dev/null +++ b/ops/gerrit-tvl/HttpModule.java @@ -0,0 +1,14 @@ +package su.tvl.gerrit; + +import com.google.gerrit.extensions.registration.DynamicSet; +import com.google.gerrit.extensions.webui.JavaScriptPlugin; +import com.google.gerrit.extensions.webui.WebUiPlugin; +import com.google.inject.servlet.ServletModule; + +public final class HttpModule extends ServletModule { + + @Override + protected void configureServlets() { + DynamicSet.bind(binder(), WebUiPlugin.class).toInstance(new JavaScriptPlugin("tvl.js")); + } +} diff --git a/ops/gerrit-tvl/MANIFEST.MF b/ops/gerrit-tvl/MANIFEST.MF new file mode 100644 index 000000000000..bfe4eedeb6ac --- /dev/null +++ b/ops/gerrit-tvl/MANIFEST.MF @@ -0,0 +1,2 @@ +Gerrit-HttpModule: su.tvl.gerrit.HttpModule +Gerrit-PluginName: tvl diff --git a/ops/gerrit-tvl/README.md b/ops/gerrit-tvl/README.md new file mode 100644 index 000000000000..1b88600f197f --- /dev/null +++ b/ops/gerrit-tvl/README.md @@ -0,0 +1,6 @@ +# gerrit-tvl + +A Gerrit plugin that does TVL-specific things. + +You probably want to take inspiration from this rather than using it directly, +as it has a variety of TVL-ish assumptions baked into it. diff --git a/ops/gerrit-tvl/default.nix b/ops/gerrit-tvl/default.nix new file mode 100644 index 000000000000..f3bec7a3a242 --- /dev/null +++ b/ops/gerrit-tvl/default.nix @@ -0,0 +1,33 @@ +{ depot, pkgs, lib, ... }: + +let + classPath = lib.concatStringsSep ":" [ + "${depot.third_party.gerrit}/share/api/extension-api_deploy.jar" + ]; +in +pkgs.stdenvNoCC.mkDerivation rec { + name = "${pname}-${version}.jar"; + pname = "gerrit-tvl"; + version = "0.0.1"; + + src = ./.; + + nativeBuildInputs = with pkgs; [ + jdk + ]; + + buildPhase = '' + mkdir $NIX_BUILD_TOP/build + + # Build Java components. + export JAVAC="javac -cp ${classPath} -d $NIX_BUILD_TOP/build --release 11" + $JAVAC ./HttpModule.java + + # Install static files. + cp -R static $NIX_BUILD_TOP/build/static + ''; + + installPhase = '' + jar --create --file $out --manifest $src/MANIFEST.MF -C $NIX_BUILD_TOP/build . + ''; +} diff --git a/ops/gerrit-tvl/static/tvl.js b/ops/gerrit-tvl/static/tvl.js new file mode 100644 index 000000000000..f6c1c732a4d3 --- /dev/null +++ b/ops/gerrit-tvl/static/tvl.js @@ -0,0 +1,3 @@ +Gerrit.install(plugin => { + console.log('TVL plugin initialising'); +}); diff --git a/ops/nixos/monorepo-gerrit.nix b/ops/nixos/monorepo-gerrit.nix index 1c8564e03251..61d8b71a5baa 100644 --- a/ops/nixos/monorepo-gerrit.nix +++ b/ops/nixos/monorepo-gerrit.nix @@ -18,9 +18,9 @@ in { ]; plugins = with depot.third_party.gerrit_plugins; [ - checks owners oauth + depot.ops.gerrit-tvl ]; package = depot.third_party.gerrit; |