diff --git a/jeepyb/cmd/close_pull_requests.py b/jeepyb/cmd/close_pull_requests.py
index 70bc543..c1b6a1f 100644
--- a/jeepyb/cmd/close_pull_requests.py
+++ b/jeepyb/cmd/close_pull_requests.py
@@ -43,6 +43,7 @@
 import logging
 import os
 
+import jeepyb.projects as p
 import jeepyb.utils as u
 
 MESSAGE = """Thank you for contributing to %(project)s!
@@ -54,6 +55,8 @@
 and follow the instructions there to upload your change to Gerrit.
 """
 
+log = logging.getLogger("close_pull_requests")
+
 
 def main():
 
@@ -79,6 +82,10 @@
     for section in registry.configs_list:
         project = section['project']
 
+        # Make sure we're using GitHub for this project:
+        if not p.has_github(project):
+            continue
+
         # Make sure we're supposed to close pull requests for this project:
         if 'options' in section and 'has-pull-requests' in section['options']:
             continue
@@ -93,9 +100,8 @@
                 repo = org.get_repo(project_split[1])
             else:
                 repo = ghub.get_user().get_repo(project)
-        except KeyError:
-            continue
-        except github.GithubException:
+        except (KeyError, github.GithubException):
+            log.exception("Could not find project %s on GitHub." % project)
             continue
 
         # Close each pull request
diff --git a/jeepyb/projects.py b/jeepyb/projects.py
index 713072d..81db5ba 100644
--- a/jeepyb/projects.py
+++ b/jeepyb/projects.py
@@ -26,6 +26,8 @@
     - no-launchpad-blueprints
 """
 
+import ConfigParser
+
 import jeepyb.utils as u
 
 
@@ -56,6 +58,23 @@
     return _is_no_launchpad(project_full_name, 'blueprints')
 
 
+def has_github(project_full_name):
+    try:
+        if not registry.defaults.get('projects', 'has-github'):
+            # If the default is not to use GitHub...
+            try:
+                # ...then rely on the existence of a per-project option...
+                return 'has-github' in registry[project_full_name]['options']
+            except KeyError:
+                # ...and if it's not set, then still don't use it.
+                return False
+    # It's okay if the global option or even the section for this don't exist.
+    except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
+        pass
+    # If we got this far, we either explicitly or implicitly default to use it.
+    return True
+
+
 def is_direct_release(project_full_name):
     try:
         return 'direct-release' in registry[project_full_name]['options']
