cherry-pick: refactor commit parsing code