def get_authors(repo_path, from_commit):
repo = dulwich.repo.Repo(repo_path)<EOL>refs = get_refs(repo)<EOL>start_including = False<EOL>authors = set()<EOL>if from_commit is None:<EOL><INDENT>start_including = True<EOL><DEDENT>for commit_sha, children in reversed(<EOL>get_children_per_first_parent(repo_path).items()<EOL>):<EOL><INDENT>commit = get_repo_object(repo, commit_sha)<EOL>if (<EOL>start_including or commit_sha.startswith(from_commit) or<EOL>fuzzy_matches_refs(from_commit, refs.get(commit_sha, []))<EOL>):<EOL><INDENT>authors.add(commit.author.decode())<EOL>for child in children:<EOL><INDENT>authors.add(child.author.decode())<EOL><DEDENT>start_including = True<EOL><DEDENT><DEDENT>return '<STR_LIT:\n>'.join(sorted(authors))<EOL>
Given a repo and optionally a base revision to start from, will return
the list of authors.