code: def flush_commit(self, commits, repos=tuple()):
          
          req = proto.FlushCommitRequest(commit=[commit_from(c) for c in commits],
                                         to_repo=[proto.Repo(name=r) for r in repos])
          res = self.stub.FlushCommit(req, metadata=self.metadata)
          return res
docs: Blocks until all of the commits which have a set of commits as
          provenance have finished. For commits to be considered they must have
          all of the specified commits as provenance. This in effect waits for
          all of the jobs that are triggered by a set of commits to complete.
          It returns an error if any of the commits it's waiting on are
          cancelled due to one of the jobs encountering an error during runtime.
          Note that it's never necessary to call FlushCommit to run jobs,
          they'll run no matter what, FlushCommit just allows you to wait for
          them to complete and see their output once they do. This returns an
          iterator of CommitInfo objects.
  
          Params:
          * commits: A commit or a list of commits to wait on.
          * repos: Optional. Only the commits up to and including those repos.
          will be considered, otherwise all repos are considered.