Есть ли способ установить конкретную ветвь в GitHub для pull-only (только для чтения) или я могу установить ее только для всего репозитория?
Могу ли я указать конкретную ветвь на GitHub pull-only (только для чтения)?
Ответ 1
В Github нет способов разрешений на уровне ветвей, но проект gitolite поддерживает то, что вы ищете.
Ответ 2
Вы действительно можете (сорт), начиная с сентября 2015 года.
Это потому, что у вас теперь есть Защищенные ветки и требуемые проверки состояния" (3 сентября 2015 г.), что позволяет защитить филиал
- против принудительного нажатия
- против удаления
- против объединенных изменений до тех пор, пока не пройдут проверки статуса
Как упоминалось в обсуждении twitter:
@github nice, а как насчет защиты от простого нажатия и разрешить только работу с помощью запросов на передачу?
Адам Робен @aroben @lowl4tency Вы можете сделать это через Status API:
создайте статус "success
" только для фиксации в PR, затем отметьте этот статус как требуется.
С ноября 2015 г. вы можете защитить ветвь с помощью API:
curl "https://api.github.com/repos/github/hubot/branches/master" \
-XPATCH \
-H 'Authorization: token TOKEN'
-H "Accept: application/vnd.github.loki-preview" \
-d '{
"protection": {
"enabled": true,
"required_status_checks": {
"enforcement_level": "everyone",
"contexts": [
"required-status"
]
}
}
}'
Как я могу попробовать?
Чтобы получить доступ к этой функции в течение периода предварительного просмотра, в заголовке Accept вы должны указать следующий настраиваемый тип носителя:
application/vnd.github.loki-preview+json
Ответ 3
Начиная с 30 марта 2016 года, GitHub поддерживает разрешения ветки без каких-либо дополнительных трюков, таких как требуемые проверки состояния: https://github.com/blog/2137-protected-branches-improvements