Azure devops - серверные git-хуки
Как мы можем реализовать перехватчики на стороне сервера или подобное решение, чтобы ограничить git push в git server?
Например, мы хотим отключить отправку коммитов, содержащих файлы *.class.
5 ответов
Я не думаю, что Azure DevOps использует хуки.
Вы можете использовать Политики филиала, чтобы использовать внешнюю службу проверки (насколько я понимаю, для этого используются веб-хуки).
Дополнительно: статус этого пользовательского голосового запроса указывает на то, что выше приведен официальный ответ.
Но, возможно, простой случай будет .gitignore
а кодовые отзывы?
Я использую вариант сборки вместе с политиками в Azure DevOps. Это моеazure-pipelines.yml
файл:
---
trigger:
branches:
exclude:
- '*'
pool:
vmImage: 'ubuntu-latest'
steps:
- script: sudo apt-get install python3-pip
displayName: 'Install Python PIP'
- script: sudo apt-get install python3-setuptools
condition: succeeded()
displayName: Install Python SetupTools
- script: sudo pip3 install -r requirements.txt
condition: succeeded()
displayName: Install Python PIP Packages
- task: PythonScript@0
inputs:
scriptSource: filePath
scriptPath: hooks/lint_checker.py
pythonInterpreter: python3
condition: succeeded()
displayName: Lint Checker
Используйте политики веток и установите слияние только с PR, после этого прямая отправка в ветку будет отключена, вы можете пропустить эти политики для определенных пользователей (пользователей сборки или администраторов) h ttps:https://stackru.com/images/a64af3f66cb7253d03708816d01b8359f6e2f1cc.png
Я использую это решение, которое работает правильно и автоматически для всех пользователей.
Сочетание местныхgit hooks
иPre-Build events
вcsproj
который проверяет, есть лиpre-commit hook
в.git\hooks
а если нет, скопируйте его из папки хуков, которая находится в репозитории.
Выполнение:
В моем репо есть папка с крючками, содержащая 2 файла:
- setup-hooks.bat
- предварительная фиксация
настройки-крючки:
@echo off
echo Current location is: %cd%
:: Check if the .git/hooks directory exists
if not exist .git\hooks mkdir .git\hooks
:: Copy your hook scripts to the .git/hooks directory
copy hooks\pre-commit .git\hooks\pre-commit
echo Git hooks have been set up.
Этого можно добиться с помощью политики ветвления с фильтром пути. Вы можете добавить конвейер сборки с помощью PowerShell, который возвращает ошибочный код выхода.