Я пытаюсь автоматизировать настройку разрешений ветвления с помощью API-интерфейса bitbucket, но когда я пытаюсь добавить несколько правил, оно не перезаписывает старое правило (если оно существует). Я создаю 2 правила для репозитория для одной ветви, но если я повторно запустлю API с небольшим изменением в правиле, он добавит добавленное мной правило вместо того, чтобы редактировать текущее правило.
Я запускаю этот вызов:
curl -X POST -v -u "username:secret" -H "Content-Type: application/vnd.atl.bitbucket.bulk+json" https://bitbucket.example.com/rest/branch-permissions/2.0/projects/myproj/repos/myrepo/restrictions -d '[{ "type": "read-only","matcher": {"id": "master","displayId": "master","type": {"id":"PATTERN","name": "Pattern"}},"users": ["my.user"],"groups": ["StashAdmins"]},{ "type": "no-deletes","matcher": {"id": "master","displayId": "master","type": { "id":"PATTERN","name": "Pattern"}},"users": ["user.my"],"groups": []}]'
Затем я захотел перезаписать текущие права доступа к филиалам, поэтому я изменил первое правило с «только чтение» на «только запрос по запросу», поэтому я запустил:
curl -X POST -v -u "username:secret" -H "Content-Type: application/vnd.atl.bitbucket.bulk+json" https://bitbucket.example.com/rest/branch-permissions/2.0/projects/myproj/repos/myrepo/restrictions -d '[{ "type": "pull-request-only","matcher": {"id": "master","displayId": "master","type": {"id":"PATTERN","name": "Pattern"}},"users": ["my.user"],"groups": ["StashAdmins"]},{ "type": "no-deletes","matcher": {"id": "master","displayId": "master","type": { "id":"PATTERN","name": "Pattern"}},"users": ["user.my"],"groups": []}]'
но оно добавило новое правило (только по запросу) вместо редактирования всего правила.
Кто-нибудь знает, как принудительно переписать правило ограничения ветвлений?