gitlabform 5.2.0__tar.gz → 5.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gitlabform-5.4.0/.coveragerc +15 -0
- gitlabform-5.4.0/.dockerignore +46 -0
- gitlabform-5.4.0/.git-blame-ignore-revs +4 -0
- gitlabform-5.4.0/.github/CODEOWNERS +1 -0
- gitlabform-5.4.0/.github/ISSUE_TEMPLATE/bug_report.md +20 -0
- gitlabform-5.4.0/.github/ISSUE_TEMPLATE/feature_request.md +10 -0
- gitlabform-5.4.0/.github/ISSUE_TEMPLATE/question-or-other-issue.md +10 -0
- gitlabform-5.4.0/.github/actions/setup-uv-local/README.md +42 -0
- gitlabform-5.4.0/.github/actions/setup-uv-local/action.yml +30 -0
- gitlabform-5.4.0/.github/dependabot.yml +52 -0
- gitlabform-5.4.0/.github/workflows/_main.yml +48 -0
- gitlabform-5.4.0/.github/workflows/_releases.yml +160 -0
- gitlabform-5.4.0/.github/workflows/docs.yml +28 -0
- gitlabform-5.4.0/.github/workflows/linters.yml +67 -0
- gitlabform-5.4.0/.github/workflows/pr_on_fork.yml +29 -0
- gitlabform-5.4.0/.github/workflows/pr_on_main_repo.yml +29 -0
- gitlabform-5.4.0/.github/workflows/prs.yml +144 -0
- gitlabform-5.4.0/.github/workflows/tests-premium.yml +56 -0
- gitlabform-5.4.0/.github/workflows/tests-standard.yml +176 -0
- gitlabform-5.4.0/.github/workflows/tests-ultimate.yml +59 -0
- gitlabform-5.4.0/.gitignore +74 -0
- gitlabform-5.4.0/.lgtm.yml +7 -0
- gitlabform-5.4.0/.mypy.ini +35 -0
- gitlabform-5.4.0/.overrides/gitlabform-logo-favicon.png +0 -0
- gitlabform-5.4.0/.overrides/gitlabform-logo-favicon.svg +208 -0
- gitlabform-5.4.0/.python-version +1 -0
- gitlabform-5.4.0/CONTRIBUTING.md +1 -0
- gitlabform-5.4.0/Dockerfile +35 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/PKG-INFO +15 -32
- gitlabform-5.4.0/codecov.yml +29 -0
- gitlabform-5.4.0/dev/__init__.py +1 -0
- gitlabform-5.4.0/dev/common.py +70 -0
- gitlabform-5.4.0/dev/docs.py +23 -0
- gitlabform-5.4.0/dev/env.py +37 -0
- gitlabform-5.4.0/dev/gitlab/await-healthy.sh +16 -0
- gitlabform-5.4.0/dev/gitlab/gitlab.rb +41 -0
- gitlabform-5.4.0/dev/gitlab/healthcheck-and-setup.sh +42 -0
- gitlabform-5.4.0/dev/gitlab/run_gitlab_in_docker.sh +236 -0
- gitlabform-5.4.0/dev/gitlab/tests.Dockerfile +9 -0
- gitlabform-5.4.0/dev/infra.py +56 -0
- gitlabform-5.4.0/dev/main.py +316 -0
- gitlabform-5.4.0/dev/qa.py +77 -0
- gitlabform-5.4.0/dev/release.py +126 -0
- gitlabform-5.4.0/docs/automation.md +117 -0
- gitlabform-5.4.0/docs/changelog.md +1455 -0
- gitlabform-5.4.0/docs/contrib/coding_guidelines.md +14 -0
- gitlabform-5.4.0/docs/contrib/implementation_design.md +131 -0
- gitlabform-5.4.0/docs/contrib/index.md +45 -0
- gitlabform-5.4.0/docs/contrib/local_development.md +264 -0
- gitlabform-5.4.0/docs/contrib/releases.md +23 -0
- gitlabform-5.4.0/docs/contrib/workflows.md +21 -0
- gitlabform-5.4.0/docs/features.md +46 -0
- gitlabform-5.4.0/docs/images/egnyte-logo.svg +7 -0
- gitlabform-5.4.0/docs/images/elastic-path-logo.svg +20 -0
- gitlabform-5.4.0/docs/images/gitlabform-logo-square.png +0 -0
- gitlabform-5.4.0/docs/images/gitlabform-logo.png +0 -0
- gitlabform-5.4.0/docs/images/gitlabform-logo.svg +288 -0
- gitlabform-5.4.0/docs/images/group-ldap-links-provider.png +0 -0
- gitlabform-5.4.0/docs/images/liquidlight-logo.svg +1 -0
- gitlabform-5.4.0/docs/images/roche-logo.png +0 -0
- gitlabform-5.4.0/docs/images/stroeer-online-marketing-logo.svg +1 -0
- gitlabform-5.4.0/docs/index.md +126 -0
- gitlabform-5.4.0/docs/installation.md +44 -0
- gitlabform-5.4.0/docs/reference/archive_unarchive.md +18 -0
- gitlabform-5.4.0/docs/reference/avatar.md +43 -0
- gitlabform-5.4.0/docs/reference/badges.md +52 -0
- gitlabform-5.4.0/docs/reference/ci_cd_variables.md +119 -0
- gitlabform-5.4.0/docs/reference/deploy_keys.md +41 -0
- gitlabform-5.4.0/docs/reference/files.md +96 -0
- gitlabform-5.4.0/docs/reference/group_ldap_links.md +36 -0
- gitlabform-5.4.0/docs/reference/group_saml_links.md +33 -0
- gitlabform-5.4.0/docs/reference/index.md +336 -0
- gitlabform-5.4.0/docs/reference/integrations.md +24 -0
- gitlabform-5.4.0/docs/reference/job_token_scope.md +46 -0
- gitlabform-5.4.0/docs/reference/labels.md +66 -0
- gitlabform-5.4.0/docs/reference/members.md +138 -0
- gitlabform-5.4.0/docs/reference/merge_requests.md +124 -0
- gitlabform-5.4.0/docs/reference/pipeline_schedules.md +98 -0
- gitlabform-5.4.0/docs/reference/project_security_settings.md +21 -0
- gitlabform-5.4.0/docs/reference/project_transfer.md +95 -0
- gitlabform-5.4.0/docs/reference/protected_branches.md +109 -0
- gitlabform-5.4.0/docs/reference/protected_environments.md +32 -0
- gitlabform-5.4.0/docs/reference/push_mirrors.md +179 -0
- gitlabform-5.4.0/docs/reference/push_rules.md +45 -0
- gitlabform-5.4.0/docs/reference/resource_groups.md +32 -0
- gitlabform-5.4.0/docs/reference/settings.md +105 -0
- gitlabform-5.4.0/docs/reference/tags_protection.md +68 -0
- gitlabform-5.4.0/docs/reference/webhooks.md +81 -0
- gitlabform-5.4.0/docs/requirements.md +16 -0
- gitlabform-5.4.0/docs/running.md +75 -0
- gitlabform-5.4.0/docs/similar_apps.md +49 -0
- gitlabform-5.4.0/docs/upgrade.md +203 -0
- gitlabform-5.4.0/gitlab-config/config.yml +9 -0
- gitlabform-5.4.0/gitlab-config/gitlab-config.md +11 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/__init__.py +13 -2
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/__init__.py +1 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/lists/__init__.py +1 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/lists/projects.py +41 -14
- gitlabform-5.4.0/mkdocs.yml +93 -0
- gitlabform-5.4.0/prek.toml +18 -0
- gitlabform-5.4.0/pyproject.toml +151 -0
- gitlabform-5.4.0/tbump.toml +45 -0
- gitlabform-5.4.0/tests/__init__.py +0 -0
- gitlabform-5.4.0/tests/acceptance/__init__.py +366 -0
- gitlabform-5.4.0/tests/acceptance/conftest.py +538 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_branches.py +667 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_branches_users_case_insensitive.py +63 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_group_ldap_links.py +122 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_group_push_rules.py +44 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_group_saml_links.py +85 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_group_settings.py +22 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_group_variables.py +383 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_merge_request_approval_rules.py +548 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_merge_request_approvals_settings.py +59 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_protected_environments.py +231 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_push_rules.py +90 -0
- gitlabform-5.4.0/tests/acceptance/premium/test_tags.py +238 -0
- gitlabform-5.4.0/tests/acceptance/standard/__init__.py +0 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_application_settings.py +91 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_archive_project.py +88 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_badges.py +164 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_branches.py +403 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_deploy_keys.py +216 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_deploy_keys_all_projects.py +37 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_files.py +458 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_files_templates.py +94 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_avatar.py +294 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_badges.py +125 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_hooks.py +252 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_labels.py +338 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_members_case_insensitive.py +111 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_members_groups.py +248 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_members_users.py +284 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_settings.py +33 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_group_variables.py +423 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_hooks.py +261 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_integrations.py +278 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_job_token_scope.py +446 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_members.py +102 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_members_add_group.py +59 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_members_enforce.py +78 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_project_avatar.py +296 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_project_group_members_case_insensitive.py +60 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_project_labels.py +167 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_project_members_case_insensitve.py +114 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_project_settings.py +142 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_project_variables.py +525 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_remote_mirrors.py +831 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_resource_groups.py +116 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_running.py +99 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_scheduled_for_deletion_project.py +44 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_schedules.py +428 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_tags.py +175 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_token_from_config.py +40 -0
- gitlabform-5.4.0/tests/acceptance/standard/test_transfer_project.py +349 -0
- gitlabform-5.4.0/tests/acceptance/ultimate/test_group_members.py +129 -0
- gitlabform-5.4.0/tests/acceptance/ultimate/test_group_settings.py +44 -0
- gitlabform-5.4.0/tests/acceptance/ultimate/test_members.py +201 -0
- gitlabform-5.4.0/tests/acceptance/ultimate/test_project_security_settings.py +32 -0
- gitlabform-5.4.0/tests/acceptance/ultimate/test_project_settings.py +70 -0
- gitlabform-5.4.0/tests/unit/__init__.py +0 -0
- gitlabform-5.4.0/tests/unit/configuration/__init__.py +0 -0
- gitlabform-5.4.0/tests/unit/configuration/test_case_sensitivity.py +94 -0
- gitlabform-5.4.0/tests/unit/configuration/test_inheritance_break_projects_and_groups.py +233 -0
- gitlabform-5.4.0/tests/unit/configuration/test_inheritance_break_subgroups.py +136 -0
- gitlabform-5.4.0/tests/unit/configuration/test_inheritance_break_validation.py +126 -0
- gitlabform-5.4.0/tests/unit/configuration/test_projects_and_groups.py +141 -0
- gitlabform-5.4.0/tests/unit/configuration/test_skip_groups_skip_projects.py +101 -0
- gitlabform-5.4.0/tests/unit/configuration/test_subgroups.py +116 -0
- gitlabform-5.4.0/tests/unit/configuration/test_yaml_version.py +36 -0
- gitlabform-5.4.0/tests/unit/configuration/transform/test_access_level_transformer.py +205 -0
- gitlabform-5.4.0/tests/unit/configuration/transform/test_group_transformer.py +50 -0
- gitlabform-5.4.0/tests/unit/configuration/transform/test_implicit_name_transformer.py +50 -0
- gitlabform-5.4.0/tests/unit/configuration/transform/test_user_and_group_transformers.py +80 -0
- gitlabform-5.4.0/tests/unit/configuration/transform/test_user_transformer.py +99 -0
- gitlabform-5.4.0/tests/unit/gitlab/test_core.py +130 -0
- gitlabform-5.4.0/tests/unit/gitlab/test_python_gitlab.py +234 -0
- gitlabform-5.4.0/tests/unit/processors/__init__.py +0 -0
- gitlabform-5.4.0/tests/unit/processors/test_abstract_processor.py +35 -0
- gitlabform-5.4.0/tests/unit/processors/test_abstract_processors.py +69 -0
- gitlabform-5.4.0/tests/unit/processors/test_branches_processor.py +212 -0
- gitlabform-5.4.0/tests/unit/processors/test_difference_logger.py +71 -0
- gitlabform-5.4.0/tests/unit/processors/test_schedules_processor_extended_cron_pattern.py +37 -0
- gitlabform-5.4.0/tests/unit/test_access_levels.py +19 -0
- gitlabform-5.4.0/tests/unit/test_non_empty_configs_provider.py +29 -0
- gitlabform-5.4.0/tests/unit/test_parse_args.py +43 -0
- gitlabform-5.4.0/tests/unit/test_projects_provider.py +309 -0
- gitlabform-5.4.0/tests/unit/test_utils.py +20 -0
- gitlabform-5.4.0/uv.lock +2278 -0
- gitlabform-5.2.0/gitlabform.egg-info/PKG-INFO +0 -71
- gitlabform-5.2.0/gitlabform.egg-info/SOURCES.txt +0 -83
- gitlabform-5.2.0/gitlabform.egg-info/dependency_links.txt +0 -1
- gitlabform-5.2.0/gitlabform.egg-info/entry_points.txt +0 -2
- gitlabform-5.2.0/gitlabform.egg-info/requires.txt +0 -31
- gitlabform-5.2.0/gitlabform.egg-info/top_level.txt +0 -1
- gitlabform-5.2.0/pyproject.toml +0 -87
- gitlabform-5.2.0/setup.cfg +0 -4
- {gitlabform-5.2.0 → gitlabform-5.4.0}/LICENSE +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/README.md +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/configuration/__init__.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/configuration/common.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/configuration/core.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/configuration/groups.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/configuration/projects.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/configuration/transform.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/constants.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/commits.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/core.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/group_badges.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/group_ldap_links.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/groups.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/merge_requests.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/pipelines.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/project_badges.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/project_deploy_keys.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/project_merge_requests_approvals.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/project_protected_environments.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/projects.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/python_gitlab.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/gitlab/variables.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/lists/filter.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/lists/groups.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/output.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/__init__.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/abstract_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/application/__init__.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/application/application_settings_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/defining_keys.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/__init__.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_badges_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_hooks_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_labels_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_ldap_links_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_members_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_push_rules_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_saml_links_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_settings_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/group/group_variables_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/multiple_entities_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/__init__.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/badges_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/branches_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/deploy_keys_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/files_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/hooks_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/integrations_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/job_token_scope_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/members_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/merge_requests_approval_rules.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/merge_requests_approvals.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/project_labels_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/project_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/project_push_rules_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/project_security_settings.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/project_settings_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/project_variables_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/remote_mirrors_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/resource_groups_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/schedules_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/project/tags_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/shared/__init__.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/shared/protected_environments_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/util/__init__.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/util/decorators.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/util/difference_logger.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/util/labels_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/processors/util/variables_processor.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/run.py +0 -0
- {gitlabform-5.2.0 → gitlabform-5.4.0}/gitlabform/util.py +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Git
|
|
2
|
+
.git
|
|
3
|
+
.gitignore
|
|
4
|
+
.git-blame-ignore-revs
|
|
5
|
+
|
|
6
|
+
# Docker
|
|
7
|
+
.dockerignore
|
|
8
|
+
Dockerfile
|
|
9
|
+
|
|
10
|
+
# Python cache and artifacts
|
|
11
|
+
*.pyc
|
|
12
|
+
__pycache__/
|
|
13
|
+
*.egg-info
|
|
14
|
+
.mypy_cache/
|
|
15
|
+
.pytest_cache/
|
|
16
|
+
|
|
17
|
+
# Test, dev, and local environments
|
|
18
|
+
tests/
|
|
19
|
+
dev/
|
|
20
|
+
venv/
|
|
21
|
+
.venv/
|
|
22
|
+
|
|
23
|
+
# Documentation
|
|
24
|
+
docs/
|
|
25
|
+
.overrides/
|
|
26
|
+
mkdocs.yml
|
|
27
|
+
*.txt
|
|
28
|
+
*.md
|
|
29
|
+
|
|
30
|
+
# CI/CD and project config
|
|
31
|
+
.github/
|
|
32
|
+
.pre-commit-config.yaml
|
|
33
|
+
.coveragerc
|
|
34
|
+
codecov.yml
|
|
35
|
+
.lgtm.yml
|
|
36
|
+
.mypy.ini
|
|
37
|
+
coverage.xml
|
|
38
|
+
tbump.toml
|
|
39
|
+
|
|
40
|
+
# Editor/IDE config
|
|
41
|
+
.idea/
|
|
42
|
+
.vscode/
|
|
43
|
+
.cursor/
|
|
44
|
+
|
|
45
|
+
# Exceptions
|
|
46
|
+
!README.md
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @amimas @gdubicki @jimisola @TimKnight-DWP
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: ''
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
|
|
12
|
+
A clear and concise description of what the bug is.
|
|
13
|
+
|
|
14
|
+
**GitLabForm version**
|
|
15
|
+
|
|
16
|
+
Output of `gitlabform -V`
|
|
17
|
+
|
|
18
|
+
**GitLab version**
|
|
19
|
+
|
|
20
|
+
F.e. `13.12.4-ee`
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Setup uv Local
|
|
2
|
+
|
|
3
|
+
This internal composite action centrally manages the installation of `uv` and configures the environment variables required for the project's toolchain.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Instead of repeating installation scripts and version pinning in every workflow file, this action provides a single source of truth for:
|
|
8
|
+
- The pinned `uv` version (currently `0.11.7`).
|
|
9
|
+
- Option to set the Python version used in CI job.
|
|
10
|
+
- Cross-platform installation logic (handling both Unix and Windows runners).
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
| Name | Description | Default | Required |
|
|
15
|
+
| :--- | :--- | :--- | :--- |
|
|
16
|
+
| `python-version` | The Python version to use (e.g., `3.12`, `3.14`). | `3.14` | No |
|
|
17
|
+
|
|
18
|
+
## Environment Variables Set
|
|
19
|
+
|
|
20
|
+
This action exports the following variables to the `$GITHUB_ENV`, making them available to all subsequent steps in the job:
|
|
21
|
+
- `UV_PYTHON`: The version of Python `uv` should use for toolchain management.
|
|
22
|
+
- `UV_VERSION`: The pinned version of `uv` installed.
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
To use this action in a workflow, reference it by its local path:
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
jobs:
|
|
30
|
+
my-job:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v6
|
|
34
|
+
|
|
35
|
+
- name: Configure uv environment
|
|
36
|
+
uses: ./.github/actions/setup-uv-local
|
|
37
|
+
with:
|
|
38
|
+
python-version: '3.12'
|
|
39
|
+
|
|
40
|
+
- name: Install dependencies
|
|
41
|
+
run: uv sync
|
|
42
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: 'Setup uv Local'
|
|
2
|
+
description: 'Centrally manages uv installation and versioning'
|
|
3
|
+
inputs:
|
|
4
|
+
python-version:
|
|
5
|
+
description: 'Python version to use. Defaults to 3.14 if not provided.'
|
|
6
|
+
required: false
|
|
7
|
+
default: '3.14'
|
|
8
|
+
runs:
|
|
9
|
+
using: 'composite'
|
|
10
|
+
steps:
|
|
11
|
+
- name: Export UV_PYTHON to environment
|
|
12
|
+
shell: bash
|
|
13
|
+
run: |
|
|
14
|
+
echo "UV_PYTHON=${{ inputs.python-version }}" >> $GITHUB_ENV
|
|
15
|
+
echo "UV_VERSION=0.11.7" >> $GITHUB_ENV
|
|
16
|
+
|
|
17
|
+
- name: Install uv (Unix)
|
|
18
|
+
if: runner.os != 'Windows'
|
|
19
|
+
shell: bash
|
|
20
|
+
run: |
|
|
21
|
+
curl -LsSf https://astral.sh/uv/${{ env.UV_VERSION }}/install.sh | sh
|
|
22
|
+
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
|
23
|
+
|
|
24
|
+
- name: Install uv (Windows)
|
|
25
|
+
if: runner.os == 'Windows'
|
|
26
|
+
shell: pwsh
|
|
27
|
+
run: |
|
|
28
|
+
$env:UV_VERSION = "${{ env.UV_VERSION }}"
|
|
29
|
+
irm https://astral.sh/uv/install.ps1 | iex
|
|
30
|
+
echo "$HOME\.local\bin" >> $env:GITHUB_PATH
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
|
3
|
+
# Please see the documentation for all configuration options:
|
|
4
|
+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
5
|
+
|
|
6
|
+
version: 2
|
|
7
|
+
updates:
|
|
8
|
+
- package-ecosystem: "docker"
|
|
9
|
+
directory: "/"
|
|
10
|
+
schedule:
|
|
11
|
+
interval: "weekly"
|
|
12
|
+
- package-ecosystem: "github-actions"
|
|
13
|
+
directory: "/"
|
|
14
|
+
schedule:
|
|
15
|
+
interval: "monthly"
|
|
16
|
+
- package-ecosystem: "uv"
|
|
17
|
+
directory: "/"
|
|
18
|
+
schedule:
|
|
19
|
+
interval: "weekly"
|
|
20
|
+
groups:
|
|
21
|
+
# Group dependencies by their type (testing, linting, documentation, release tools)
|
|
22
|
+
# to avoid overwhelming PRs and to allow for more focused updates.
|
|
23
|
+
# The patterns are based on the names of the dependencies as they appear in the pyproject.toml file
|
|
24
|
+
# and how they are grouped in the uv configuration.
|
|
25
|
+
# Dependencies that match the patterns will be grouped together in the same PR.
|
|
26
|
+
testing:
|
|
27
|
+
patterns:
|
|
28
|
+
- "pytest*"
|
|
29
|
+
- "coverage"
|
|
30
|
+
- "cryptography"
|
|
31
|
+
- "deepdiff"
|
|
32
|
+
- "xkcdpass"
|
|
33
|
+
linting:
|
|
34
|
+
patterns:
|
|
35
|
+
- "bandit"
|
|
36
|
+
- "black"
|
|
37
|
+
- "codespell"
|
|
38
|
+
- "mypy*"
|
|
39
|
+
- "ruff"
|
|
40
|
+
- "types-*"
|
|
41
|
+
documentation:
|
|
42
|
+
patterns:
|
|
43
|
+
- "markdown*"
|
|
44
|
+
- "mkdocs*"
|
|
45
|
+
- "pygments"
|
|
46
|
+
- "pymdown-extensions"
|
|
47
|
+
release-tools:
|
|
48
|
+
patterns:
|
|
49
|
+
- "check-wheel-contents"
|
|
50
|
+
- "twine"
|
|
51
|
+
- "commitizen"
|
|
52
|
+
- "prek"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: Main branch
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
actions: read
|
|
5
|
+
checks: read
|
|
6
|
+
contents: read
|
|
7
|
+
discussions: write
|
|
8
|
+
statuses: write
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ${{github.workflow}}-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: true
|
|
13
|
+
|
|
14
|
+
on:
|
|
15
|
+
push:
|
|
16
|
+
branches:
|
|
17
|
+
- main
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
|
|
21
|
+
build-docs:
|
|
22
|
+
uses: ./.github/workflows/docs.yml
|
|
23
|
+
with:
|
|
24
|
+
BRANCH_REF: ${{ github.ref }}
|
|
25
|
+
|
|
26
|
+
linters:
|
|
27
|
+
uses: ./.github/workflows/linters.yml
|
|
28
|
+
with:
|
|
29
|
+
BRANCH_REF: ${{ github.ref }}
|
|
30
|
+
|
|
31
|
+
tests-standard:
|
|
32
|
+
uses: ./.github/workflows/tests-standard.yml
|
|
33
|
+
with:
|
|
34
|
+
BRANCH_REF: ${{ github.ref }}
|
|
35
|
+
|
|
36
|
+
tests-premium:
|
|
37
|
+
uses: ./.github/workflows/tests-premium.yml
|
|
38
|
+
with:
|
|
39
|
+
BRANCH_REF: ${{ github.ref }}
|
|
40
|
+
environment: Main Tests
|
|
41
|
+
secrets: inherit
|
|
42
|
+
|
|
43
|
+
tests-ultimate:
|
|
44
|
+
uses: ./.github/workflows/tests-ultimate.yml
|
|
45
|
+
with:
|
|
46
|
+
BRANCH_REF: ${{ github.ref }}
|
|
47
|
+
environment: Main Tests
|
|
48
|
+
secrets: inherit
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
name: Releases
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
packages: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
|
|
14
|
+
linters:
|
|
15
|
+
uses: ./.github/workflows/linters.yml
|
|
16
|
+
with:
|
|
17
|
+
BRANCH_REF: ${{ github.ref }}
|
|
18
|
+
|
|
19
|
+
tests-standard:
|
|
20
|
+
uses: ./.github/workflows/tests-standard.yml
|
|
21
|
+
with:
|
|
22
|
+
BRANCH_REF: ${{ github.ref }}
|
|
23
|
+
|
|
24
|
+
tests-premium:
|
|
25
|
+
uses: ./.github/workflows/tests-premium.yml
|
|
26
|
+
with:
|
|
27
|
+
BRANCH_REF: ${{ github.ref }}
|
|
28
|
+
environment: Main Tests
|
|
29
|
+
secrets: inherit
|
|
30
|
+
|
|
31
|
+
tests-ultimate:
|
|
32
|
+
uses: ./.github/workflows/tests-ultimate.yml
|
|
33
|
+
with:
|
|
34
|
+
BRANCH_REF: ${{ github.ref }}
|
|
35
|
+
environment: Main Tests
|
|
36
|
+
secrets: inherit
|
|
37
|
+
|
|
38
|
+
publish-docs:
|
|
39
|
+
needs:
|
|
40
|
+
- linters
|
|
41
|
+
- tests-standard
|
|
42
|
+
- tests-premium
|
|
43
|
+
- tests-ultimate
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
steps:
|
|
46
|
+
- uses: actions/checkout@v6
|
|
47
|
+
with:
|
|
48
|
+
ref: ${{ github.ref }}
|
|
49
|
+
fetch-depth: 2
|
|
50
|
+
- name: Configure uv environment
|
|
51
|
+
uses: ./.github/actions/setup-uv-local
|
|
52
|
+
- name: Setup Python ${{ env.UV_PYTHON }} and install dependencies
|
|
53
|
+
run: |
|
|
54
|
+
uv sync --frozen --no-dev --group docs
|
|
55
|
+
- name: Build docs
|
|
56
|
+
run: |
|
|
57
|
+
uv run --no-sync docs build
|
|
58
|
+
- name: Deploy 🚀
|
|
59
|
+
uses: JamesIves/github-pages-deploy-action@v4.8.0
|
|
60
|
+
with:
|
|
61
|
+
branch: gh-pages
|
|
62
|
+
folder: site
|
|
63
|
+
|
|
64
|
+
publish-to-github:
|
|
65
|
+
needs:
|
|
66
|
+
- linters
|
|
67
|
+
- tests-standard
|
|
68
|
+
- tests-premium
|
|
69
|
+
- tests-ultimate
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
|
+
steps:
|
|
72
|
+
- name: Create release in GitHub
|
|
73
|
+
uses: ncipollo/release-action@v1
|
|
74
|
+
with:
|
|
75
|
+
name: ${{ github.ref }}
|
|
76
|
+
body: "(this is a placeholder, it will be replaced with a changelog contents)"
|
|
77
|
+
# This token is provided by Actions, you do not need to create your own token
|
|
78
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
79
|
+
|
|
80
|
+
publish-to-pypi:
|
|
81
|
+
needs:
|
|
82
|
+
- linters
|
|
83
|
+
- tests-standard
|
|
84
|
+
- tests-premium
|
|
85
|
+
- tests-ultimate
|
|
86
|
+
runs-on: ubuntu-latest
|
|
87
|
+
environment:
|
|
88
|
+
name: pypi
|
|
89
|
+
url: https://pypi.org/p/gitlabform
|
|
90
|
+
permissions:
|
|
91
|
+
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
|
|
92
|
+
steps:
|
|
93
|
+
- uses: actions/checkout@v6
|
|
94
|
+
with:
|
|
95
|
+
ref: ${{ github.ref }}
|
|
96
|
+
fetch-depth: 2
|
|
97
|
+
- name: Configure uv environment
|
|
98
|
+
uses: ./.github/actions/setup-uv-local
|
|
99
|
+
- name: Setup Python ${{ env.UV_PYTHON }} and install dependencies
|
|
100
|
+
run: |
|
|
101
|
+
uv sync --frozen --no-dev --group release
|
|
102
|
+
- name: Build and verify the package
|
|
103
|
+
run: |
|
|
104
|
+
uv run --no-sync package build
|
|
105
|
+
uv run --no-sync package verify
|
|
106
|
+
- name: Publish to PyPI
|
|
107
|
+
run: |
|
|
108
|
+
uv run --no-sync package publish
|
|
109
|
+
|
|
110
|
+
publish-to-ghcr:
|
|
111
|
+
needs:
|
|
112
|
+
- linters
|
|
113
|
+
- tests-standard
|
|
114
|
+
- tests-premium
|
|
115
|
+
- tests-ultimate
|
|
116
|
+
runs-on: ubuntu-latest
|
|
117
|
+
steps:
|
|
118
|
+
- uses: actions/checkout@v6
|
|
119
|
+
- name: Configure uv environment
|
|
120
|
+
uses: ./.github/actions/setup-uv-local
|
|
121
|
+
- name: Get the version from the tag
|
|
122
|
+
run: echo "VERSION=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_ENV
|
|
123
|
+
- name: Wait for PyPI release
|
|
124
|
+
run: |
|
|
125
|
+
uv pip download gitlabform==${{ env.VERSION }} > /dev/null
|
|
126
|
+
while [ $? -ne 0 ]; do sleep 10; uv pip download gitlabform==${{ env.VERSION }} > /dev/null ; done
|
|
127
|
+
shell: bash {0}
|
|
128
|
+
- name: Docker metadata
|
|
129
|
+
id: metadata
|
|
130
|
+
uses: docker/metadata-action@v6
|
|
131
|
+
with:
|
|
132
|
+
images: |
|
|
133
|
+
ghcr.io/gitlabform/gitlabform
|
|
134
|
+
flavor: |
|
|
135
|
+
latest=auto
|
|
136
|
+
tags: |
|
|
137
|
+
type=pep440,pattern={{version}}
|
|
138
|
+
type=pep440,pattern={{major}}.{{minor}}
|
|
139
|
+
type=pep440,pattern={{major}}
|
|
140
|
+
- name: Set up QEMU
|
|
141
|
+
uses: docker/setup-qemu-action@v4
|
|
142
|
+
- name: Set up Docker Buildx
|
|
143
|
+
uses: docker/setup-buildx-action@v4
|
|
144
|
+
# gitlabform/gitlabform image is going to be here
|
|
145
|
+
- name: Login to GitHub Container Registry
|
|
146
|
+
uses: docker/login-action@v4
|
|
147
|
+
with:
|
|
148
|
+
registry: ghcr.io
|
|
149
|
+
username: ${{ github.repository_owner }}
|
|
150
|
+
# This token is provided by Actions, you do not need to create your own token
|
|
151
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
152
|
+
- name: Publish image to registries
|
|
153
|
+
uses: docker/build-push-action@v7
|
|
154
|
+
with:
|
|
155
|
+
push: true
|
|
156
|
+
context: .
|
|
157
|
+
file: Dockerfile
|
|
158
|
+
platforms: linux/amd64,linux/arm64
|
|
159
|
+
tags: ${{ steps.metadata.outputs.tags }}
|
|
160
|
+
labels: ${{ steps.metadata.outputs.labels }}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
BRANCH_REF:
|
|
7
|
+
type: string
|
|
8
|
+
required: true
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
build-docs:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v6
|
|
18
|
+
with:
|
|
19
|
+
ref: ${{ inputs.BRANCH_REF }}
|
|
20
|
+
fetch-depth: 2
|
|
21
|
+
- name: Configure uv environment
|
|
22
|
+
uses: ./.github/actions/setup-uv-local
|
|
23
|
+
- name: Setup Python ${{ env.UV_PYTHON }} and install dependencies
|
|
24
|
+
run: |
|
|
25
|
+
uv sync --frozen --no-dev --group docs
|
|
26
|
+
- name: Build documentation
|
|
27
|
+
run: |
|
|
28
|
+
uv run --no-sync docs build
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
name: Linters
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
BRANCH_REF:
|
|
7
|
+
type: string
|
|
8
|
+
required: true
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
black-formatting:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v6
|
|
18
|
+
with:
|
|
19
|
+
ref: ${{ inputs.BRANCH_REF }}
|
|
20
|
+
fetch-depth: 2
|
|
21
|
+
- name: Configure uv environment
|
|
22
|
+
uses: ./.github/actions/setup-uv-local
|
|
23
|
+
- name: Setup Python ${{ env.UV_PYTHON }} and install dependencies
|
|
24
|
+
run: |
|
|
25
|
+
uv sync --frozen --no-dev --group lint
|
|
26
|
+
- name: Run black formatting check
|
|
27
|
+
run: |
|
|
28
|
+
uv run --no-sync qa lint black --check .
|
|
29
|
+
|
|
30
|
+
types:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
strategy:
|
|
33
|
+
max-parallel: 1
|
|
34
|
+
matrix:
|
|
35
|
+
python-version: [3.14]
|
|
36
|
+
fail-fast: false
|
|
37
|
+
steps:
|
|
38
|
+
- uses: actions/checkout@v6
|
|
39
|
+
with:
|
|
40
|
+
ref: ${{ inputs.BRANCH_REF }}
|
|
41
|
+
fetch-depth: 2
|
|
42
|
+
- name: Configure uv environment
|
|
43
|
+
uses: ./.github/actions/setup-uv-local
|
|
44
|
+
with:
|
|
45
|
+
python-version: ${{ matrix.python-version }}
|
|
46
|
+
- name: Setup Python ${{ matrix.python-version }} and install dependencies
|
|
47
|
+
run: |
|
|
48
|
+
uv sync --frozen --no-dev --group lint
|
|
49
|
+
- name: Run mypy
|
|
50
|
+
run: |
|
|
51
|
+
uv run --no-sync qa lint mypy .
|
|
52
|
+
|
|
53
|
+
bandit:
|
|
54
|
+
runs-on: ubuntu-latest
|
|
55
|
+
steps:
|
|
56
|
+
- uses: actions/checkout@v6
|
|
57
|
+
with:
|
|
58
|
+
ref: ${{ inputs.BRANCH_REF }}
|
|
59
|
+
fetch-depth: 2
|
|
60
|
+
- name: Configure uv environment
|
|
61
|
+
uses: ./.github/actions/setup-uv-local
|
|
62
|
+
- name: Setup Python ${{ env.UV_PYTHON }} and install dependencies
|
|
63
|
+
run: |
|
|
64
|
+
uv sync --frozen --no-dev --group lint
|
|
65
|
+
- name: Run bandit
|
|
66
|
+
run: |
|
|
67
|
+
uv run --no-sync qa lint bandit .
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Linter and tests (PRs raised from Forks)
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
actions: read
|
|
5
|
+
contents: read
|
|
6
|
+
pull-requests: write
|
|
7
|
+
concurrency:
|
|
8
|
+
group: ${{github.workflow}}-${{ github.event.pull_request.number }}
|
|
9
|
+
cancel-in-progress: true
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
pull_request_target:
|
|
13
|
+
branches:
|
|
14
|
+
- main
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
pr_jobs:
|
|
18
|
+
# github.event.pull_request object defined here: https://docs.github.com/en/rest/pulls/pulls?apiVersion=2026-03-10#get-a-pull-request
|
|
19
|
+
if: ${{ github.event.pull_request.head.repo.full_name != 'gitlabform/gitlabform' }}
|
|
20
|
+
uses: ./.github/workflows/prs.yml
|
|
21
|
+
permissions:
|
|
22
|
+
actions: read
|
|
23
|
+
contents: read
|
|
24
|
+
packages: read
|
|
25
|
+
pull-requests: write
|
|
26
|
+
security-events: write
|
|
27
|
+
with:
|
|
28
|
+
branch_ref: ${{ github.event.pull_request.head.sha }}
|
|
29
|
+
secrets: inherit
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Linter and tests (PRs raised on main repo)
|
|
2
|
+
|
|
3
|
+
permissions:
|
|
4
|
+
actions: read
|
|
5
|
+
contents: read
|
|
6
|
+
pull-requests: write
|
|
7
|
+
concurrency:
|
|
8
|
+
group: ${{github.workflow}}-${{ github.event.pull_request.number }}
|
|
9
|
+
cancel-in-progress: true
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
pull_request:
|
|
13
|
+
branches:
|
|
14
|
+
- main
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
pr_jobs:
|
|
18
|
+
# github.event.pull_request object defined here: https://docs.github.com/en/rest/pulls/pulls?apiVersion=2026-03-10#get-a-pull-request
|
|
19
|
+
if: ${{ github.event.pull_request.head.repo.full_name == 'gitlabform/gitlabform' }}
|
|
20
|
+
uses: ./.github/workflows/prs.yml
|
|
21
|
+
permissions:
|
|
22
|
+
actions: read
|
|
23
|
+
contents: read
|
|
24
|
+
packages: read
|
|
25
|
+
pull-requests: write
|
|
26
|
+
security-events: write
|
|
27
|
+
with:
|
|
28
|
+
branch_ref: ${{ github.event.pull_request.head.sha }}
|
|
29
|
+
secrets: inherit
|