I'm a little concerned about the situation created here in which post_validate_git_snapshot create_snapshot_branch must be run after create_snapshot_branch or else the user will have a tmp directory hanging out.  I think those two methods should be moved into one class, made private, and then a public method that combines the two be what's used here.