python-gitlab 4.11.1__tar.gz → 4.12.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-4.11.1 → python_gitlab-4.12.0}/CHANGELOG.md +43 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/PKG-INFO +1 -1
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/merge_requests.rst +4 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/_version.py +1 -1
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/files.py +35 -9
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/merge_requests.py +29 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/pyproject.toml +1 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/python_gitlab.egg-info/PKG-INFO +1 -1
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/requirements-lint.txt +5 -5
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/requirements-test.txt +1 -1
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/.env +1 -1
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_merge_requests.py +104 -0
- python_gitlab-4.12.0/tests/unit/objects/test_repositories.py +96 -0
- python_gitlab-4.11.1/tests/unit/objects/test_repositories.py +0 -49
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/AUTHORS +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/COPYING +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/MANIFEST.in +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/README.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/Makefile +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/_static/js/gitter.js +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/api/gitlab.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/api/gitlab.v4.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/api-levels.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/api-objects.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/api-usage-advanced.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/api-usage-graphql.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/api-usage.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/changelog.md +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/cli-examples.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/cli-objects.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/cli-usage.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/conf.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/ext/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/ext/docstrings.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/ext/manager_tmpl.j2 +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/faq.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/access_requests.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/appearance.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/applications.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/badges.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/boards.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/branches.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/bulk_imports.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/ci_lint.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/cluster_agents.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/clusters.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/commits.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/deploy_keys.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/deploy_tokens.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/deployments.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/discussions.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/draft_notes.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/emojis.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/environments.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/epics.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/events.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/features.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/geo_nodes.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/group_access_tokens.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/groups.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/invitations.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/issues.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/iterations.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/job_token_scope.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/keys.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/labels.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/merge_request_approvals.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/merge_trains.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/messages.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/milestones.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/namespaces.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/notes.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/notifications.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/packages.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/pagesdomains.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/personal_access_tokens.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/pipelines_and_jobs.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/project_access_tokens.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/projects.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/protected_branches.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/protected_container_repositories.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/protected_environments.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/protected_packages.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/releases.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/remote_mirrors.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/repositories.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/repository_tags.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/resource_groups.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/runners.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/search.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/secure_files.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/settings.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/sidekiq.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/snippets.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/statistics.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/system_hooks.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/templates.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/todos.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/topics.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/users.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/variables.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/gl_objects/wikis.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/index.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/make.bat +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/docs/release-notes.rst +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/__main__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/_backends/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/_backends/graphql.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/_backends/protocol.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/_backends/requests_backend.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/base.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/cli.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/client.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/config.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/const.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/exceptions.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/mixins.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/py.typed +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/types.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/utils.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/cli.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/access_requests.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/appearance.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/applications.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/artifacts.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/audit_events.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/award_emojis.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/badges.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/boards.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/branches.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/broadcast_messages.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/bulk_imports.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/ci_lint.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/cluster_agents.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/clusters.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/commits.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/container_registry.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/custom_attributes.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/deploy_keys.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/deploy_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/deployments.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/discussions.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/draft_notes.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/environments.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/epics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/events.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/export_import.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/features.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/geo_nodes.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/group_access_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/groups.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/hooks.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/integrations.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/invitations.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/issues.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/iterations.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/job_token_scope.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/jobs.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/keys.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/labels.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/ldap.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/members.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/merge_request_approvals.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/merge_trains.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/milestones.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/namespaces.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/notes.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/notification_settings.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/package_protection_rules.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/packages.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/pages.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/personal_access_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/pipelines.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/project_access_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/projects.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/push_rules.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/registry_protection_rules.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/releases.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/repositories.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/resource_groups.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/reviewers.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/runners.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/secure_files.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/service_accounts.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/settings.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/sidekiq.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/snippets.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/statistics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/tags.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/templates.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/todos.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/topics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/triggers.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/users.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/variables.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/gitlab/v4/objects/wikis.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/python_gitlab.egg-info/SOURCES.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/python_gitlab.egg-info/dependency_links.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/python_gitlab.egg-info/entry_points.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/python_gitlab.egg-info/requires.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/python_gitlab.egg-info/top_level.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/requirements-docker.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/requirements-docs.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/requirements-precommit.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/requirements.txt +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/setup.cfg +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/conftest.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_boards.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_branches.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_bulk_imports.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_current_user.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_deploy_keys.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_deploy_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_epics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_gitlab.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_graphql.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_groups.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_import_export.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_issues.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_keys.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_lazy_objects.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_merge_requests.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_packages.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_project_job_token_scope.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_projects.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_push_rules.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_registry.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_releases.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_repository.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_services.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_snippets.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_statistics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_topics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_users.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_variables.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/api/test_wikis.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/conftest.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli_artifacts.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli_packages.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli_projects.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli_repository.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli_resource_access_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli_users.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli_v4.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/cli/test_cli_variables.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/conftest.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/ee-test.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/avatar.png +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/create_license.rb +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/docker-compose.yml +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/docker.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/invalid_auth.cfg +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/invalid_version.cfg +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/fixtures/set_token.rb +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/functional/helpers.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/install/test_install.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/smoke/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/smoke/test_dists.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/_backends/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/_backends/test_requests_backend.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/base/test_rest_manager.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/base/test_rest_object.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/conftest.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/helpers.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/meta/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/meta/test_ensure_type_hints.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/meta/test_imports.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/meta/test_mro.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/mixins/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/mixins/test_meta_mixins.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/mixins/test_mixin_methods.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/mixins/test_object_mixins_attributes.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/__init__.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/conftest.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_appearance.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_applications.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_audit_events.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_badges.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_bridges.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_bulk_imports.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_ci_lint.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_cluster_agents.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_commits.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_deploy_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_deployments.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_draft_notes.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_environments.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_group_access_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_groups.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_hooks.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_invitations.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_issues.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_iterations.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_job_artifacts.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_job_token_scope.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_jobs.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_keys.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_members.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_merge_request_pipelines.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_merge_trains.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_package_protection_rules.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_packages.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_personal_access_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_pipeline_schedules.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_pipelines.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_project_access_tokens.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_project_import_export.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_project_merge_request_approvals.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_project_statistics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_projects.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_registry_protection_rules.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_registry_repositories.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_releases.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_remote_mirrors.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_resource_groups.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_resource_iteration_events.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_resource_label_events.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_resource_milestone_events.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_resource_state_events.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_runners.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_secure_files.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_services.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_snippets.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_statistics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_submodules.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_todos.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_topics.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_users.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/objects/test_variables.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_cli.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_config.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_exceptions.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_gitlab.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_gitlab_auth.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_gitlab_http_methods.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_graphql.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_retry.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_types.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tests/unit/test_utils.py +0 -0
- {python_gitlab-4.11.1 → python_gitlab-4.12.0}/tox.ini +0 -0
@@ -1,5 +1,48 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v4.12.0 (2024-09-28)
|
4
|
+
|
5
|
+
### Chore
|
6
|
+
|
7
|
+
* chore(deps): update all non-major dependencies ([`ae132e7`](https://github.com/python-gitlab/python-gitlab/commit/ae132e7a1efef6b0ae2f2a7d335668784648e3c7))
|
8
|
+
|
9
|
+
* chore: update pylint to 3.3.1 and resolve issues (#2997)
|
10
|
+
|
11
|
+
pylint 3.3.1 appears to have added "too-many-positional-arguments"
|
12
|
+
check with a value of 5.
|
13
|
+
|
14
|
+
I don't disagree with this, but we have many functions which exceed
|
15
|
+
this value. We might think about converting some of positional
|
16
|
+
arguments over to keyword arguments in the future. But that is for
|
17
|
+
another time.
|
18
|
+
|
19
|
+
For now disable the check across the project. ([`a0729b8`](https://github.com/python-gitlab/python-gitlab/commit/a0729b83e63bcd74f522bf57a87a5800b1cf19d1))
|
20
|
+
|
21
|
+
* chore(deps): update dependency types-setuptools to v75 ([`a2ab54c`](https://github.com/python-gitlab/python-gitlab/commit/a2ab54ceb40eca1e6e71f7779a418591426b2b2c))
|
22
|
+
|
23
|
+
* chore(deps): update gitlab/gitlab-ee docker tag to v17.4.0-ee.0 ([`8601808`](https://github.com/python-gitlab/python-gitlab/commit/860180862d952ed25cf95df1a4f825664f7e1c4b))
|
24
|
+
|
25
|
+
* chore(deps): update all non-major dependencies ([`10ee58a`](https://github.com/python-gitlab/python-gitlab/commit/10ee58a01fdc8071f29ae0095d9ea8a4424fa728))
|
26
|
+
|
27
|
+
* chore(deps): update gitlab/gitlab-ee docker tag to v17.3.2-ee.0 ([`5cd1ab2`](https://github.com/python-gitlab/python-gitlab/commit/5cd1ab202e3e7b64d626d2c4e62b1662a4285015))
|
28
|
+
|
29
|
+
### Feature
|
30
|
+
|
31
|
+
* feat(build): build multi-arch images (#2987) ([`29f617d`](https://github.com/python-gitlab/python-gitlab/commit/29f617d7d368636791baf703ecdbd22583356674))
|
32
|
+
|
33
|
+
* feat: introduce related_issues to merge requests (#2996) ([`174d992`](https://github.com/python-gitlab/python-gitlab/commit/174d992e49f1e5171fee8893a1713f30324bbf97))
|
34
|
+
|
35
|
+
### Fix
|
36
|
+
|
37
|
+
* fix(api): head requests for projectfilemanager (#2977)
|
38
|
+
|
39
|
+
* fix(api): head requests for projectfilemanager
|
40
|
+
|
41
|
+
---------
|
42
|
+
|
43
|
+
Co-authored-by: Patrick Evans <patrick.evans@gehealthcare.com>
|
44
|
+
Co-authored-by: Nejc Habjan <hab.nejc@gmail.com> ([`96a18b0`](https://github.com/python-gitlab/python-gitlab/commit/96a18b065dac4ce612a128f03e2fc6d1b4ccd69e))
|
45
|
+
|
3
46
|
## v4.11.1 (2024-09-13)
|
4
47
|
|
5
48
|
### Fix
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: python-gitlab
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.12.0
|
4
4
|
Summary: A python wrapper for the GitLab API
|
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,11 +2,11 @@ import base64
|
|
2
2
|
from typing import (
|
3
3
|
Any,
|
4
4
|
Callable,
|
5
|
-
cast,
|
6
5
|
Dict,
|
7
6
|
Iterator,
|
8
7
|
List,
|
9
8
|
Optional,
|
9
|
+
Tuple,
|
10
10
|
TYPE_CHECKING,
|
11
11
|
Union,
|
12
12
|
)
|
@@ -20,7 +20,6 @@ from gitlab.base import RESTManager, RESTObject
|
|
20
20
|
from gitlab.mixins import (
|
21
21
|
CreateMixin,
|
22
22
|
DeleteMixin,
|
23
|
-
GetMixin,
|
24
23
|
ObjectDeleteMixin,
|
25
24
|
SaveMixin,
|
26
25
|
UpdateMixin,
|
@@ -96,10 +95,11 @@ class ProjectFile(SaveMixin, ObjectDeleteMixin, RESTObject):
|
|
96
95
|
self.manager.delete(file_path, branch, commit_message, **kwargs)
|
97
96
|
|
98
97
|
|
99
|
-
class ProjectFileManager(
|
98
|
+
class ProjectFileManager(CreateMixin, UpdateMixin, DeleteMixin, RESTManager):
|
100
99
|
_path = "/projects/{project_id}/repository/files"
|
101
100
|
_obj_cls = ProjectFile
|
102
101
|
_from_parent_attrs = {"project_id": "id"}
|
102
|
+
_optional_get_attrs: Tuple[str, ...] = ()
|
103
103
|
_create_attrs = RequiredOptional(
|
104
104
|
required=("file_path", "branch", "content", "commit_message"),
|
105
105
|
optional=("encoding", "author_email", "author_name"),
|
@@ -112,11 +112,7 @@ class ProjectFileManager(GetMixin, CreateMixin, UpdateMixin, DeleteMixin, RESTMa
|
|
112
112
|
@cli.register_custom_action(
|
113
113
|
cls_names="ProjectFileManager", required=("file_path", "ref")
|
114
114
|
)
|
115
|
-
|
116
|
-
# type error
|
117
|
-
def get( # type: ignore
|
118
|
-
self, file_path: str, ref: str, **kwargs: Any
|
119
|
-
) -> ProjectFile:
|
115
|
+
def get(self, file_path: str, ref: str, **kwargs: Any) -> ProjectFile:
|
120
116
|
"""Retrieve a single file.
|
121
117
|
|
122
118
|
Args:
|
@@ -131,7 +127,37 @@ class ProjectFileManager(GetMixin, CreateMixin, UpdateMixin, DeleteMixin, RESTMa
|
|
131
127
|
Returns:
|
132
128
|
The generated RESTObject
|
133
129
|
"""
|
134
|
-
|
130
|
+
if TYPE_CHECKING:
|
131
|
+
assert file_path is not None
|
132
|
+
file_path = utils.EncodedId(file_path)
|
133
|
+
path = f"{self.path}/{file_path}"
|
134
|
+
server_data = self.gitlab.http_get(path, ref=ref, **kwargs)
|
135
|
+
if TYPE_CHECKING:
|
136
|
+
assert isinstance(server_data, dict)
|
137
|
+
return self._obj_cls(self, server_data)
|
138
|
+
|
139
|
+
def head(
|
140
|
+
self, file_path: str, ref: str, **kwargs: Any
|
141
|
+
) -> "requests.structures.CaseInsensitiveDict[Any]":
|
142
|
+
"""Retrieve just metadata for a single file.
|
143
|
+
|
144
|
+
Args:
|
145
|
+
file_path: Path of the file to retrieve
|
146
|
+
ref: Name of the branch, tag or commit
|
147
|
+
**kwargs: Extra options to send to the server (e.g. sudo)
|
148
|
+
|
149
|
+
Raises:
|
150
|
+
GitlabAuthenticationError: If authentication is not correct
|
151
|
+
GitlabGetError: If the file could not be retrieved
|
152
|
+
|
153
|
+
Returns:
|
154
|
+
The response headers as a dictionary
|
155
|
+
"""
|
156
|
+
if TYPE_CHECKING:
|
157
|
+
assert file_path is not None
|
158
|
+
file_path = utils.EncodedId(file_path)
|
159
|
+
path = f"{self.path}/{file_path}"
|
160
|
+
return self.gitlab.http_head(path, ref=ref, **kwargs)
|
135
161
|
|
136
162
|
@cli.register_custom_action(
|
137
163
|
cls_names="ProjectFileManager",
|
@@ -197,6 +197,35 @@ class ProjectMergeRequest(
|
|
197
197
|
assert isinstance(server_data, dict)
|
198
198
|
return server_data
|
199
199
|
|
200
|
+
@cli.register_custom_action(cls_names="ProjectMergeRequest")
|
201
|
+
@exc.on_http_error(exc.GitlabListError)
|
202
|
+
def related_issues(self, **kwargs: Any) -> RESTObjectList:
|
203
|
+
"""List issues related to this merge request."
|
204
|
+
|
205
|
+
Args:
|
206
|
+
all: If True, return all the items, without pagination
|
207
|
+
per_page: Number of items to retrieve per request
|
208
|
+
page: ID of the page to return (starts with page 1)
|
209
|
+
**kwargs: Extra options to send to the server (e.g. sudo)
|
210
|
+
|
211
|
+
Raises:
|
212
|
+
GitlabAuthenticationError: If authentication is not correct
|
213
|
+
GitlabListError: If the list could not be retrieved
|
214
|
+
|
215
|
+
Returns:
|
216
|
+
List of issues
|
217
|
+
"""
|
218
|
+
|
219
|
+
path = f"{self.manager.path}/{self.encoded_id}/related_issues"
|
220
|
+
data_list = self.manager.gitlab.http_list(path, iterator=True, **kwargs)
|
221
|
+
|
222
|
+
if TYPE_CHECKING:
|
223
|
+
assert isinstance(data_list, gitlab.GitlabList)
|
224
|
+
|
225
|
+
manager = ProjectIssueManager(self.manager.gitlab, parent=self.manager._parent)
|
226
|
+
|
227
|
+
return RESTObjectList(manager, ProjectIssue, data_list)
|
228
|
+
|
200
229
|
@cli.register_custom_action(cls_names="ProjectMergeRequest")
|
201
230
|
@exc.on_http_error(exc.GitlabListError)
|
202
231
|
def closes_issues(self, **kwargs: Any) -> RESTObjectList:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: python-gitlab
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.12.0
|
4
4
|
Summary: A python wrapper for the GitLab API
|
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>
|
@@ -5,10 +5,10 @@ commitizen==3.29.0
|
|
5
5
|
flake8==7.1.1
|
6
6
|
isort==5.13.2
|
7
7
|
mypy==1.11.2
|
8
|
-
pylint==3.
|
9
|
-
pytest==8.3.
|
8
|
+
pylint==3.3.1
|
9
|
+
pytest==8.3.3
|
10
10
|
responses==0.25.3
|
11
11
|
respx==0.21.1
|
12
|
-
types-PyYAML==6.0.12.
|
13
|
-
types-requests==2.32.0.
|
14
|
-
types-setuptools==
|
12
|
+
types-PyYAML==6.0.12.20240917
|
13
|
+
types-requests==2.32.0.20240914
|
14
|
+
types-setuptools==75.1.0.20240917
|
@@ -1,2 +1,2 @@
|
|
1
1
|
GITLAB_IMAGE=gitlab/gitlab-ee
|
2
|
-
GITLAB_TAG=17.
|
2
|
+
GITLAB_TAG=17.4.0-ee.0
|
@@ -9,8 +9,10 @@ import re
|
|
9
9
|
import pytest
|
10
10
|
import responses
|
11
11
|
|
12
|
+
from gitlab.base import RESTObjectList
|
12
13
|
from gitlab.v4.objects import (
|
13
14
|
ProjectDeploymentMergeRequest,
|
15
|
+
ProjectIssue,
|
14
16
|
ProjectMergeRequest,
|
15
17
|
ProjectMergeRequestReviewerDetail,
|
16
18
|
)
|
@@ -57,6 +59,78 @@ reviewers_content = [
|
|
57
59
|
}
|
58
60
|
]
|
59
61
|
|
62
|
+
related_issues = [
|
63
|
+
{
|
64
|
+
"id": 1,
|
65
|
+
"iid": 1,
|
66
|
+
"project_id": 1,
|
67
|
+
"title": "Fake Title for Merge Requests via API",
|
68
|
+
"description": "Something here",
|
69
|
+
"state": "closed",
|
70
|
+
"created_at": "2024-05-14T04:01:40.042Z",
|
71
|
+
"updated_at": "2024-06-13T05:29:13.661Z",
|
72
|
+
"closed_at": "2024-06-13T05:29:13.602Z",
|
73
|
+
"closed_by": {
|
74
|
+
"id": 2,
|
75
|
+
"name": "Sam Bauch",
|
76
|
+
"username": "kenyatta_oconnell",
|
77
|
+
"state": "active",
|
78
|
+
"avatar_url": "https://www.gravatar.com/avatar/956c92487c6f6f7616b536927e22c9a0?s=80&d=identicon",
|
79
|
+
"web_url": "http://gitlab.example.com/kenyatta_oconnell",
|
80
|
+
},
|
81
|
+
"labels": [
|
82
|
+
"FakeCategory",
|
83
|
+
"fake:ml",
|
84
|
+
],
|
85
|
+
"assignees": [
|
86
|
+
{
|
87
|
+
"id": 2,
|
88
|
+
"name": "Sam Bauch",
|
89
|
+
"username": "kenyatta_oconnell",
|
90
|
+
"state": "active",
|
91
|
+
"avatar_url": "https://www.gravatar.com/avatar/956c92487c6f6f7616b536927e22c9a0?s=80&d=identicon",
|
92
|
+
"web_url": "http://gitlab.example.com/kenyatta_oconnell",
|
93
|
+
}
|
94
|
+
],
|
95
|
+
"author": {
|
96
|
+
"id": 2,
|
97
|
+
"name": "Sam Bauch",
|
98
|
+
"username": "kenyatta_oconnell",
|
99
|
+
"state": "active",
|
100
|
+
"avatar_url": "https://www.gravatar.com/avatar/956c92487c6f6f7616b536927e22c9a0?s=80&d=identicon",
|
101
|
+
"web_url": "http://gitlab.example.com//kenyatta_oconnell",
|
102
|
+
},
|
103
|
+
"type": "ISSUE",
|
104
|
+
"assignee": {
|
105
|
+
"id": 4459593,
|
106
|
+
"username": "fakeuser",
|
107
|
+
"name": "Fake User",
|
108
|
+
"state": "active",
|
109
|
+
"locked": False,
|
110
|
+
"avatar_url": "https://example.com/uploads/-/system/user/avatar/4459593/avatar.png",
|
111
|
+
"web_url": "https://example.com/fakeuser",
|
112
|
+
},
|
113
|
+
"user_notes_count": 9,
|
114
|
+
"merge_requests_count": 0,
|
115
|
+
"upvotes": 1,
|
116
|
+
"downvotes": 0,
|
117
|
+
"due_date": None,
|
118
|
+
"confidential": False,
|
119
|
+
"discussion_locked": None,
|
120
|
+
"issue_type": "issue",
|
121
|
+
"web_url": "https://example.com/fakeorg/fakeproject/-/issues/461536",
|
122
|
+
"time_stats": {
|
123
|
+
"time_estimate": 0,
|
124
|
+
"total_time_spent": 0,
|
125
|
+
"human_time_estimate": None,
|
126
|
+
"human_total_time_spent": None,
|
127
|
+
},
|
128
|
+
"task_completion_status": {"count": 0, "completed_count": 0},
|
129
|
+
"weight": None,
|
130
|
+
"blocking_issues_count": 0,
|
131
|
+
}
|
132
|
+
]
|
133
|
+
|
60
134
|
|
61
135
|
@pytest.fixture
|
62
136
|
def resp_list_merge_requests():
|
@@ -93,6 +167,26 @@ def resp_get_merge_request_reviewers():
|
|
93
167
|
yield rsps
|
94
168
|
|
95
169
|
|
170
|
+
@pytest.fixture
|
171
|
+
def resp_list_merge_requests_related_issues():
|
172
|
+
with responses.RequestsMock() as rsps:
|
173
|
+
rsps.add(
|
174
|
+
method=responses.GET,
|
175
|
+
url="http://localhost/api/v4/projects/1/merge_requests/1",
|
176
|
+
json=mr_content,
|
177
|
+
content_type="application/json",
|
178
|
+
status=200,
|
179
|
+
)
|
180
|
+
rsps.add(
|
181
|
+
method=responses.GET,
|
182
|
+
url="http://localhost/api/v4/projects/1/merge_requests/1/related_issues",
|
183
|
+
json=related_issues,
|
184
|
+
content_type="application/json",
|
185
|
+
status=200,
|
186
|
+
)
|
187
|
+
yield rsps
|
188
|
+
|
189
|
+
|
96
190
|
def test_list_project_merge_requests(project, resp_list_merge_requests):
|
97
191
|
mrs = project.mergerequests.list()
|
98
192
|
assert isinstance(mrs[0], ProjectMergeRequest)
|
@@ -115,3 +209,13 @@ def test_get_merge_request_reviewers(project, resp_get_merge_request_reviewers):
|
|
115
209
|
assert mr.reviewers[0]["name"] == reviewers_details[0].user["name"]
|
116
210
|
assert reviewers_details[0].state == "unreviewed"
|
117
211
|
assert reviewers_details[0].created_at == "2022-07-27T17:03:27.684Z"
|
212
|
+
|
213
|
+
|
214
|
+
def test_list_related_issues(project, resp_list_merge_requests_related_issues):
|
215
|
+
mr = project.mergerequests.get(1)
|
216
|
+
this_mr_related_issues = mr.related_issues()
|
217
|
+
the_issue = next(iter(this_mr_related_issues))
|
218
|
+
assert isinstance(mr, ProjectMergeRequest)
|
219
|
+
assert isinstance(this_mr_related_issues, RESTObjectList)
|
220
|
+
assert isinstance(the_issue, ProjectIssue)
|
221
|
+
assert the_issue.title == related_issues[0]["title"]
|
@@ -0,0 +1,96 @@
|
|
1
|
+
"""
|
2
|
+
GitLab API:
|
3
|
+
https://docs.gitlab.com/ee/api/repositories.html
|
4
|
+
https://docs.gitlab.com/ee/api/repository_files.html
|
5
|
+
"""
|
6
|
+
|
7
|
+
from urllib.parse import quote
|
8
|
+
|
9
|
+
import pytest
|
10
|
+
import responses
|
11
|
+
from requests.structures import CaseInsensitiveDict
|
12
|
+
|
13
|
+
from gitlab.v4.objects import ProjectFile
|
14
|
+
|
15
|
+
file_path = "app/models/key.rb"
|
16
|
+
ref = "main"
|
17
|
+
|
18
|
+
|
19
|
+
@pytest.fixture
|
20
|
+
def resp_head_repository_file():
|
21
|
+
header_response = {
|
22
|
+
"Cache-Control": "no-cache",
|
23
|
+
"Content-Length": "0",
|
24
|
+
"Content-Type": "application/json",
|
25
|
+
"Date": "Thu, 12 Sep 2024 14:27:49 GMT",
|
26
|
+
"Referrer-Policy": "strict-origin-when-cross-origin",
|
27
|
+
"Server": "nginx",
|
28
|
+
"Strict-Transport-Security": "max-age=63072000",
|
29
|
+
"Vary": "Origin",
|
30
|
+
"X-Content-Type-Options": "nosniff",
|
31
|
+
"X-Frame-Options": "SAMEORIGIN",
|
32
|
+
"X-Gitlab-Blob-Id": "79f7bbd25901e8334750839545a9bd021f0e4c83",
|
33
|
+
"X-Gitlab-Commit-Id": "d5a3ff139356ce33e37e73add446f16869741b50",
|
34
|
+
"X-Gitlab-Content-Sha256": "4c294617b60715c1d218e61164a3abd4808a4284cbc30e6728a01ad9aada4481",
|
35
|
+
"X-Gitlab-Encoding": "base64",
|
36
|
+
"X-Gitlab-Execute-Filemode": "false",
|
37
|
+
"X-Gitlab-File-Name": "key.rb",
|
38
|
+
"X-Gitlab-File-Path": file_path,
|
39
|
+
"X-Gitlab-Last-Commit-Id": "570e7b2abdd848b95f2f578043fc23bd6f6fd24d",
|
40
|
+
"X-Gitlab-Meta": '{"correlation_id":"01J7KFRPXBX65Y04HEH7MFX4GD","version":"1"}',
|
41
|
+
"X-Gitlab-Ref": ref,
|
42
|
+
"X-Gitlab-Size": "1476",
|
43
|
+
"X-Request-Id": "01J7KFRPXBX65Y04HEH7MFX4GD",
|
44
|
+
"X-Runtime": "0.083199",
|
45
|
+
"Connection": "keep-alive",
|
46
|
+
}
|
47
|
+
encoded_path = quote(file_path, safe="")
|
48
|
+
|
49
|
+
with responses.RequestsMock() as rsps:
|
50
|
+
rsps.add(
|
51
|
+
method=responses.HEAD,
|
52
|
+
url=f"http://localhost/api/v4/projects/1/repository/files/{encoded_path}",
|
53
|
+
headers=header_response,
|
54
|
+
status=200,
|
55
|
+
)
|
56
|
+
yield rsps
|
57
|
+
|
58
|
+
|
59
|
+
def test_head_repository_file(project, resp_head_repository_file):
|
60
|
+
headers = project.files.head(file_path, ref=ref)
|
61
|
+
assert isinstance(headers, CaseInsensitiveDict)
|
62
|
+
assert headers["X-Gitlab-File-Path"] == file_path
|
63
|
+
|
64
|
+
|
65
|
+
@pytest.fixture
|
66
|
+
def resp_get_repository_file():
|
67
|
+
file_response = {
|
68
|
+
"file_name": "key.rb",
|
69
|
+
"file_path": file_path,
|
70
|
+
"size": 1476,
|
71
|
+
"encoding": "base64",
|
72
|
+
"content": "IyA9PSBTY2hlbWEgSW5mb3...",
|
73
|
+
"content_sha256": "4c294617b60715c1d218e61164a3abd4808a4284cbc30e6728a01ad9aada4481",
|
74
|
+
"ref": ref,
|
75
|
+
"blob_id": "79f7bbd25901e8334750839545a9bd021f0e4c83",
|
76
|
+
"commit_id": "d5a3ff139356ce33e37e73add446f16869741b50",
|
77
|
+
"last_commit_id": "570e7b2abdd848b95f2f578043fc23bd6f6fd24d",
|
78
|
+
}
|
79
|
+
|
80
|
+
encoded_path = quote(file_path, safe="")
|
81
|
+
|
82
|
+
with responses.RequestsMock() as rsps:
|
83
|
+
rsps.add(
|
84
|
+
method=responses.GET,
|
85
|
+
url=f"http://localhost/api/v4/projects/1/repository/files/{encoded_path}",
|
86
|
+
json=file_response,
|
87
|
+
content_type="application/json",
|
88
|
+
status=200,
|
89
|
+
)
|
90
|
+
yield rsps
|
91
|
+
|
92
|
+
|
93
|
+
def test_get_repository_file(project, resp_get_repository_file):
|
94
|
+
file = project.files.get(file_path, ref=ref)
|
95
|
+
assert isinstance(file, ProjectFile)
|
96
|
+
assert file.file_path == file_path
|
@@ -1,49 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
GitLab API:
|
3
|
-
https://docs.gitlab.com/ee/api/repositories.html
|
4
|
-
https://docs.gitlab.com/ee/api/repository_files.html
|
5
|
-
"""
|
6
|
-
|
7
|
-
from urllib.parse import quote
|
8
|
-
|
9
|
-
import pytest
|
10
|
-
import responses
|
11
|
-
|
12
|
-
from gitlab.v4.objects import ProjectFile
|
13
|
-
|
14
|
-
file_path = "app/models/key.rb"
|
15
|
-
ref = "main"
|
16
|
-
|
17
|
-
|
18
|
-
@pytest.fixture
|
19
|
-
def resp_get_repository_file():
|
20
|
-
file_response = {
|
21
|
-
"file_name": "key.rb",
|
22
|
-
"file_path": file_path,
|
23
|
-
"size": 1476,
|
24
|
-
"encoding": "base64",
|
25
|
-
"content": "IyA9PSBTY2hlbWEgSW5mb3...",
|
26
|
-
"content_sha256": "4c294617b60715c1d218e61164a3abd4808a4284cbc30e6728a01ad9aada4481",
|
27
|
-
"ref": ref,
|
28
|
-
"blob_id": "79f7bbd25901e8334750839545a9bd021f0e4c83",
|
29
|
-
"commit_id": "d5a3ff139356ce33e37e73add446f16869741b50",
|
30
|
-
"last_commit_id": "570e7b2abdd848b95f2f578043fc23bd6f6fd24d",
|
31
|
-
}
|
32
|
-
|
33
|
-
encoded_path = quote(file_path, safe="")
|
34
|
-
|
35
|
-
with responses.RequestsMock() as rsps:
|
36
|
-
rsps.add(
|
37
|
-
method=responses.GET,
|
38
|
-
url=f"http://localhost/api/v4/projects/1/repository/files/{encoded_path}",
|
39
|
-
json=file_response,
|
40
|
-
content_type="application/json",
|
41
|
-
status=200,
|
42
|
-
)
|
43
|
-
yield rsps
|
44
|
-
|
45
|
-
|
46
|
-
def test_get_repository_file(project, resp_get_repository_file):
|
47
|
-
file = project.files.get(file_path, ref=ref)
|
48
|
-
assert isinstance(file, ProjectFile)
|
49
|
-
assert file.file_path == file_path
|
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
|
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
|