python-gitlab 5.4.0__tar.gz → 5.6.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.
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/CHANGELOG.md +41 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/PKG-INFO +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/api-objects.rst +1 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/merge_request_approvals.rst +77 -16
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/projects.rst +0 -8
- python_gitlab-5.6.0/docs/gl_objects/pull_mirror.rst +38 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/_version.py +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/mixins.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/utils.py +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/artifacts.py +4 -4
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/files.py +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/groups.py +2 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/jobs.py +3 -3
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/merge_request_approvals.py +22 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/packages.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/projects.py +78 -2
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/repositories.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/secure_files.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/snippets.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/python_gitlab.egg-info/PKG-INFO +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/python_gitlab.egg-info/SOURCES.txt +3 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_import_export.py +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_projects.py +18 -0
- python_gitlab-5.6.0/tests/unit/objects/test_group_merge_request_approvals.py +253 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_projects.py +4 -2
- python_gitlab-5.6.0/tests/unit/objects/test_pull_mirror.py +67 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/AUTHORS +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/COPYING +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/MANIFEST.in +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/README.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/Makefile +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/_static/js/gitter.js +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/api/gitlab.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/api/gitlab.v4.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/api-levels.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/api-usage-advanced.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/api-usage-graphql.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/api-usage.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/changelog.md +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/cli-examples.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/cli-objects.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/cli-usage.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/conf.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/ext/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/ext/docstrings.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/ext/manager_tmpl.j2 +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/faq.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/access_requests.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/appearance.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/applications.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/badges.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/boards.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/branches.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/bulk_imports.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/ci_lint.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/cluster_agents.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/clusters.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/commits.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/deploy_keys.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/deploy_tokens.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/deployments.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/discussions.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/draft_notes.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/emojis.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/environments.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/epics.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/events.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/features.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/geo_nodes.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/group_access_tokens.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/groups.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/invitations.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/issues.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/iterations.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/job_token_scope.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/keys.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/labels.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/merge_requests.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/merge_trains.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/messages.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/milestones.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/namespaces.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/notes.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/notifications.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/packages.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/pagesdomains.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/personal_access_tokens.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/pipelines_and_jobs.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/project_access_tokens.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/protected_branches.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/protected_container_repositories.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/protected_environments.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/protected_packages.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/releases.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/remote_mirrors.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/repositories.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/repository_tags.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/resource_groups.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/runners.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/search.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/secure_files.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/settings.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/sidekiq.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/snippets.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/statistics.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/status_checks.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/system_hooks.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/templates.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/todos.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/topics.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/users.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/variables.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/gl_objects/wikis.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/index.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/make.bat +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/docs/release-notes.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/__main__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/_backends/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/_backends/graphql.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/_backends/protocol.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/_backends/requests_backend.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/base.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/cli.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/client.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/config.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/const.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/exceptions.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/py.typed +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/types.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/cli.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/access_requests.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/appearance.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/applications.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/audit_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/award_emojis.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/badges.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/boards.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/branches.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/broadcast_messages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/bulk_imports.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/ci_lint.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/cluster_agents.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/clusters.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/commits.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/container_registry.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/custom_attributes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/deploy_keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/deploy_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/deployments.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/discussions.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/draft_notes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/environments.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/epics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/export_import.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/features.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/geo_nodes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/group_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/hooks.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/integrations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/invitations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/issues.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/iterations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/job_token_scope.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/labels.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/ldap.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/members.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/merge_requests.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/merge_trains.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/milestones.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/namespaces.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/notes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/notification_settings.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/package_protection_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/pages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/personal_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/pipelines.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/project_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/push_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/registry_protection_repository_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/registry_protection_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/releases.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/resource_groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/reviewers.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/runners.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/service_accounts.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/settings.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/sidekiq.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/statistics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/status_checks.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/tags.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/templates.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/todos.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/topics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/triggers.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/users.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/variables.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/gitlab/v4/objects/wikis.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/pyproject.toml +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/python_gitlab.egg-info/dependency_links.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/python_gitlab.egg-info/entry_points.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/python_gitlab.egg-info/requires.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/python_gitlab.egg-info/top_level.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/requirements-docker.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/requirements-docs.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/requirements-lint.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/requirements-precommit.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/requirements-test.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/requirements.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/setup.cfg +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_boards.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_branches.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_bulk_imports.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_current_user.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_deploy_keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_deploy_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_epics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_gitlab.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_graphql.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_issues.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_lazy_objects.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_merge_requests.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_packages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_project_job_token_scope.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_push_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_registry.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_releases.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_repository.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_services.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_snippets.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_statistics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_topics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_users.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_variables.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/api/test_wikis.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_artifacts.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_files.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_packages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_projects.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_repository.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_resource_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_users.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_v4.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/cli/test_cli_variables.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/ee-test.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/.env +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/avatar.png +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/create_license.rb +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/docker-compose.yml +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/docker.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/invalid_auth.cfg +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/invalid_version.cfg +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/fixtures/set_token.rb +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/functional/helpers.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/install/test_install.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/smoke/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/smoke/test_dists.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/_backends/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/_backends/test_requests_backend.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/base/test_rest_manager.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/base/test_rest_object.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/helpers.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/meta/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/meta/test_ensure_type_hints.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/meta/test_imports.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/meta/test_mro.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/mixins/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/mixins/test_meta_mixins.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/mixins/test_mixin_methods.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/mixins/test_object_mixins_attributes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_appearance.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_applications.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_audit_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_badges.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_bridges.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_bulk_imports.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_ci_lint.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_cluster_agents.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_commits.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_deploy_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_deployments.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_draft_notes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_environments.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_group_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_hooks.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_invitations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_issues.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_iterations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_job_artifacts.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_job_token_scope.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_jobs.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_members.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_merge_request_pipelines.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_merge_requests.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_merge_trains.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_package_protection_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_packages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_personal_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_pipeline_schedules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_pipelines.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_project_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_project_import_export.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_project_merge_request_approvals.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_project_statistics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_registry_protection_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_registry_repositories.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_releases.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_remote_mirrors.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_repositories.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_resource_groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_resource_iteration_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_resource_label_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_resource_milestone_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_resource_state_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_runners.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_secure_files.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_services.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_snippets.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_statistics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_status_checks.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_submodules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_templates.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_todos.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_topics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_users.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/objects/test_variables.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_cli.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_config.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_exceptions.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_gitlab.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_gitlab_auth.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_gitlab_http_methods.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_graphql.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_retry.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_types.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tests/unit/test_utils.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.6.0}/tox.ini +0 -0
@@ -1,6 +1,47 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v5.6.0 (2025-01-28)
|
5
|
+
|
6
|
+
### Features
|
7
|
+
|
8
|
+
- **group**: Add support for group level MR approval rules
|
9
|
+
([`304bdd0`](https://github.com/python-gitlab/python-gitlab/commit/304bdd09cd5e6526576c5ec58cb3acd7e1a783cb))
|
10
|
+
|
11
|
+
|
12
|
+
## v5.5.0 (2025-01-28)
|
13
|
+
|
14
|
+
### Chores
|
15
|
+
|
16
|
+
- Add deprecation warning for mirror_pull functions
|
17
|
+
([`7f6fd5c`](https://github.com/python-gitlab/python-gitlab/commit/7f6fd5c3aac5e2f18adf212adbce0ac04c7150e1))
|
18
|
+
|
19
|
+
- Relax typing constraints for response action
|
20
|
+
([`f430078`](https://github.com/python-gitlab/python-gitlab/commit/f4300782485ee6c38578fa3481061bd621656b0e))
|
21
|
+
|
22
|
+
- **tests**: Catch deprecation warnings
|
23
|
+
([`0c1af08`](https://github.com/python-gitlab/python-gitlab/commit/0c1af08bc73611d288f1f67248cff9c32c685808))
|
24
|
+
|
25
|
+
### Documentation
|
26
|
+
|
27
|
+
- Add usage of pull mirror
|
28
|
+
([`9b374b2`](https://github.com/python-gitlab/python-gitlab/commit/9b374b2c051f71b8ef10e22209b8e90730af9d9b))
|
29
|
+
|
30
|
+
- Remove old pull mirror implementation
|
31
|
+
([`9e18672`](https://github.com/python-gitlab/python-gitlab/commit/9e186726c8a5ae70ca49c56b2be09b34dbf5b642))
|
32
|
+
|
33
|
+
### Features
|
34
|
+
|
35
|
+
- **functional**: Add pull mirror test
|
36
|
+
([`3b31ade`](https://github.com/python-gitlab/python-gitlab/commit/3b31ade152eb61363a68cf0509867ff8738ccdaf))
|
37
|
+
|
38
|
+
- **projects**: Add pull mirror class
|
39
|
+
([`2411bff`](https://github.com/python-gitlab/python-gitlab/commit/2411bff4fd1dab6a1dd70070441b52e9a2927a63))
|
40
|
+
|
41
|
+
- **unit**: Add pull mirror tests
|
42
|
+
([`5c11203`](https://github.com/python-gitlab/python-gitlab/commit/5c11203a8b281f6ab34f7e85073fadcfc395503c))
|
43
|
+
|
44
|
+
|
4
45
|
## v5.4.0 (2025-01-28)
|
5
46
|
|
6
47
|
### Bug Fixes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: python-gitlab
|
3
|
-
Version: 5.
|
3
|
+
Version: 5.6.0
|
4
4
|
Summary: The python wrapper for the GitLab REST and GraphQL APIs.
|
5
5
|
Author-email: Gauvain Pocentek <gauvain@pocentek.net>
|
6
6
|
Maintainer-email: John Villalovos <john@sodarock.com>, Max Wittig <max.wittig@siemens.com>, Nejc Habjan <nejc.habjan@siemens.com>, Roger Meier <r.meier@siemens.com>
|
@@ -2,8 +2,47 @@
|
|
2
2
|
Merge request approvals settings
|
3
3
|
################################
|
4
4
|
|
5
|
-
Merge request approvals can be defined at the project level or at the merge
|
6
|
-
|
5
|
+
Merge request approvals can be defined at the group level, or the project level or at the merge request level.
|
6
|
+
|
7
|
+
Group approval rules
|
8
|
+
====================
|
9
|
+
|
10
|
+
References
|
11
|
+
----------
|
12
|
+
|
13
|
+
* v4 API:
|
14
|
+
|
15
|
+
+ :class:`gitlab.v4.objects.GroupApprovalRule`
|
16
|
+
+ :class:`gitlab.v4.objects.GroupApprovalRuleManager`
|
17
|
+
|
18
|
+
* GitLab API: https://docs.gitlab.com/ee/api/merge_request_approvals.html
|
19
|
+
|
20
|
+
Examples
|
21
|
+
--------
|
22
|
+
|
23
|
+
List group-level MR approval rules::
|
24
|
+
|
25
|
+
group_approval_rules = group.approval_rules.list()
|
26
|
+
|
27
|
+
Change group-level MR approval rule::
|
28
|
+
|
29
|
+
g_approval_rule = group.approval_rules.get(123)
|
30
|
+
g_approval_rule.user_ids = [234]
|
31
|
+
g_approval_rule.save()
|
32
|
+
|
33
|
+
Create new group-level MR approval rule::
|
34
|
+
|
35
|
+
group.approval_rules.create({
|
36
|
+
"name": "my new approval rule",
|
37
|
+
"approvals_required": 2,
|
38
|
+
"rule_type": "regular",
|
39
|
+
"user_ids": [105],
|
40
|
+
"group_ids": [653, 654],
|
41
|
+
})
|
42
|
+
|
43
|
+
|
44
|
+
Project approval rules
|
45
|
+
======================
|
7
46
|
|
8
47
|
References
|
9
48
|
----------
|
@@ -15,15 +54,6 @@ References
|
|
15
54
|
+ :class:`gitlab.v4.objects.ProjectApprovalRule`
|
16
55
|
+ :class:`gitlab.v4.objects.ProjectApprovalRuleManager`
|
17
56
|
+ :attr:`gitlab.v4.objects.Project.approvals`
|
18
|
-
+ :class:`gitlab.v4.objects.ProjectMergeRequestApproval`
|
19
|
-
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalManager`
|
20
|
-
+ :attr:`gitlab.v4.objects.ProjectMergeRequest.approvals`
|
21
|
-
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalRule`
|
22
|
-
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalRuleManager`
|
23
|
-
+ :attr:`gitlab.v4.objects.ProjectMergeRequest.approval_rules`
|
24
|
-
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalState`
|
25
|
-
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalStateManager`
|
26
|
-
+ :attr:`gitlab.v4.objects.ProjectMergeRequest.approval_state`
|
27
57
|
|
28
58
|
* GitLab API: https://docs.gitlab.com/ee/api/merge_request_approvals.html
|
29
59
|
|
@@ -43,7 +73,41 @@ Delete project-level MR approval rule::
|
|
43
73
|
|
44
74
|
p_approvalrule.delete()
|
45
75
|
|
46
|
-
Get project-level
|
76
|
+
Get project-level MR approvals settings::
|
77
|
+
|
78
|
+
p_mras = project.approvals.get()
|
79
|
+
|
80
|
+
Change project-level MR approvals settings::
|
81
|
+
|
82
|
+
p_mras.approvals_before_merge = 2
|
83
|
+
p_mras.save()
|
84
|
+
|
85
|
+
|
86
|
+
Merge request approval rules
|
87
|
+
============================
|
88
|
+
|
89
|
+
References
|
90
|
+
----------
|
91
|
+
|
92
|
+
* v4 API:
|
93
|
+
|
94
|
+
+ :class:`gitlab.v4.objects.ProjectMergeRequestApproval`
|
95
|
+
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalManager`
|
96
|
+
+ :attr:`gitlab.v4.objects.ProjectMergeRequest.approvals`
|
97
|
+
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalRule`
|
98
|
+
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalRuleManager`
|
99
|
+
+ :attr:`gitlab.v4.objects.ProjectMergeRequest.approval_rules`
|
100
|
+
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalState`
|
101
|
+
+ :class:`gitlab.v4.objects.ProjectMergeRequestApprovalStateManager`
|
102
|
+
+ :attr:`gitlab.v4.objects.ProjectMergeRequest.approval_state`
|
103
|
+
|
104
|
+
* GitLab API: https://docs.gitlab.com/ee/api/merge_request_approvals.html
|
105
|
+
|
106
|
+
Examples
|
107
|
+
--------
|
108
|
+
|
109
|
+
|
110
|
+
Get MR-level MR approvals settings::
|
47
111
|
|
48
112
|
p_mras = project.approvals.get()
|
49
113
|
|
@@ -53,10 +117,7 @@ Get MR-level approval state::
|
|
53
117
|
|
54
118
|
mr_approval_state = mr.approval_state.get()
|
55
119
|
|
56
|
-
Change
|
57
|
-
|
58
|
-
p_mras.approvals_before_merge = 2
|
59
|
-
p_mras.save()
|
120
|
+
Change MR-level MR approvals settings::
|
60
121
|
|
61
122
|
mr.approvals.set_approvers(approvals_required=1)
|
62
123
|
# or
|
@@ -246,14 +246,6 @@ Get a list of users for the repository::
|
|
246
246
|
# search for users
|
247
247
|
users = p.users.list(search='pattern')
|
248
248
|
|
249
|
-
Start the pull mirroring process (EE edition)::
|
250
|
-
|
251
|
-
project.mirror_pull()
|
252
|
-
|
253
|
-
Get a project’s pull mirror details (EE edition)::
|
254
|
-
|
255
|
-
mirror_pull_details = project.mirror_pull_details()
|
256
|
-
|
257
249
|
Import / Export
|
258
250
|
===============
|
259
251
|
|
@@ -0,0 +1,38 @@
|
|
1
|
+
######################
|
2
|
+
Project Pull Mirror
|
3
|
+
######################
|
4
|
+
|
5
|
+
Pull Mirror allow you to set up pull mirroring for a project.
|
6
|
+
|
7
|
+
References
|
8
|
+
==========
|
9
|
+
|
10
|
+
* v4 API:
|
11
|
+
|
12
|
+
+ :class:`gitlab.v4.objects.ProjectPullMirror`
|
13
|
+
+ :class:`gitlab.v4.objects.ProjectPullMirrorManager`
|
14
|
+
+ :attr:`gitlab.v4.objects.Project.pull_mirror`
|
15
|
+
|
16
|
+
* GitLab API: https://docs.gitlab.com/ce/api/pull_mirror.html
|
17
|
+
|
18
|
+
Examples
|
19
|
+
--------
|
20
|
+
|
21
|
+
Get the current pull mirror of a project::
|
22
|
+
|
23
|
+
mirrors = project.pull_mirror.get()
|
24
|
+
|
25
|
+
Create (and enable) a remote mirror for a project::
|
26
|
+
|
27
|
+
mirror = project.pull_mirror.create({'url': 'https://gitlab.com/example.git',
|
28
|
+
'enabled': True})
|
29
|
+
|
30
|
+
Update an existing remote mirror's attributes::
|
31
|
+
|
32
|
+
mirror.enabled = False
|
33
|
+
mirror.only_protected_branches = True
|
34
|
+
mirror.save()
|
35
|
+
|
36
|
+
Start an sync of the pull mirror::
|
37
|
+
|
38
|
+
mirror.start()
|
@@ -640,7 +640,7 @@ class DownloadMixin(_RestObjectBase):
|
|
640
640
|
def download(
|
641
641
|
self,
|
642
642
|
streamed: Literal[True] = True,
|
643
|
-
action: Optional[Callable[[bytes],
|
643
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
644
644
|
chunk_size: int = 1024,
|
645
645
|
*,
|
646
646
|
iterator: Literal[False] = False,
|
@@ -652,7 +652,7 @@ class DownloadMixin(_RestObjectBase):
|
|
652
652
|
def download(
|
653
653
|
self,
|
654
654
|
streamed: bool = False,
|
655
|
-
action: Optional[Callable[[bytes],
|
655
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
656
656
|
chunk_size: int = 1024,
|
657
657
|
*,
|
658
658
|
iterator: bool = False,
|
@@ -84,7 +84,7 @@ class ProjectArtifactManager(RESTManager):
|
|
84
84
|
ref_name: str,
|
85
85
|
job: str,
|
86
86
|
streamed: Literal[True] = True,
|
87
|
-
action: Optional[Callable[[bytes],
|
87
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
88
88
|
chunk_size: int = 1024,
|
89
89
|
*,
|
90
90
|
iterator: Literal[False] = False,
|
@@ -102,7 +102,7 @@ class ProjectArtifactManager(RESTManager):
|
|
102
102
|
ref_name: str,
|
103
103
|
job: str,
|
104
104
|
streamed: bool = False,
|
105
|
-
action: Optional[Callable[[bytes],
|
105
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
106
106
|
chunk_size: int = 1024,
|
107
107
|
*,
|
108
108
|
iterator: bool = False,
|
@@ -177,7 +177,7 @@ class ProjectArtifactManager(RESTManager):
|
|
177
177
|
artifact_path: str,
|
178
178
|
job: str,
|
179
179
|
streamed: Literal[True] = True,
|
180
|
-
action: Optional[Callable[[bytes],
|
180
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
181
181
|
chunk_size: int = 1024,
|
182
182
|
*,
|
183
183
|
iterator: Literal[False] = False,
|
@@ -195,7 +195,7 @@ class ProjectArtifactManager(RESTManager):
|
|
195
195
|
artifact_path: str,
|
196
196
|
job: str,
|
197
197
|
streamed: bool = False,
|
198
|
-
action: Optional[Callable[[bytes],
|
198
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
199
199
|
chunk_size: int = 1024,
|
200
200
|
*,
|
201
201
|
iterator: bool = False,
|
@@ -308,7 +308,7 @@ class ProjectFileManager(CreateMixin, UpdateMixin, DeleteMixin, RESTManager):
|
|
308
308
|
file_path: str,
|
309
309
|
ref: Optional[str] = None,
|
310
310
|
streamed: Literal[True] = True,
|
311
|
-
action: Optional[Callable[[bytes],
|
311
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
312
312
|
chunk_size: int = 1024,
|
313
313
|
*,
|
314
314
|
iterator: Literal[False] = False,
|
@@ -39,6 +39,7 @@ from .members import ( # noqa: F401
|
|
39
39
|
GroupMemberAllManager,
|
40
40
|
GroupMemberManager,
|
41
41
|
)
|
42
|
+
from .merge_request_approvals import GroupApprovalRuleManager
|
42
43
|
from .merge_requests import GroupMergeRequestManager # noqa: F401
|
43
44
|
from .milestones import GroupMilestoneManager # noqa: F401
|
44
45
|
from .notification_settings import GroupNotificationSettingsManager # noqa: F401
|
@@ -70,6 +71,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject):
|
|
70
71
|
|
71
72
|
access_tokens: GroupAccessTokenManager
|
72
73
|
accessrequests: GroupAccessRequestManager
|
74
|
+
approval_rules: GroupApprovalRuleManager
|
73
75
|
audit_events: GroupAuditEventManager
|
74
76
|
badges: GroupBadgeManager
|
75
77
|
billable_members: GroupBillableMemberManager
|
@@ -152,7 +152,7 @@ class ProjectJob(RefreshMixin, RESTObject):
|
|
152
152
|
def artifacts(
|
153
153
|
self,
|
154
154
|
streamed: Literal[True] = True,
|
155
|
-
action: Optional[Callable[[bytes],
|
155
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
156
156
|
chunk_size: int = 1024,
|
157
157
|
*,
|
158
158
|
iterator: Literal[False] = False,
|
@@ -229,7 +229,7 @@ class ProjectJob(RefreshMixin, RESTObject):
|
|
229
229
|
self,
|
230
230
|
path: str,
|
231
231
|
streamed: Literal[True] = True,
|
232
|
-
action: Optional[Callable[[bytes],
|
232
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
233
233
|
chunk_size: int = 1024,
|
234
234
|
*,
|
235
235
|
iterator: Literal[False] = False,
|
@@ -305,7 +305,7 @@ class ProjectJob(RefreshMixin, RESTObject):
|
|
305
305
|
def trace(
|
306
306
|
self,
|
307
307
|
streamed: Literal[True] = True,
|
308
|
-
action: Optional[Callable[[bytes],
|
308
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
309
309
|
chunk_size: int = 1024,
|
310
310
|
*,
|
311
311
|
iterator: Literal[False] = False,
|
@@ -16,6 +16,8 @@ from gitlab.mixins import (
|
|
16
16
|
from gitlab.types import RequiredOptional
|
17
17
|
|
18
18
|
__all__ = [
|
19
|
+
"GroupApprovalRule",
|
20
|
+
"GroupApprovalRuleManager",
|
19
21
|
"ProjectApproval",
|
20
22
|
"ProjectApprovalManager",
|
21
23
|
"ProjectApprovalRule",
|
@@ -29,6 +31,26 @@ __all__ = [
|
|
29
31
|
]
|
30
32
|
|
31
33
|
|
34
|
+
class GroupApprovalRule(SaveMixin, RESTObject):
|
35
|
+
_id_attr = "id"
|
36
|
+
_repr_attr = "name"
|
37
|
+
|
38
|
+
|
39
|
+
class GroupApprovalRuleManager(RetrieveMixin, CreateMixin, UpdateMixin, RESTManager):
|
40
|
+
_path = "/groups/{group_id}/approval_rules"
|
41
|
+
_obj_cls = GroupApprovalRule
|
42
|
+
_from_parent_attrs = {"group_id": "id"}
|
43
|
+
_create_attrs = RequiredOptional(
|
44
|
+
required=("name", "approvals_required"),
|
45
|
+
optional=("user_ids", "group_ids", "rule_type"),
|
46
|
+
)
|
47
|
+
|
48
|
+
def get(
|
49
|
+
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
|
50
|
+
) -> GroupApprovalRule:
|
51
|
+
return cast(GroupApprovalRule, super().get(id=id, lazy=lazy, **kwargs))
|
52
|
+
|
53
|
+
|
32
54
|
class ProjectApproval(SaveMixin, RESTObject):
|
33
55
|
_id_attr = None
|
34
56
|
|
@@ -159,7 +159,7 @@ class GenericPackageManager(RESTManager):
|
|
159
159
|
package_version: str,
|
160
160
|
file_name: str,
|
161
161
|
streamed: Literal[True] = True,
|
162
|
-
action: Optional[Callable[[bytes],
|
162
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
163
163
|
chunk_size: int = 1024,
|
164
164
|
*,
|
165
165
|
iterator: Literal[False] = False,
|
@@ -177,7 +177,7 @@ class GenericPackageManager(RESTManager):
|
|
177
177
|
package_version: str,
|
178
178
|
file_name: str,
|
179
179
|
streamed: bool = False,
|
180
|
-
action: Optional[Callable[[bytes],
|
180
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
181
181
|
chunk_size: int = 1024,
|
182
182
|
*,
|
183
183
|
iterator: bool = False,
|
@@ -128,6 +128,8 @@ __all__ = [
|
|
128
128
|
"ProjectForkManager",
|
129
129
|
"ProjectRemoteMirror",
|
130
130
|
"ProjectRemoteMirrorManager",
|
131
|
+
"ProjectPullMirror",
|
132
|
+
"ProjectPullMirrorManager",
|
131
133
|
"ProjectStorage",
|
132
134
|
"ProjectStorageManager",
|
133
135
|
"SharedProject",
|
@@ -249,6 +251,7 @@ class Project(
|
|
249
251
|
releases: ProjectReleaseManager
|
250
252
|
resource_groups: ProjectResourceGroupManager
|
251
253
|
remote_mirrors: "ProjectRemoteMirrorManager"
|
254
|
+
pull_mirror: "ProjectPullMirrorManager"
|
252
255
|
repositories: ProjectRegistryRepositoryManager
|
253
256
|
runners: ProjectRunnerManager
|
254
257
|
secure_files: ProjectSecureFileManager
|
@@ -520,7 +523,7 @@ class Project(
|
|
520
523
|
self,
|
521
524
|
wiki: bool = False,
|
522
525
|
streamed: Literal[True] = True,
|
523
|
-
action: Optional[Callable[[bytes],
|
526
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
524
527
|
chunk_size: int = 1024,
|
525
528
|
*,
|
526
529
|
iterator: Literal[False] = False,
|
@@ -533,7 +536,7 @@ class Project(
|
|
533
536
|
self,
|
534
537
|
wiki: bool = False,
|
535
538
|
streamed: bool = False,
|
536
|
-
action: Optional[Callable[[bytes],
|
539
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
537
540
|
chunk_size: int = 1024,
|
538
541
|
*,
|
539
542
|
iterator: bool = False,
|
@@ -605,6 +608,13 @@ class Project(
|
|
605
608
|
GitlabAuthenticationError: If authentication is not correct
|
606
609
|
GitlabCreateError: If the server failed to perform the request
|
607
610
|
"""
|
611
|
+
utils.warn(
|
612
|
+
message=(
|
613
|
+
"project.mirror_pull() is deprecated and will be removed in a "
|
614
|
+
"future major version. Use project.pull_mirror.start() instead."
|
615
|
+
),
|
616
|
+
category=DeprecationWarning,
|
617
|
+
)
|
608
618
|
path = f"/projects/{self.encoded_id}/mirror/pull"
|
609
619
|
self.manager.gitlab.http_post(path, **kwargs)
|
610
620
|
|
@@ -625,6 +635,13 @@ class Project(
|
|
625
635
|
Returns:
|
626
636
|
dict of the parsed json returned by the server
|
627
637
|
"""
|
638
|
+
utils.warn(
|
639
|
+
message=(
|
640
|
+
"project.mirror_pull_details() is deprecated and will be removed in a "
|
641
|
+
"future major version. Use project.pull_mirror.get() instead."
|
642
|
+
),
|
643
|
+
category=DeprecationWarning,
|
644
|
+
)
|
628
645
|
path = f"/projects/{self.encoded_id}/mirror/pull"
|
629
646
|
result = self.manager.gitlab.http_get(path, **kwargs)
|
630
647
|
if TYPE_CHECKING:
|
@@ -1240,6 +1257,65 @@ class ProjectRemoteMirrorManager(
|
|
1240
1257
|
_update_attrs = RequiredOptional(optional=("enabled", "only_protected_branches"))
|
1241
1258
|
|
1242
1259
|
|
1260
|
+
class ProjectPullMirror(SaveMixin, RESTObject):
|
1261
|
+
_id_attr = None
|
1262
|
+
|
1263
|
+
|
1264
|
+
class ProjectPullMirrorManager(GetWithoutIdMixin, UpdateMixin, RESTManager):
|
1265
|
+
_path = "/projects/{project_id}/mirror/pull"
|
1266
|
+
_obj_cls = ProjectPullMirror
|
1267
|
+
_from_parent_attrs = {"project_id": "id"}
|
1268
|
+
_update_attrs = RequiredOptional(optional=("url",))
|
1269
|
+
|
1270
|
+
def get(self, **kwargs: Any) -> ProjectPullMirror:
|
1271
|
+
return cast(ProjectPullMirror, super().get(**kwargs))
|
1272
|
+
|
1273
|
+
@exc.on_http_error(exc.GitlabCreateError)
|
1274
|
+
def create(self, data: Dict[str, Any], **kwargs: Any) -> ProjectPullMirror:
|
1275
|
+
"""Create a new object.
|
1276
|
+
|
1277
|
+
Args:
|
1278
|
+
data: parameters to send to the server to create the
|
1279
|
+
resource
|
1280
|
+
**kwargs: Extra options to send to the server (e.g. sudo)
|
1281
|
+
|
1282
|
+
Returns:
|
1283
|
+
A new instance of the managed object class built with
|
1284
|
+
the data sent by the server
|
1285
|
+
|
1286
|
+
Raises:
|
1287
|
+
GitlabAuthenticationError: If authentication is not correct
|
1288
|
+
GitlabCreateError: If the server cannot perform the request
|
1289
|
+
"""
|
1290
|
+
if TYPE_CHECKING:
|
1291
|
+
assert data is not None
|
1292
|
+
self._create_attrs.validate_attrs(data=data)
|
1293
|
+
|
1294
|
+
if TYPE_CHECKING:
|
1295
|
+
assert self.path is not None
|
1296
|
+
server_data = self.gitlab.http_put(self.path, post_data=data, **kwargs)
|
1297
|
+
|
1298
|
+
if TYPE_CHECKING:
|
1299
|
+
assert not isinstance(server_data, requests.Response)
|
1300
|
+
return self._obj_cls(self, server_data)
|
1301
|
+
|
1302
|
+
@cli.register_custom_action(cls_names="ProjectPullMirrorManager")
|
1303
|
+
@exc.on_http_error(exc.GitlabCreateError)
|
1304
|
+
def start(self, **kwargs: Any) -> None:
|
1305
|
+
"""Start the pull mirroring process for the project.
|
1306
|
+
|
1307
|
+
Args:
|
1308
|
+
**kwargs: Extra options to send to the server (e.g. sudo)
|
1309
|
+
|
1310
|
+
Raises:
|
1311
|
+
GitlabAuthenticationError: If authentication is not correct
|
1312
|
+
GitlabCreateError: If the server failed to perform the request
|
1313
|
+
"""
|
1314
|
+
if TYPE_CHECKING:
|
1315
|
+
assert self.path is not None
|
1316
|
+
self.gitlab.http_post(self.path, **kwargs)
|
1317
|
+
|
1318
|
+
|
1243
1319
|
class ProjectStorage(RefreshMixin, RESTObject):
|
1244
1320
|
pass
|
1245
1321
|
|
@@ -146,7 +146,7 @@ class RepositoryMixin(_RestObjectBase):
|
|
146
146
|
self,
|
147
147
|
sha: str,
|
148
148
|
streamed: Literal[True] = True,
|
149
|
-
action: Optional[Callable[[bytes],
|
149
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
150
150
|
chunk_size: int = 1024,
|
151
151
|
*,
|
152
152
|
iterator: Literal[False] = False,
|
@@ -273,7 +273,7 @@ class RepositoryMixin(_RestObjectBase):
|
|
273
273
|
self,
|
274
274
|
sha: Optional[str] = None,
|
275
275
|
streamed: Literal[True] = True,
|
276
|
-
action: Optional[Callable[[bytes],
|
276
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
277
277
|
chunk_size: int = 1024,
|
278
278
|
*,
|
279
279
|
iterator: Literal[False] = False,
|
@@ -54,7 +54,7 @@ class ProjectSecureFile(ObjectDeleteMixin, RESTObject):
|
|
54
54
|
def download(
|
55
55
|
self,
|
56
56
|
streamed: Literal[True] = True,
|
57
|
-
action: Optional[Callable[[bytes],
|
57
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
58
58
|
chunk_size: int = 1024,
|
59
59
|
*,
|
60
60
|
iterator: Literal[False] = False,
|
@@ -66,7 +66,7 @@ class ProjectSecureFile(ObjectDeleteMixin, RESTObject):
|
|
66
66
|
def download(
|
67
67
|
self,
|
68
68
|
streamed: bool = False,
|
69
|
-
action: Optional[Callable[[bytes],
|
69
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
70
70
|
chunk_size: int = 1024,
|
71
71
|
*,
|
72
72
|
iterator: bool = False,
|
@@ -61,7 +61,7 @@ class Snippet(UserAgentDetailMixin, SaveMixin, ObjectDeleteMixin, RESTObject):
|
|
61
61
|
def content(
|
62
62
|
self,
|
63
63
|
streamed: Literal[True] = True,
|
64
|
-
action: Optional[Callable[[bytes],
|
64
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
65
65
|
chunk_size: int = 1024,
|
66
66
|
*,
|
67
67
|
iterator: Literal[False] = False,
|
@@ -237,7 +237,7 @@ class ProjectSnippet(UserAgentDetailMixin, SaveMixin, ObjectDeleteMixin, RESTObj
|
|
237
237
|
def content(
|
238
238
|
self,
|
239
239
|
streamed: Literal[True] = True,
|
240
|
-
action: Optional[Callable[[bytes],
|
240
|
+
action: Optional[Callable[[bytes], Any]] = None,
|
241
241
|
chunk_size: int = 1024,
|
242
242
|
*,
|
243
243
|
iterator: Literal[False] = False,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: python-gitlab
|
3
|
-
Version: 5.
|
3
|
+
Version: 5.6.0
|
4
4
|
Summary: The python wrapper for the GitLab REST and GraphQL APIs.
|
5
5
|
Author-email: Gauvain Pocentek <gauvain@pocentek.net>
|
6
6
|
Maintainer-email: John Villalovos <john@sodarock.com>, Max Wittig <max.wittig@siemens.com>, Nejc Habjan <nejc.habjan@siemens.com>, Roger Meier <r.meier@siemens.com>
|
@@ -81,6 +81,7 @@ docs/gl_objects/protected_branches.rst
|
|
81
81
|
docs/gl_objects/protected_container_repositories.rst
|
82
82
|
docs/gl_objects/protected_environments.rst
|
83
83
|
docs/gl_objects/protected_packages.rst
|
84
|
+
docs/gl_objects/pull_mirror.rst
|
84
85
|
docs/gl_objects/releases.rst
|
85
86
|
docs/gl_objects/remote_mirrors.rst
|
86
87
|
docs/gl_objects/repositories.rst
|
@@ -307,6 +308,7 @@ tests/unit/objects/test_deployments.py
|
|
307
308
|
tests/unit/objects/test_draft_notes.py
|
308
309
|
tests/unit/objects/test_environments.py
|
309
310
|
tests/unit/objects/test_group_access_tokens.py
|
311
|
+
tests/unit/objects/test_group_merge_request_approvals.py
|
310
312
|
tests/unit/objects/test_groups.py
|
311
313
|
tests/unit/objects/test_hooks.py
|
312
314
|
tests/unit/objects/test_invitations.py
|
@@ -330,6 +332,7 @@ tests/unit/objects/test_project_import_export.py
|
|
330
332
|
tests/unit/objects/test_project_merge_request_approvals.py
|
331
333
|
tests/unit/objects/test_project_statistics.py
|
332
334
|
tests/unit/objects/test_projects.py
|
335
|
+
tests/unit/objects/test_pull_mirror.py
|
333
336
|
tests/unit/objects/test_registry_protection_rules.py
|
334
337
|
tests/unit/objects/test_registry_repositories.py
|
335
338
|
tests/unit/objects/test_releases.py
|
@@ -50,7 +50,7 @@ def test_project_import_export(gl, project, temp_dir):
|
|
50
50
|
raise Exception("Project export taking too much time")
|
51
51
|
|
52
52
|
with open(temp_dir / "gitlab-export.tgz", "wb") as f:
|
53
|
-
export.download(streamed=True, action=f.write)
|
53
|
+
export.download(streamed=True, action=f.write)
|
54
54
|
|
55
55
|
output = gl.projects.import_project(
|
56
56
|
open(temp_dir / "gitlab-export.tgz", "rb"),
|
@@ -310,6 +310,24 @@ def test_project_remote_mirrors(project):
|
|
310
310
|
mirror.delete()
|
311
311
|
|
312
312
|
|
313
|
+
def test_project_pull_mirrors(project):
|
314
|
+
mirror_url = "https://gitlab.example.com/root/mirror.git"
|
315
|
+
|
316
|
+
mirror = project.pull_mirror.create({"url": mirror_url})
|
317
|
+
assert mirror.url == mirror_url
|
318
|
+
|
319
|
+
mirror.enabled = True
|
320
|
+
mirror.save()
|
321
|
+
|
322
|
+
mirror = project.pull_mirror.get()
|
323
|
+
assert isinstance(mirror, gitlab.v4.objects.ProjectPullMirror)
|
324
|
+
assert mirror.url == mirror_url
|
325
|
+
assert mirror.enabled is True
|
326
|
+
|
327
|
+
mirror.enabled = False
|
328
|
+
mirror.save()
|
329
|
+
|
330
|
+
|
313
331
|
def test_project_services(project):
|
314
332
|
# Use 'update' to create a service as we don't have a 'create' method and
|
315
333
|
# to add one is somewhat complicated so it hasn't been done yet.
|