Loading project-automation/gitlab/recommended-settings.ymldeleted 100644 → 0 +0 −36 Original line number Diff line number Diff line --- # This file contains recommended settings for a GitLab project. # Based on values given by the GitLab API. merge_requests_enabled: recommended: true hint: Enable merge requests. merge_method: recommended: merge hint: To ensure a full history of what happened with your code, never use fast forward. Set 'Merge method' to 'Merge commit' only_allow_merge_if_pipeline_succeeds: recommended: true hint: Only allow merging when the pipeline succeeds, to ensure no broken code can be merged. only_allow_merge_if_all_discussions_are_resolved: recommended: true hint: Ensure all discussions are resolved before merging. Tedious perhaps, but reduces mistakes. allow_merge_on_skipped_pipeline: recommended: false hint: Do not allow merging on skipped pipelines. remove_source_branch_after_merge: recommended: true hint: To keep your repo clean, remove source branches when merge requests are merged. # approvals_before_merge: # recommended: higher than # hint: ToDo. Needs different checking logic autoclose_referenced_issues: recommended: true hint: Set auto close referenced issues. project-automation/gitlab/recommended.yml +40 −9 Original line number Diff line number Diff line Loading @@ -15,20 +15,51 @@ gitlab:recommended: entrypoint: [""] variables: GIT_STRATEGY: none RECOMMENDED_SETTINGS: | merge_requests_enabled: recommended: true hint: Enable merge requests. merge_method: recommended: merge hint: To ensure a full history of what happened with your code, never use fast forward. Set 'Merge method' to 'Merge commit' only_allow_merge_if_pipeline_succeeds: recommended: true hint: Only allow merging when the pipeline succeeds, to ensure no broken code can be merged. only_allow_merge_if_all_discussions_are_resolved: recommended: true hint: Ensure all discussions are resolved before merging. Tedious perhaps, but reduces mistakes. allow_merge_on_skipped_pipeline: recommended: false hint: Do not allow merging on skipped pipelines. remove_source_branch_after_merge: recommended: true hint: To keep your repo clean, remove source branches when merge requests are merged. autoclose_referenced_issues: recommended: true hint: Set auto close referenced issues. script: - apk add curl - apk add -q curl - dasel --version - curl -sSLf -o .settings.yml https://gitlab.com/just-ci/templates/-/raw/v6.28.3/project-automation/gitlab/recommended-settings.yml - | curl -sSLf -H "PRIVATE-TOKEN: ${GL_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}" -o current_project.json - echo "${RECOMMENDED_SETTINGS}" > settings.yaml - > curl -sSLf -H "PRIVATE-TOKEN: ${GL_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}" -o project.json - let COUNT=0 || true - KEYS="$(dasel -f settings.yaml "keys().all()" -w -)" - | for KEY in $(dasel -f .settings.yml -r yaml "keys().all()" -w -); do for KEY in ${KEYS}; do printf "[*] Checking ${KEY}..." CURRENT=$(dasel -f current_project.json -r json "${KEY}" -w -) RECOMMENDED=$(dasel -f .settings.yml "${KEY}.recommended") HINT=$(dasel -f .settings.yml "${KEY}.hint") CURRENT=$(dasel -f project.json -r json "${KEY}" -w - || echo "error") RECOMMENDED=$(dasel -f settings.yaml "${KEY}.recommended") HINT=$(dasel -f settings.yaml "${KEY}.hint") if [ "${CURRENT}" != "${RECOMMENDED}" ]; then echo -e " \e[31mrecommended value not set\e[0m. Current value is: ${CURRENT}. Expected value is: ${RECOMMENDED}." echo "${HINT}" Loading tbump.toml +0 −3 Original line number Diff line number Diff line Loading @@ -21,8 +21,5 @@ search = '-/raw/v{current_version}/project-automation' [[file]] src = "project-automation/semantic-release.yml" [[file]] src = "project-automation/gitlab/recommended.yml" search = '-/raw/v{current_version}/project-automation' [[file]] src = "pipelines/project-automation.yml" search = "UPDATE_CHECK_CURRENT_VERSION: v{current_version}" Loading
project-automation/gitlab/recommended-settings.ymldeleted 100644 → 0 +0 −36 Original line number Diff line number Diff line --- # This file contains recommended settings for a GitLab project. # Based on values given by the GitLab API. merge_requests_enabled: recommended: true hint: Enable merge requests. merge_method: recommended: merge hint: To ensure a full history of what happened with your code, never use fast forward. Set 'Merge method' to 'Merge commit' only_allow_merge_if_pipeline_succeeds: recommended: true hint: Only allow merging when the pipeline succeeds, to ensure no broken code can be merged. only_allow_merge_if_all_discussions_are_resolved: recommended: true hint: Ensure all discussions are resolved before merging. Tedious perhaps, but reduces mistakes. allow_merge_on_skipped_pipeline: recommended: false hint: Do not allow merging on skipped pipelines. remove_source_branch_after_merge: recommended: true hint: To keep your repo clean, remove source branches when merge requests are merged. # approvals_before_merge: # recommended: higher than # hint: ToDo. Needs different checking logic autoclose_referenced_issues: recommended: true hint: Set auto close referenced issues.
project-automation/gitlab/recommended.yml +40 −9 Original line number Diff line number Diff line Loading @@ -15,20 +15,51 @@ gitlab:recommended: entrypoint: [""] variables: GIT_STRATEGY: none RECOMMENDED_SETTINGS: | merge_requests_enabled: recommended: true hint: Enable merge requests. merge_method: recommended: merge hint: To ensure a full history of what happened with your code, never use fast forward. Set 'Merge method' to 'Merge commit' only_allow_merge_if_pipeline_succeeds: recommended: true hint: Only allow merging when the pipeline succeeds, to ensure no broken code can be merged. only_allow_merge_if_all_discussions_are_resolved: recommended: true hint: Ensure all discussions are resolved before merging. Tedious perhaps, but reduces mistakes. allow_merge_on_skipped_pipeline: recommended: false hint: Do not allow merging on skipped pipelines. remove_source_branch_after_merge: recommended: true hint: To keep your repo clean, remove source branches when merge requests are merged. autoclose_referenced_issues: recommended: true hint: Set auto close referenced issues. script: - apk add curl - apk add -q curl - dasel --version - curl -sSLf -o .settings.yml https://gitlab.com/just-ci/templates/-/raw/v6.28.3/project-automation/gitlab/recommended-settings.yml - | curl -sSLf -H "PRIVATE-TOKEN: ${GL_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}" -o current_project.json - echo "${RECOMMENDED_SETTINGS}" > settings.yaml - > curl -sSLf -H "PRIVATE-TOKEN: ${GL_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}" -o project.json - let COUNT=0 || true - KEYS="$(dasel -f settings.yaml "keys().all()" -w -)" - | for KEY in $(dasel -f .settings.yml -r yaml "keys().all()" -w -); do for KEY in ${KEYS}; do printf "[*] Checking ${KEY}..." CURRENT=$(dasel -f current_project.json -r json "${KEY}" -w -) RECOMMENDED=$(dasel -f .settings.yml "${KEY}.recommended") HINT=$(dasel -f .settings.yml "${KEY}.hint") CURRENT=$(dasel -f project.json -r json "${KEY}" -w - || echo "error") RECOMMENDED=$(dasel -f settings.yaml "${KEY}.recommended") HINT=$(dasel -f settings.yaml "${KEY}.hint") if [ "${CURRENT}" != "${RECOMMENDED}" ]; then echo -e " \e[31mrecommended value not set\e[0m. Current value is: ${CURRENT}. Expected value is: ${RECOMMENDED}." echo "${HINT}" Loading
tbump.toml +0 −3 Original line number Diff line number Diff line Loading @@ -21,8 +21,5 @@ search = '-/raw/v{current_version}/project-automation' [[file]] src = "project-automation/semantic-release.yml" [[file]] src = "project-automation/gitlab/recommended.yml" search = '-/raw/v{current_version}/project-automation' [[file]] src = "pipelines/project-automation.yml" search = "UPDATE_CHECK_CURRENT_VERSION: v{current_version}"