diff --git a/WORKSPACE b/WORKSPACE
index 1e34b35..065379c 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,3 +1,10 @@
+workspace(name = "gitiles")
+load("//tools:bazlets.bzl", "load_bazlets")
+load_bazlets(commit = "3afbeab55ece585dbfc7a980bf7214b24ddbbe86")
+load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl",
+     "maven_jar",
+     "GERRIT")
+
 maven_jar(
     name = "commons_lang",
     artifact = "org.apache.commons:commons-lang3:3.1",
@@ -26,12 +33,13 @@
     name = "jsr305",
     artifact = "com.google.code.findbugs:jsr305:3.0.0",
     sha1 = "5871fb60dc68d67da54a663c3fd636a10a532948",
+    attach_source = False,
 )
 
 maven_jar(
     name = "prettify",
     artifact = "prettify:java-prettify:1.2.1",
-    repository = "http://gerrit-maven.storage.googleapis.com/",
+    repository = GERRIT,
     sha1 = "29ad8d072f9d0b83d1a2e9aa6ccb0905e6d543c6",
 )
 
@@ -140,6 +148,7 @@
     name = "tukaani_xz",
     artifact = "org.tukaani:xz:1.4",
     sha1 = "18a9a2ce6abf32ea1b5fd31dae5210ad93f4e5e3",
+    attach_source = False,
 )
 
 maven_jar(
diff --git a/gitiles-servlet/BUILD b/gitiles-servlet/BUILD
index ff33933..e19f329 100644
--- a/gitiles-servlet/BUILD
+++ b/gitiles-servlet/BUILD
@@ -51,7 +51,7 @@
     ],
 )
 
-load("//gitiles-servlet:junit.bzl", "junit_tests")
+load("@com_googlesource_gerrit_bazlets//tools:junit.bzl", "junit_tests")
 
 junit_tests(
     name = "ServletTests",
diff --git a/gitiles-servlet/junit.bzl b/gitiles-servlet/junit.bzl
deleted file mode 100644
index ee79637..0000000
--- a/gitiles-servlet/junit.bzl
+++ /dev/null
@@ -1,60 +0,0 @@
-# skylark rule to generate a Junit4 TestSuite
-# Assumes srcs are all .java Test files
-# Assumes junit4 is already added to deps by the user.
-
-# See https://github.com/bazelbuild/bazel/issues/1017 for background.
-
-_OUTPUT = """import org.junit.runners.Suite;
-import org.junit.runner.RunWith;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({%s})
-public class %s {}
-"""
-
-_PREFIXES = ("org", "com", "edu")
-
-def _SafeIndex(l, val):
-    for i, v in enumerate(l):
-        if val == v:
-            return i
-    return -1
-
-def _AsClassName(fname):
-    fname = [x.path for x in fname.files][0]
-    toks = fname[:-5].split("/")
-    findex = -1
-    for s in _PREFIXES:
-        findex = _SafeIndex(toks, s)
-        if findex != -1:
-            break
-    if findex == -1:
-        fail("%s does not contain any of %s",
-                         fname, _PREFIXES)
-    return ".".join(toks[findex:]) + ".class"
-
-def _impl(ctx):
-    classes = ",".join(
-        [_AsClassName(x) for x in ctx.attr.srcs])
-    ctx.file_action(output=ctx.outputs.out, content=_OUTPUT % (
-            classes, ctx.attr.outname))
-
-_GenSuite = rule(
-    attrs = {
-        "srcs": attr.label_list(allow_files = True),
-        "outname": attr.string(),
-    },
-    outputs = {"out": "%{name}.java"},
-    implementation = _impl,
-)
-
-def junit_tests(name, srcs, **kwargs):
-    s_name = name + "TestSuite"
-    j_name = s_name + ".java",
-    _GenSuite(name=s_name,
-              srcs=srcs,
-              outname=s_name)
-    native.java_test(name=name,
-                     test_class=s_name,
-                     srcs = srcs + [":"+s_name],
-                     **kwargs)
diff --git a/tools/BUILD b/tools/BUILD
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/tools/BUILD
@@ -0,0 +1 @@
+
diff --git a/tools/bazlets.bzl b/tools/bazlets.bzl
new file mode 100644
index 0000000..e14e488
--- /dev/null
+++ b/tools/bazlets.bzl
@@ -0,0 +1,17 @@
+NAME = "com_googlesource_gerrit_bazlets"
+
+def load_bazlets(
+    commit,
+    local_path = None
+  ):
+  if not local_path:
+      native.git_repository(
+          name = NAME,
+          remote = "https://gerrit.googlesource.com/bazlets",
+          commit = commit,
+      )
+  else:
+      native.local_repository(
+          name = NAME,
+          path = local_path,
+      )
