Могу ли я указать конкретную ветвь на GitHub pull-only (только для чтения)?

Есть ли способ установить конкретную ветвь в GitHub для pull-only (только для чтения) или я могу установить ее только для всего репозитория?

Ответ 1

В Github нет способов разрешений на уровне ветвей, но проект gitolite поддерживает то, что вы ищете.

Ответ 2

Вы действительно можете (сорт), начиная с сентября 2015 года.

Это потому, что у вас теперь есть Защищенные ветки и требуемые проверки состояния" (3 сентября 2015 г.), что позволяет защитить филиал

  • против принудительного нажатия
  • против удаления
  • против объединенных изменений до тех пор, пока не пройдут проверки статуса

Как упоминалось в обсуждении twitter:

@github nice, а как насчет защиты от простого нажатия и разрешить только работу с помощью запросов на передачу?

Адам Робен @aroben @lowl4tency Вы можете сделать это через Status API:
создайте статус "success" только для фиксации в PR, затем отметьте этот статус как требуется
.

https://cloud.githubusercontent.com/assets/25792/9596474/27db3ce6-502a- 11e5-9b19-5b47a8addc65.png


С ноября 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

Начиная с марта 2016 года, Организации могут теперь указать, какие члены и команды могут нажать на защищенную ветвь.

https://cloud.githubusercontent.com/assets/4719/14140705/ed98abac-f67a- 11e5-951e-b48c842fb77f.png

Ответ 3

Начиная с 30 марта 2016 года, GitHub поддерживает разрешения ветки без каких-либо дополнительных трюков, таких как требуемые проверки состояния: https://github.com/blog/2137-protected-branches-improvements