Контроль доступа пользователя в git - PullRequest
0 голосов
/ 27 апреля 2018

У меня простой вопрос. Мы используем Bitbucket в качестве поставщика git. Предположим, я менеджер команды разработчиков.

Я хочу, чтобы я был единственным, кто может объединить код с главной веткой.
Другие члены команды могут извлекать основную ветку и создавать новые ветви, но они не могут объединять код с главной веткой. Как я могу сделать это в Git?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

То, что вы просите, очень просто достичь, но это зависит от вашей работы.

Если вы используете git server, вы можете "защитить" нужную ветвь от объединения.


Защита веток под github

enter image description here


Защита веток Sunder Bitbucket

Здесь вам нужно будет выбрать запретить все изменения и себя как разрешенного пользователя

enter image description here enter image description here


Git hooks

Вы можете добиться этого, просто ловушка предварительного получения снова зависит от вашего сервера git

Например:

#!/bin/sh

# Extract the desired information from the log message
# You can also use the information passed out by the central repo if its available

# %ae = Extract the user email from the last commit (author email)
USER_EMAIL=$(git log -1 --format=format:%ae HEAD)

# %an = Extract the username from the last commit (author name)
USER_NAME=$(git log -1 --format=format:%an HEAD)

# or use those values if you have them:
# $USER, $GIT_AUTHOR_NAME, $GIT_AUTHOR_EMAIL

if [ "$1" != refs/heads/master ] && [ CHECK_FOR_USER_NAME_OR_EMAIL ] {
    echo "ERROR:  you are not allowed to update master" >&2
    exit 1
}
0 голосов
/ 27 апреля 2018

По моему опыту, лучший способ сделать это состоит в том, чтобы позволить команде только разветвлять репозиторий, тогда как при чтении функции они отправляют запрос на извлечение (Github) или запрос на слияние (Bitbucket).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...