def parse_commits(data):
raw_commits = RE_COMMIT.finditer(data)<EOL>for rc in raw_commits:<EOL><INDENT>full_commit = rc.groups()[<NUM_LIT:0>]<EOL>parts = RE_COMMIT.match(full_commit).groupdict()<EOL>parsed_commit = parse_commit(parts)<EOL>yield parsed_commit<EOL><DEDENT>
Accept a string and parse it into many commits.
    Parse and yield each commit-dictionary.
    This function is a generator.