diff --git a/lib/datasource/github-releases/__snapshots__/index.spec.ts.snap b/lib/datasource/github-releases/__snapshots__/index.spec.ts.snap
index d317b5d8d5bc5d96ff4e578ffa77dba947f55e55..717e5cd9c7da884c20f710995ab580b519a490bc 100644
--- a/lib/datasource/github-releases/__snapshots__/index.spec.ts.snap
+++ b/lib/datasource/github-releases/__snapshots__/index.spec.ts.snap
@@ -39,3 +39,57 @@ Array [
   },
 ]
 `;
+
+exports[`datasource/github-releases getReleases supports ghe 1`] = `
+Object {
+  "releases": Array [
+    Object {
+      "gitRef": "a",
+      "isStable": undefined,
+      "releaseTimestamp": "2020-03-09T13:00:00Z",
+      "version": "a",
+    },
+    Object {
+      "gitRef": "v",
+      "isStable": undefined,
+      "releaseTimestamp": "2020-03-09T12:00:00Z",
+      "version": "v",
+    },
+    Object {
+      "gitRef": "1.0.0",
+      "isStable": undefined,
+      "releaseTimestamp": "2020-03-09T11:00:00Z",
+      "version": "1.0.0",
+    },
+    Object {
+      "gitRef": "v1.1.0",
+      "isStable": undefined,
+      "releaseTimestamp": "2020-03-09T10:00:00Z",
+      "version": "v1.1.0",
+    },
+    Object {
+      "gitRef": "2.0.0",
+      "isStable": false,
+      "releaseTimestamp": "2020-04-09T10:00:00Z",
+      "version": "2.0.0",
+    },
+  ],
+  "sourceUrl": "https://git.enterprise.com/some/dep",
+}
+`;
+
+exports[`datasource/github-releases getReleases supports ghe 2`] = `
+Array [
+  Object {
+    "headers": Object {
+      "accept": "application/vnd.github.v3+json",
+      "accept-encoding": "gzip, deflate",
+      "authorization": "token some-token",
+      "host": "git.enterprise.com",
+      "user-agent": "https://github.com/renovatebot/renovate",
+    },
+    "method": "GET",
+    "url": "https://git.enterprise.com/api/v3/repos/some/dep/releases?per_page=100",
+  },
+]
+`;
diff --git a/lib/datasource/github-releases/index.spec.ts b/lib/datasource/github-releases/index.spec.ts
index 551950b6d7b9fbd3b8c1499424350cf098eba62b..4c3d5713967a0e9afdb295f4507f0004465f9e8f 100644
--- a/lib/datasource/github-releases/index.spec.ts
+++ b/lib/datasource/github-releases/index.spec.ts
@@ -2,11 +2,25 @@ import { getPkgReleases } from '..';
 import * as httpMock from '../../../test/httpMock';
 import * as _hostRules from '../../util/host-rules';
 import { id as datasource } from '.';
+import * as github from '.';
 
 jest.mock('../../util/host-rules');
 const hostRules: any = _hostRules;
 
 const githubApiHost = 'https://api.github.com';
+const githubEnterpriseApiHost = 'https://git.enterprise.com';
+
+const responseBody = [
+  { tag_name: 'a', published_at: '2020-03-09T13:00:00Z' },
+  { tag_name: 'v', published_at: '2020-03-09T12:00:00Z' },
+  { tag_name: '1.0.0', published_at: '2020-03-09T11:00:00Z' },
+  { tag_name: 'v1.1.0', published_at: '2020-03-09T10:00:00Z' },
+  {
+    tag_name: '2.0.0',
+    published_at: '2020-04-09T10:00:00Z',
+    prerelease: true,
+  },
+];
 
 describe('datasource/github-releases', () => {
   beforeEach(() => {
@@ -26,17 +40,7 @@ describe('datasource/github-releases', () => {
       httpMock
         .scope(githubApiHost)
         .get('/repos/some/dep/releases?per_page=100')
-        .reply(200, [
-          { tag_name: 'a', published_at: '2020-03-09T13:00:00Z' },
-          { tag_name: 'v', published_at: '2020-03-09T12:00:00Z' },
-          { tag_name: '1.0.0', published_at: '2020-03-09T11:00:00Z' },
-          { tag_name: 'v1.1.0', published_at: '2020-03-09T10:00:00Z' },
-          {
-            tag_name: '2.0.0',
-            published_at: '2020-04-09T10:00:00Z',
-            prerelease: true,
-          },
-        ]);
+        .reply(200, responseBody);
 
       const res = await getPkgReleases({
         datasource,
@@ -52,5 +56,19 @@ describe('datasource/github-releases', () => {
       ).toBe(false);
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
+    it('supports ghe', async () => {
+      const lookupName = 'some/dep';
+      httpMock
+        .scope(githubEnterpriseApiHost)
+        .get(`/api/v3/repos/${lookupName}/releases?per_page=100`)
+        .reply(200, responseBody);
+      const res = await github.getReleases({
+        registryUrl: 'https://git.enterprise.com',
+        lookupName,
+      });
+      httpMock.getTrace();
+      expect(res).toMatchSnapshot();
+      expect(httpMock.getTrace()).toMatchSnapshot();
+    });
   });
 });
diff --git a/lib/datasource/github-releases/index.ts b/lib/datasource/github-releases/index.ts
index 55893b7e4ba31c598df821891ae40f841bbdde2c..a5b882b30c03bc26ff46a547870acf0ded270ed5 100644
--- a/lib/datasource/github-releases/index.ts
+++ b/lib/datasource/github-releases/index.ts
@@ -1,3 +1,4 @@
+import URL from 'url';
 import * as packageCache from '../../util/cache/package';
 import { GithubHttp } from '../../util/http/github';
 import { GetReleasesConfig, ReleaseResult } from '../common';
@@ -26,6 +27,7 @@ type GithubRelease = {
  */
 export async function getReleases({
   lookupName: repo,
+  registryUrl: depHost,
 }: GetReleasesConfig): Promise<ReleaseResult | null> {
   const cachedResult = await packageCache.get<ReleaseResult>(
     cacheNamespace,
@@ -35,13 +37,17 @@ export async function getReleases({
   if (cachedResult) {
     return cachedResult;
   }
-  const url = `https://api.github.com/repos/${repo}/releases?per_page=100`;
+  const sourceUrlBase = depHost ?? `https://github.com/`;
+  const apiBaseUrl = depHost
+    ? URL.resolve(depHost, 'api/v3/')
+    : `https://api.github.com/`;
+  const url = URL.resolve(apiBaseUrl, `repos/${repo}/releases?per_page=100`);
   const res = await http.getJson<GithubRelease[]>(url, {
     paginate: true,
   });
   const githubReleases = res.body;
   const dependency: ReleaseResult = {
-    sourceUrl: 'https://github.com/' + repo,
+    sourceUrl: URL.resolve(sourceUrlBase, repo),
     releases: null,
   };
   dependency.releases = githubReleases.map(