python-gitlab 5.4.0__tar.gz → 5.5.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.5.0}/CHANGELOG.md +33 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/PKG-INFO +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/api-objects.rst +1 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/projects.rst +0 -8
- python_gitlab-5.5.0/docs/gl_objects/pull_mirror.rst +38 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/_version.py +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/mixins.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/utils.py +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/artifacts.py +4 -4
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/files.py +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/jobs.py +3 -3
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/packages.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/projects.py +78 -2
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/repositories.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/secure_files.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/snippets.py +2 -2
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/python_gitlab.egg-info/PKG-INFO +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/python_gitlab.egg-info/SOURCES.txt +2 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_import_export.py +1 -1
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_projects.py +18 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_projects.py +4 -2
- python_gitlab-5.5.0/tests/unit/objects/test_pull_mirror.py +67 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/AUTHORS +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/COPYING +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/MANIFEST.in +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/README.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/Makefile +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/_static/js/gitter.js +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/api/gitlab.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/api/gitlab.v4.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/api-levels.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/api-usage-advanced.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/api-usage-graphql.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/api-usage.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/changelog.md +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/cli-examples.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/cli-objects.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/cli-usage.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/conf.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/ext/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/ext/docstrings.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/ext/manager_tmpl.j2 +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/faq.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/access_requests.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/appearance.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/applications.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/badges.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/boards.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/branches.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/bulk_imports.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/ci_lint.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/cluster_agents.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/clusters.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/commits.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/deploy_keys.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/deploy_tokens.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/deployments.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/discussions.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/draft_notes.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/emojis.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/environments.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/epics.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/events.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/features.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/geo_nodes.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/group_access_tokens.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/groups.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/invitations.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/issues.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/iterations.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/job_token_scope.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/keys.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/labels.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/merge_request_approvals.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/merge_requests.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/merge_trains.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/messages.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/milestones.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/namespaces.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/notes.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/notifications.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/packages.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/pagesdomains.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/personal_access_tokens.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/pipelines_and_jobs.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/project_access_tokens.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/protected_branches.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/protected_container_repositories.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/protected_environments.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/protected_packages.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/releases.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/remote_mirrors.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/repositories.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/repository_tags.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/resource_groups.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/runners.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/search.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/secure_files.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/settings.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/sidekiq.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/snippets.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/statistics.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/status_checks.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/system_hooks.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/templates.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/todos.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/topics.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/users.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/variables.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/gl_objects/wikis.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/index.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/make.bat +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/docs/release-notes.rst +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/__main__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/_backends/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/_backends/graphql.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/_backends/protocol.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/_backends/requests_backend.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/base.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/cli.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/client.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/config.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/const.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/exceptions.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/py.typed +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/types.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/cli.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/access_requests.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/appearance.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/applications.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/audit_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/award_emojis.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/badges.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/boards.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/branches.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/broadcast_messages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/bulk_imports.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/ci_lint.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/cluster_agents.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/clusters.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/commits.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/container_registry.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/custom_attributes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/deploy_keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/deploy_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/deployments.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/discussions.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/draft_notes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/environments.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/epics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/export_import.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/features.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/geo_nodes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/group_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/hooks.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/integrations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/invitations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/issues.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/iterations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/job_token_scope.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/labels.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/ldap.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/members.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/merge_request_approvals.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/merge_requests.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/merge_trains.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/milestones.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/namespaces.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/notes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/notification_settings.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/package_protection_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/pages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/personal_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/pipelines.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/project_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/push_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/registry_protection_repository_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/registry_protection_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/releases.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/resource_groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/reviewers.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/runners.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/service_accounts.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/settings.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/sidekiq.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/statistics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/status_checks.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/tags.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/templates.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/todos.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/topics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/triggers.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/users.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/variables.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/gitlab/v4/objects/wikis.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/pyproject.toml +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/python_gitlab.egg-info/dependency_links.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/python_gitlab.egg-info/entry_points.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/python_gitlab.egg-info/requires.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/python_gitlab.egg-info/top_level.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/requirements-docker.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/requirements-docs.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/requirements-lint.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/requirements-precommit.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/requirements-test.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/requirements.txt +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/setup.cfg +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_boards.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_branches.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_bulk_imports.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_current_user.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_deploy_keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_deploy_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_epics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_gitlab.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_graphql.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_issues.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_lazy_objects.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_merge_requests.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_packages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_project_job_token_scope.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_push_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_registry.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_releases.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_repository.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_services.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_snippets.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_statistics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_topics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_users.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_variables.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/api/test_wikis.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_artifacts.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_files.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_packages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_projects.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_repository.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_resource_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_users.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_v4.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/cli/test_cli_variables.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/ee-test.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/.env +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/avatar.png +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/create_license.rb +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/docker-compose.yml +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/docker.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/invalid_auth.cfg +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/invalid_version.cfg +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/fixtures/set_token.rb +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/functional/helpers.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/install/test_install.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/smoke/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/smoke/test_dists.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/_backends/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/_backends/test_requests_backend.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/base/test_rest_manager.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/base/test_rest_object.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/helpers.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/meta/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/meta/test_ensure_type_hints.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/meta/test_imports.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/meta/test_mro.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/mixins/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/mixins/test_meta_mixins.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/mixins/test_mixin_methods.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/mixins/test_object_mixins_attributes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/__init__.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/conftest.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_appearance.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_applications.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_audit_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_badges.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_bridges.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_bulk_imports.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_ci_lint.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_cluster_agents.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_commits.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_deploy_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_deployments.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_draft_notes.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_environments.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_group_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_hooks.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_invitations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_issues.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_iterations.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_job_artifacts.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_job_token_scope.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_jobs.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_keys.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_members.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_merge_request_pipelines.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_merge_requests.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_merge_trains.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_package_protection_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_packages.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_personal_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_pipeline_schedules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_pipelines.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_project_access_tokens.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_project_import_export.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_project_merge_request_approvals.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_project_statistics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_registry_protection_rules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_registry_repositories.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_releases.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_remote_mirrors.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_repositories.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_resource_groups.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_resource_iteration_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_resource_label_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_resource_milestone_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_resource_state_events.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_runners.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_secure_files.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_services.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_snippets.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_statistics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_status_checks.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_submodules.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_templates.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_todos.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_topics.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_users.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/objects/test_variables.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_cli.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_config.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_exceptions.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_gitlab.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_gitlab_auth.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_gitlab_http_methods.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_graphql.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_retry.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_types.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tests/unit/test_utils.py +0 -0
- {python_gitlab-5.4.0 → python_gitlab-5.5.0}/tox.ini +0 -0
@@ -1,6 +1,39 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v5.5.0 (2025-01-28)
|
5
|
+
|
6
|
+
### Chores
|
7
|
+
|
8
|
+
- Add deprecation warning for mirror_pull functions
|
9
|
+
([`7f6fd5c`](https://github.com/python-gitlab/python-gitlab/commit/7f6fd5c3aac5e2f18adf212adbce0ac04c7150e1))
|
10
|
+
|
11
|
+
- Relax typing constraints for response action
|
12
|
+
([`f430078`](https://github.com/python-gitlab/python-gitlab/commit/f4300782485ee6c38578fa3481061bd621656b0e))
|
13
|
+
|
14
|
+
- **tests**: Catch deprecation warnings
|
15
|
+
([`0c1af08`](https://github.com/python-gitlab/python-gitlab/commit/0c1af08bc73611d288f1f67248cff9c32c685808))
|
16
|
+
|
17
|
+
### Documentation
|
18
|
+
|
19
|
+
- Add usage of pull mirror
|
20
|
+
([`9b374b2`](https://github.com/python-gitlab/python-gitlab/commit/9b374b2c051f71b8ef10e22209b8e90730af9d9b))
|
21
|
+
|
22
|
+
- Remove old pull mirror implementation
|
23
|
+
([`9e18672`](https://github.com/python-gitlab/python-gitlab/commit/9e186726c8a5ae70ca49c56b2be09b34dbf5b642))
|
24
|
+
|
25
|
+
### Features
|
26
|
+
|
27
|
+
- **functional**: Add pull mirror test
|
28
|
+
([`3b31ade`](https://github.com/python-gitlab/python-gitlab/commit/3b31ade152eb61363a68cf0509867ff8738ccdaf))
|
29
|
+
|
30
|
+
- **projects**: Add pull mirror class
|
31
|
+
([`2411bff`](https://github.com/python-gitlab/python-gitlab/commit/2411bff4fd1dab6a1dd70070441b52e9a2927a63))
|
32
|
+
|
33
|
+
- **unit**: Add pull mirror tests
|
34
|
+
([`5c11203`](https://github.com/python-gitlab/python-gitlab/commit/5c11203a8b281f6ab34f7e85073fadcfc395503c))
|
35
|
+
|
36
|
+
|
4
37
|
## v5.4.0 (2025-01-28)
|
5
38
|
|
6
39
|
### Bug Fixes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: python-gitlab
|
3
|
-
Version: 5.
|
3
|
+
Version: 5.5.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>
|
@@ -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,
|
@@ -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,
|
@@ -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.5.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
|
@@ -330,6 +331,7 @@ tests/unit/objects/test_project_import_export.py
|
|
330
331
|
tests/unit/objects/test_project_merge_request_approvals.py
|
331
332
|
tests/unit/objects/test_project_statistics.py
|
332
333
|
tests/unit/objects/test_projects.py
|
334
|
+
tests/unit/objects/test_pull_mirror.py
|
333
335
|
tests/unit/objects/test_registry_protection_rules.py
|
334
336
|
tests/unit/objects/test_registry_repositories.py
|
335
337
|
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.
|
@@ -768,11 +768,13 @@ def test_transfer_project(project, resp_transfer_project):
|
|
768
768
|
|
769
769
|
|
770
770
|
def test_project_pull_mirror(project, resp_start_pull_mirroring_project):
|
771
|
-
|
771
|
+
with pytest.warns(DeprecationWarning, match="is deprecated"):
|
772
|
+
project.mirror_pull()
|
772
773
|
|
773
774
|
|
774
775
|
def test_project_pull_mirror_details(project, resp_pull_mirror_details_project):
|
775
|
-
|
776
|
+
with pytest.warns(DeprecationWarning, match="is deprecated"):
|
777
|
+
details = project.mirror_pull_details()
|
776
778
|
assert details["last_error"] is None
|
777
779
|
assert details["update_status"] == "finished"
|
778
780
|
|
@@ -0,0 +1,67 @@
|
|
1
|
+
"""
|
2
|
+
GitLab API: https://docs.gitlab.com/ce/api/pull_mirror.html
|
3
|
+
"""
|
4
|
+
|
5
|
+
import pytest
|
6
|
+
import responses
|
7
|
+
|
8
|
+
from gitlab.v4.objects import ProjectPullMirror
|
9
|
+
|
10
|
+
|
11
|
+
@pytest.fixture
|
12
|
+
def resp_pull_mirror():
|
13
|
+
content = {
|
14
|
+
"update_status": "none",
|
15
|
+
"url": "https://gitlab.example.com/root/mirror.git",
|
16
|
+
"last_error": None,
|
17
|
+
"last_update_at": "2024-12-03T08:01:05.466Z",
|
18
|
+
"last_update_started_at": "2024-12-03T08:01:05.342Z",
|
19
|
+
"last_successful_update_at": None,
|
20
|
+
"enabled": True,
|
21
|
+
"mirror_trigger_builds": False,
|
22
|
+
"only_mirror_protected_branches": None,
|
23
|
+
"mirror_overwrites_diverged_branches": None,
|
24
|
+
"mirror_branch_regex": None,
|
25
|
+
}
|
26
|
+
|
27
|
+
with responses.RequestsMock(assert_all_requests_are_fired=False) as rsps:
|
28
|
+
rsps.add(
|
29
|
+
method=responses.PUT,
|
30
|
+
url="http://localhost/api/v4/projects/1/mirror/pull",
|
31
|
+
json=content,
|
32
|
+
content_type="application/json",
|
33
|
+
status=200,
|
34
|
+
)
|
35
|
+
|
36
|
+
rsps.add(
|
37
|
+
method=responses.POST,
|
38
|
+
url="http://localhost/api/v4/projects/1/mirror/pull",
|
39
|
+
status=200,
|
40
|
+
)
|
41
|
+
|
42
|
+
rsps.add(
|
43
|
+
method=responses.GET,
|
44
|
+
url="http://localhost/api/v4/projects/1/mirror/pull",
|
45
|
+
json=content,
|
46
|
+
content_type="application/json",
|
47
|
+
status=200,
|
48
|
+
)
|
49
|
+
|
50
|
+
yield rsps
|
51
|
+
|
52
|
+
|
53
|
+
def test_create_project_pull_mirror(project, resp_pull_mirror):
|
54
|
+
mirror = project.pull_mirror.create(
|
55
|
+
{"url": "https://gitlab.example.com/root/mirror.git"}
|
56
|
+
)
|
57
|
+
assert mirror.enabled
|
58
|
+
|
59
|
+
|
60
|
+
def test_start_project_pull_mirror(project, resp_pull_mirror):
|
61
|
+
project.pull_mirror.start()
|
62
|
+
|
63
|
+
|
64
|
+
def test_get_project_pull_mirror(project, resp_pull_mirror):
|
65
|
+
mirror = project.pull_mirror.get()
|
66
|
+
assert isinstance(mirror, ProjectPullMirror)
|
67
|
+
assert mirror.enabled
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|