diff --git a/lib/manager/bazel/extract.js b/lib/manager/bazel/extract.js
index 48359aaf316c2fa00f682f6dee791120592c29ba..0ca0888a0ccdb334dce18458b08fe5b14af30530 100644
--- a/lib/manager/bazel/extract.js
+++ b/lib/manager/bazel/extract.js
@@ -32,7 +32,7 @@ function parseUrl(urlString) {
 
 function extractPackageFile(content) {
   const definitions = content.match(
-    /(git_repository|http_archive)\(([\s\S]*?)\n\)\n?/g
+    /(go_repository|git_repository|http_archive)\(([\s\S]*?)\n\)\n?/g
   );
   if (!definitions) {
     logger.debug('No matching WORKSPACE definitions found');
@@ -42,9 +42,10 @@ function extractPackageFile(content) {
   const deps = [];
   definitions.forEach(def => {
     logger.debug({ def }, 'Checking bazel definition');
-
-    const dep = { def, versionScheme: 'semver' };
+    const [depType] = def.split('(', 1);
+    const dep = { depType, def, versionScheme: 'semver' };
     let depName;
+    let importpath;
     let remote;
     let currentValue;
     let url;
@@ -74,9 +75,12 @@ function extractPackageFile(content) {
     if (match) {
       [, sha256] = match;
     }
+    match = def.match(/importpath = "([^"]+)"/);
+    if (match) {
+      [, importpath] = match;
+    }
     logger.debug({ dependency: depName, remote, currentValue });
-    if (def.startsWith('git_repository') && depName && remote && currentValue) {
-      dep.depType = 'git_repository';
+    if (depType === 'git_repository' && depName && remote && currentValue) {
       dep.depName = depName;
       dep.remote = remote;
       dep.currentValue = currentValue;
@@ -84,13 +88,22 @@ function extractPackageFile(content) {
       dep.purl = 'pkg:github/' + repo;
       deps.push(dep);
     } else if (
-      def.startsWith('http_archive') &&
+      depType === 'go_repository' &&
+      depName &&
+      importpath &&
+      currentValue
+    ) {
+      dep.depName = depName;
+      dep.currentValue = currentValue;
+      dep.purl = 'pkg:go/' + importpath;
+      deps.push(dep);
+    } else if (
+      depType === 'http_archive' &&
       depName &&
       parseUrl(url) &&
       sha256
     ) {
       const parsedUrl = parseUrl(url);
-      dep.depType = 'http_archive';
       dep.depName = depName;
       dep.repo = parsedUrl.repo;
       dep.currentValue = parsedUrl.currentValue;
diff --git a/lib/manager/bazel/update.js b/lib/manager/bazel/update.js
index 514ae438b8edf3eb685a3dfb3d5c1b1eac324159..2b3261d6864b78e99bc3b423c2b8a48a53175cce 100644
--- a/lib/manager/bazel/update.js
+++ b/lib/manager/bazel/update.js
@@ -9,7 +9,10 @@ async function updateDependency(fileContent, upgrade) {
   try {
     logger.debug(`bazel.updateDependency(): ${upgrade.newValue}`);
     let newDef;
-    if (upgrade.depType === 'git_repository') {
+    if (
+      upgrade.depType === 'git_repository' ||
+      upgrade.depType === 'go_repository'
+    ) {
       newDef = upgrade.def.replace(
         /tag = "[^"]+"/,
         `tag = "${upgrade.newValue}"`
diff --git a/test/_fixtures/bazel/WORKSPACE1 b/test/_fixtures/bazel/WORKSPACE1
index b7ea24ba8f02d187b7ab501feb7f4e3c1fb60db7..800e2c0032612f85bb1c8755ae92c0a08a9ffb46 100644
--- a/test/_fixtures/bazel/WORKSPACE1
+++ b/test/_fixtures/bazel/WORKSPACE1
@@ -1,6 +1,24 @@
 
 workspace(name = "angular_bazel_example")
 
+go_repository(
+    name = "com_github_bitly_go-nsq",
+    importpath = "github.com/bitly/go-nsq",
+    tag = "v1.0.5"
+)
+
+go_repository(
+   name = "com_github_google_uuid",
+   importpath = "github.com/google/uuid",
+   commit = "dec09d789f3dba190787f8b4454c7d3c936fed9e"
+)
+
+go_repository(
+    name = "com_gopkgin_mgo_v2",
+    importpath = "gopkg.in/mgo.v2",
+    tag = "v2"
+)
+
 git_repository(
     name = "build_bazel_rules_nodejs",
     remote = "https://github.com/bazelbuild/rules_nodejs.git",
diff --git a/test/manager/bazel/__snapshots__/extract.spec.js.snap b/test/manager/bazel/__snapshots__/extract.spec.js.snap
index 93bf960b01b970d688e4c7b26e73eabca7a49f09..eaa6e5c3351675199a91cd3456a257830e5e1252 100644
--- a/test/manager/bazel/__snapshots__/extract.spec.js.snap
+++ b/test/manager/bazel/__snapshots__/extract.spec.js.snap
@@ -2,6 +2,32 @@
 
 exports[`lib/manager/bazel/extract extractPackageFile() extracts multiple types of dependencies 1`] = `
 Array [
+  Object {
+    "currentValue": "v1.0.5",
+    "def": "go_repository(
+    name = \\"com_github_bitly_go-nsq\\",
+    importpath = \\"github.com/bitly/go-nsq\\",
+    tag = \\"v1.0.5\\"
+)
+",
+    "depName": "com_github_bitly_go-nsq",
+    "depType": "go_repository",
+    "purl": "pkg:go/github.com/bitly/go-nsq",
+    "versionScheme": "semver",
+  },
+  Object {
+    "currentValue": "v2",
+    "def": "go_repository(
+    name = \\"com_gopkgin_mgo_v2\\",
+    importpath = \\"gopkg.in/mgo.v2\\",
+    tag = \\"v2\\"
+)
+",
+    "depName": "com_gopkgin_mgo_v2",
+    "depType": "go_repository",
+    "purl": "pkg:go/gopkg.in/mgo.v2",
+    "versionScheme": "semver",
+  },
   Object {
     "currentValue": "0.3.1",
     "def": "git_repository(