diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py
index 595451a..023ed35 100644
--- a/tests/test_scheduler.py
+++ b/tests/test_scheduler.py
@@ -601,7 +601,7 @@
     def release(self, regex=None):
         builds = self.running_builds[:]
         self.log.debug("releasing build %s (%s)" % (regex,
-                                                   len(self.running_builds)))
+                                                    len(self.running_builds)))
         for build in builds:
             if not regex or re.match(regex, build.name):
                 self.log.debug("releasing build %s" %
@@ -1775,7 +1775,7 @@
         self.assertEqual(A.data['status'], 'NEW')
         self.assertEqual(A.reported, 1)
         self.assertEqual(self.getJobFromHistory('project-merge').result,
-                        'SUCCESS')
+                         'SUCCESS')
         self.assertEqual(self.getJobFromHistory('project-test1').result,
                          'SUCCESS')
         self.assertEqual(self.getJobFromHistory('project-test2').result,
diff --git a/tox.ini b/tox.ini
index 90003e7..d34a745 100644
--- a/tox.ini
+++ b/tox.ini
@@ -33,6 +33,6 @@
 commands = zuul-server -c etc/zuul.conf-sample -t -l {posargs}
 
 [flake8]
-ignore = E123,E125,E128,H
+ignore = E123,E125,H
 show-source = True
 exclude = .venv,.tox,dist,doc,build,*.egg
diff --git a/zuul/merger.py b/zuul/merger.py
index d9199c8..8ab3ee8 100644
--- a/zuul/merger.py
+++ b/zuul/merger.py
@@ -123,7 +123,7 @@
     log = logging.getLogger("zuul.Merger")
 
     def __init__(self, trigger, working_root, push_refs, sshkey, email,
-            username):
+                 username):
         self.trigger = trigger
         self.repos = {}
         self.working_root = working_root
@@ -227,7 +227,7 @@
                                        target_ref=target_ref, mode=mode)
         # Sibling changes exist. Merge current change against newest sibling.
         elif (len(sibling_items) >= 2 and
-            sibling_items[-2].current_build_set.commit):
+              sibling_items[-2].current_build_set.commit):
             last_commit = sibling_items[-2].current_build_set.commit
             commit = self._mergeChange(item.change, last_commit,
                                        target_ref=target_ref, mode=mode)
diff --git a/zuul/scheduler.py b/zuul/scheduler.py
index b92f187..52df7db 100644
--- a/zuul/scheduler.py
+++ b/zuul/scheduler.py
@@ -428,8 +428,8 @@
                             continue
                         item.change.project = project
                         severed = item in shared_queue.severed_heads
-                        if not new_pipeline.manager.reEnqueueItem(item,
-                                severed=severed):
+                        if not new_pipeline.manager.reEnqueueItem(
+                            item, severed=severed):
                             items_to_remove.append(item)
                 builds_to_remove = []
                 for build, item in old_pipeline.manager.building_jobs.items():
