diff --git a/zuul/configloader.py b/zuul/configloader.py
index b41dcc1..063889b 100644
--- a/zuul/configloader.py
+++ b/zuul/configloader.py
@@ -550,7 +550,11 @@
             # Get in-project-repo config files which have a restricted
             # set of options.
             url = source.getGitUrl(project)
-            # TODOv3(jeblair): config should be branch specific
+            # TODOv3(jeblair): config should be branch specific.  For
+            # each branch in the repo, get the zuul.yaml for that
+            # branch.  Remember the branch and then implicitly add a
+            # branch selector to each job there.
+            source.getProjectBranches(project)
             job = merger.getFiles(project.name, url, 'master',
                                   files=['.zuul.yaml'])
             job.project = project
diff --git a/zuul/connection/gerrit.py b/zuul/connection/gerrit.py
index bf77bff..5edc9a5 100644
--- a/zuul/connection/gerrit.py
+++ b/zuul/connection/gerrit.py
@@ -572,6 +572,12 @@
                                    (record.get('number'),))
         return changes
 
+    def getProjectBranches(self, project):
+        refs = self.getInfoRefs(project)
+        heads = [str(k[len('refs/heads/'):]) for k in refs.keys()
+                 if k.startswith('refs/heads/')]
+        return heads
+
     def addEvent(self, data):
         return self.event_queue.put((time.time(), data))
 
diff --git a/zuul/source/__init__.py b/zuul/source/__init__.py
index d92d47a..69dc162 100644
--- a/zuul/source/__init__.py
+++ b/zuul/source/__init__.py
@@ -63,3 +63,7 @@
     @abc.abstractmethod
     def getProject(self, name):
         """Get a project."""
+
+    @abc.abstractmethod
+    def getProjectBranches(self, project):
+        """Get branches for a project"""
diff --git a/zuul/source/gerrit.py b/zuul/source/gerrit.py
index 0d28898..8b85a46 100644
--- a/zuul/source/gerrit.py
+++ b/zuul/source/gerrit.py
@@ -41,6 +41,9 @@
     def getProjectOpenChanges(self, project):
         return self.connection.getProjectOpenChanges(project)
 
+    def getProjectBranches(self, project):
+        return self.connection.getProjectBranches(project)
+
     def getGitUrl(self, project):
         return self.connection.getGitUrl(project)
 
