Аналіз Gerrit на відповідність ключовим вимогам
Функціональні сценарії
-
Перевірка цілісності регламенту
-
Фіксація фактів початку, завершення та порушень цілісності регламенту
-
Тестування регламенту
-
Фіксація фактів початку, завершення та помилок тестування регламенту
Ключові вимоги
-
Використання Gerrit у якості сховища інформації про проведені перевірки та їх результати.
-
Налаштування інспекцій для перевірки та тестування внесених змін та збереження їх на рівні Gerrit.
-
Використання Gerrit для додавання результатів інспекції та тестування до внесених змін.
Аналіз на відповідність вимогам
Вимога | Підтримка |
---|---|
Фіксація результатів інспектування внесених змін |
Механізм Messages та Robot Comments |
Налаштування інспекції внесених змін |
Механізм Custom Labels |
Додавати коментарії до внесених змін |
Механізм Messages та Robot Comments |
Налаштування Gerrit
Для використання механізму Custom Labels в Gerrit необхідно сконфігурувати в Gerrit додаткові labels для конкретного репозиторію або для всіх (All-Projects). Конфігурація Custom Labels в Gerrit виконуэться в файлі project.config.
[project]
[receive]
requireContributorAgreement = false
requireSignedOffBy = false
requireChangeId = true
enableSignedPush = false
[submit]
mergeContent = true
action = fast forward only
[access "refs/*"]
read = group Administrators
read = group Registered Users
label-Verified = -1..+1 group Registered Users
[access "refs/for/*"]
addPatchSet = group Registered Users
[access "refs/for/refs/*"]
push = group Registered Users
pushMerge = group Registered Users
[access "refs/heads/*"]
create = group Administrators
create = group Project Owners
editTopicName = +force group Administrators
editTopicName = +force group Project Owners
forgeAuthor = group Registered Users
forgeCommitter = group Administrators
forgeCommitter = group Project Owners
label-Code-Review = -2..+2 group Administrators
label-Code-Review = -2..+2 group Project Owners
label-Code-Review = -2..+2 group Registered Users
push = group Administrators
push = group Project Owners
read = group Anonymous Users
revert = group Registered Users
submit = group Administrators
submit = group Project Owners
submit = group Registered Users
label-Verified = -1..+1 group Administrators
label-Verified = -1..+1 group Project Owners
label-Verified = -1..+1 group Registered Users
label-Test = -1..+1 group Administrators
label-Test = -1..+1 group Project Owners
label-Test = -1..+1 group Registered Users
label-Review = -1..+1 group Administrators
label-Review = -1..+1 group Project Owners
label-Review = -1..+1 group Registered Users
label-StaticAnalysis = -1..+1 group Administrators
label-StaticAnalysis = -1..+1 group Project Owners
label-StaticAnalysis = -1..+1 group Registered Users
[access "refs/meta/config"]
create = group Administrators
create = group Project Owners
create = group Registered Users
label-Code-Review = -2..+2 group Administrators
label-Code-Review = -2..+2 group Project Owners
label-Code-Review = -2..+2 group Registered Users
label-Code-Review = -1..+1 group Anonymous Users
push = group Administrators
push = group Project Owners
push = group Registered Users
read = group Administrators
read = group Project Owners
read = group Registered Users
submit = group Administrators
submit = group Anonymous Users
submit = group Project Owners
submit = group Registered Users
label-Verified = -1..+1 group Administrators
label-Verified = -1..+1 group Anonymous Users
label-Verified = -1..+1 group Project Owners
label-Verified = -1..+1 group Registered Users
label-Test = -1..+1 group Administrators
label-Test = -1..+1 group Project Owners
label-Test = -1..+1 group Registered Users
label-Review = -1..+1 group Administrators
label-Review = -1..+1 group Project Owners
label-Review = -1..+1 group Registered Users
label-StaticAnalysis = -1..+1 group Administrators
label-StaticAnalysis = -1..+1 group Project Owners
label-StaticAnalysis = -1..+1 group Registered Users
[access "refs/meta/version"]
read = group Anonymous Users
[access "refs/tags/*"]
create = group Administrators
create = group Project Owners
createSignedTag = group Administrators
createSignedTag = group Project Owners
createTag = group Administrators
createTag = group Project Owners
[label "Code-Review"]
function = MaxWithBlock
defaultValue = 0
copyMinScore = true
copyAllScoresOnTrivialRebase = true
value = -2 This shall not be submitted
value = -1 I would prefer this is not submitted as is
value = 0 No score
value = +1 Looks good to me, but someone else must approve
value = +2 Looks good to me, approved
[label "Verified"]
function = MaxWithBlock
value = -1 Fails
value = 0 No score
value = +1 Verified
copyAllScoresIfNoCodeChange = true
defaultValue = 0
[label "Test"]
function = MaxWithBlock
value = -1 Fails
value = 0 No score
value = +1 Test
copyAllScoresIfNoCodeChange = true
defaultValue = 0
[label "Review"]
function = MaxWithBlock
value = -1 Fails
value = 0 No score
value = +1 Review
copyAllScoresIfNoCodeChange = true
defaultValue = 0
[label "StaticAnalysis"]
function = MaxWithBlock
value = -1 Fails
value = 0 No score
value = +1 StaticAnalysis
copyAllScoresIfNoCodeChange = true
defaultValue = 0
[capability]
administrateServer = group Administrators
administrateServer = group Registered Users
priority = batch group Service Users
streamEvents = group Service Users