Как построить их работу так, чтобы в основной репозиторий всё попало одним пулл-реквестом (желательно от программиста)?
Непонятно, какая при этом решается задача. Просто эстетика? Или страх неконсистентного пул-реквеста?
Если на проекте правильно простроено авто-тестирование - то вы можете коммитить маленькими кусочками и проект всегда будет хорош для использования. И откат на шаг назад вам будет сделать легче.
Если нет - то тогда вам нужен некий внутренний тестировщик который может что-то быстро проверить и поставить тег что дескыть здесь окей и можно делать промежуточный релиз-кандидат или релиз.