diff --git a/modules.env b/modules.env
index 469e40c553..93624e9b4d 100644
--- a/modules.env
+++ b/modules.env
@@ -60,6 +60,7 @@ INTEGRATION_MODULES["https://git.openstack.org/openstack-infra/puppet-storyboard
 INTEGRATION_MODULES["https://git.openstack.org/openstack-infra/puppet-kibana"]="origin/master"
 INTEGRATION_MODULES["https://git.openstack.org/openstack-infra/puppet-jenkins"]="origin/master"
 INTEGRATION_MODULES["https://git.openstack.org/openstack-infra/puppet-pip"]="origin/master"
+INTEGRATION_MODULES["https://git.openstack.org/openstack-infra/puppet-github"]="origin/master"
 
 if [[ "$PUPPET_INTEGRATION_TEST" -ne "1" ]]; then
     # If puppet integration tests are not being run, merge SOURCE and INTEGRATION modules
diff --git a/modules/github/manifests/init.pp b/modules/github/manifests/init.pp
deleted file mode 100644
index e634314881..0000000000
--- a/modules/github/manifests/init.pp
+++ /dev/null
@@ -1,101 +0,0 @@
-# == Class: github
-#
-class github(
-  $username = '',
-  $oauth_token = '',
-  $project_username = '',
-  $project_password = '',
-  $projects = []
-) {
-  include jeepyb
-  include pip
-
-  if ! defined(Package['PyGithub']) {
-    package { 'PyGithub':
-      ensure   => latest,  # okay to use latest for pip
-      provider => pip,
-      require  => Class['pip'],
-    }
-  }
-
-  # A lot of things need yaml, be conservative requiring this package to avoid
-  # conflicts with other modules.
-  if ! defined(Package['python-yaml']) {
-    package { 'python-yaml':
-      ensure => present,
-    }
-  }
-
-  group { 'github':
-    ensure => present,
-  }
-
-  user { 'github':
-    ensure  => present,
-    comment => 'Github API User',
-    shell   => '/bin/bash',
-    gid     => 'github',
-    require => Group['github'],
-  }
-
-  file { '/etc/github':
-    ensure => directory,
-    group  => 'root',
-    mode   => '0755',
-    owner  => 'root',
-  }
-
-  file { '/etc/github/github.config':
-    ensure => absent,
-  }
-
-  file { '/etc/github/github.secure.config':
-    ensure  => present,
-    content => template('github/github.secure.config.erb'),
-    group   => 'github',
-    mode    => '0440',
-    owner   => 'root',
-    replace => true,
-    require => [
-      Group['github'],
-      File['/etc/github'],
-    ],
-  }
-
-  file { '/etc/github/github-projects.secure.config':
-    ensure  => present,
-    content => template('github/github-projects.secure.config.erb'),
-    group   => 'github',
-    mode    => '0440',
-    owner   => 'root',
-    replace => true,
-    require => [
-      Group['github'],
-      File['/etc/github'],
-    ],
-  }
-
-  file { '/usr/local/github':
-    ensure => directory,
-    group  => 'root',
-    mode   => '0755',
-    owner  => 'root',
-  }
-
-  file { '/usr/local/github/scripts':
-    ensure  => absent,
-  }
-
-  cron { 'githubclosepull':
-    command => 'sleep $((RANDOM\%60+90)) && /usr/local/bin/close-pull-requests',
-    minute  => '*/5',
-    require => [
-      Class['jeepyb'],
-      Package['python-yaml'],
-      Package['PyGithub'],
-    ],
-    user    => github,
-  }
-}
-
-# vim:sw=2:ts=2:expandtab:textwidth=79
diff --git a/modules/github/templates/github-projects.secure.config.erb b/modules/github/templates/github-projects.secure.config.erb
deleted file mode 100644
index 887c2a7038..0000000000
--- a/modules/github/templates/github-projects.secure.config.erb
+++ /dev/null
@@ -1,3 +0,0 @@
-[github]
-username = <%= project_username %>
-password = <%= project_password %>
diff --git a/modules/github/templates/github.secure.config.erb b/modules/github/templates/github.secure.config.erb
deleted file mode 100644
index 92e1493c7b..0000000000
--- a/modules/github/templates/github.secure.config.erb
+++ /dev/null
@@ -1,3 +0,0 @@
-[github]
-username = <%= username %>
-oauth_token = <%= oauth_token %>