(It would be worth keeping an overload without optional parameters too: `commitHeaderRewriter = commitHeaderRewriter ?? CommitHeader.From;` is beautiful.)