python-gitlab 4.3.0__tar.gz → 4.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-4.3.0 → python_gitlab-4.5.0}/CHANGELOG.md +325 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/PKG-INFO +18 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/README.rst +17 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/api-usage.rst +5 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/cli-examples.rst +6 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/faq.rst +20 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/group_access_tokens.rst +15 -1
- python_gitlab-4.5.0/docs/gl_objects/job_token_scope.rst +101 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/merge_requests.rst +4 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/personal_access_tokens.rst +10 -4
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/project_access_tokens.rst +15 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/protected_branches.rst +5 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/_backends/protocol.py +2 -4
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/_version.py +1 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/cli.py +23 -5
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/client.py +0 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/exceptions.py +5 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/mixins.py +59 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/utils.py +3 -3
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/cli.py +9 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/__init__.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/artifacts.py +2 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/audit_events.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/branches.py +10 -3
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/deployments.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/features.py +1 -0
- python_gitlab-4.5.0/gitlab/v4/objects/group_access_tokens.py +38 -0
- python_gitlab-4.5.0/gitlab/v4/objects/job_token_scope.py +77 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/jobs.py +4 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/merge_request_approvals.py +4 -56
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/merge_requests.py +3 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/personal_access_tokens.py +10 -3
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/pipelines.py +2 -1
- python_gitlab-4.5.0/gitlab/v4/objects/project_access_tokens.py +38 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/projects.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/repositories.py +1 -0
- python_gitlab-4.5.0/gitlab/v4/objects/reviewers.py +17 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/secure_files.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/users.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/variables.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/python_gitlab.egg-info/PKG-INFO +18 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/python_gitlab.egg-info/SOURCES.txt +2 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/requirements-docker.txt +1 -1
- python_gitlab-4.5.0/requirements-docs.txt +6 -0
- python_gitlab-4.5.0/requirements-lint.txt +13 -0
- python_gitlab-4.5.0/requirements-precommit.txt +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/requirements-test.txt +6 -6
- python_gitlab-4.5.0/requirements.txt +3 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_boards.py +0 -2
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_bulk_imports.py +29 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_current_user.py +1 -3
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_deploy_keys.py +1 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_deploy_tokens.py +6 -6
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_epics.py +0 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_gitlab.py +1 -3
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_groups.py +4 -8
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_import_export.py +9 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_issues.py +1 -8
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_keys.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_lazy_objects.py +5 -2
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_merge_requests.py +33 -29
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_packages.py +1 -0
- python_gitlab-4.5.0/tests/functional/api/test_project_job_token_scope.py +116 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_projects.py +27 -19
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_releases.py +0 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_repository.py +1 -3
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_services.py +1 -3
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_snippets.py +12 -6
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_topics.py +0 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_users.py +32 -27
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_variables.py +0 -3
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/conftest.py +11 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli.py +16 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli_repository.py +15 -7
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli_resource_access_tokens.py +5 -2
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli_users.py +5 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli_v4.py +19 -39
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/conftest.py +30 -48
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/.env +1 -1
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/docker.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/set_token.rb +1 -1
- python_gitlab-4.5.0/tests/functional/helpers.py +71 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/smoke/test_dists.py +7 -7
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/meta/test_ensure_type_hints.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/meta/test_imports.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/meta/test_mro.py +4 -6
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/conftest.py +15 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_badges.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_bridges.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_deploy_tokens.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_deployments.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_draft_notes.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_environments.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_group_access_tokens.py +45 -27
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_issues.py +1 -0
- python_gitlab-4.5.0/tests/unit/objects/test_job_token_scope.py +202 -0
- python_gitlab-4.5.0/tests/unit/objects/test_jobs.py +170 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_keys.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_members.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_merge_request_pipelines.py +1 -0
- python_gitlab-4.5.0/tests/unit/objects/test_merge_requests.py +117 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_merge_trains.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_packages.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_personal_access_tokens.py +22 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_pipeline_schedules.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_pipelines.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_project_access_tokens.py +45 -27
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_project_import_export.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_project_merge_request_approvals.py +18 -18
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_project_statistics.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_registry_repositories.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_releases.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_repositories.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_resource_groups.py +3 -2
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_submodules.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_todos.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_topics.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_users.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/test_cli.py +66 -6
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/test_gitlab_http_methods.py +1 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tox.ini +14 -3
- python-gitlab-4.3.0/docs/gl_objects/job_token_scope.rst +0 -51
- python-gitlab-4.3.0/gitlab/v4/objects/group_access_tokens.py +0 -22
- python-gitlab-4.3.0/gitlab/v4/objects/job_token_scope.py +0 -29
- python-gitlab-4.3.0/gitlab/v4/objects/project_access_tokens.py +0 -22
- python-gitlab-4.3.0/requirements-docs.txt +0 -6
- python-gitlab-4.3.0/requirements-lint.txt +0 -13
- python-gitlab-4.3.0/requirements-precommit.txt +0 -1
- python-gitlab-4.3.0/requirements.txt +0 -3
- python-gitlab-4.3.0/tests/functional/helpers.py +0 -55
- python-gitlab-4.3.0/tests/unit/objects/test_job_token_scope.py +0 -63
- python-gitlab-4.3.0/tests/unit/objects/test_jobs.py +0 -96
- python-gitlab-4.3.0/tests/unit/objects/test_merge_requests.py +0 -56
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/AUTHORS +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/COPYING +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/MANIFEST.in +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/Makefile +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/_static/js/gitter.js +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/api/gitlab.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/api/gitlab.v4.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/api-levels.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/api-objects.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/api-usage-advanced.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/changelog.md +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/cli-objects.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/cli-usage.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/conf.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/ext/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/ext/docstrings.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/ext/manager_tmpl.j2 +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/access_requests.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/appearance.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/applications.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/badges.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/boards.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/branches.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/bulk_imports.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/ci_lint.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/clusters.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/commits.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/deploy_keys.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/deploy_tokens.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/deployments.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/discussions.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/draft_notes.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/emojis.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/environments.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/epics.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/events.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/features.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/geo_nodes.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/groups.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/invitations.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/issues.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/iterations.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/keys.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/labels.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/merge_request_approvals.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/merge_trains.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/messages.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/milestones.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/namespaces.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/notes.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/notifications.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/packages.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/pagesdomains.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/pipelines_and_jobs.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/projects.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/protected_environments.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/releases.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/remote_mirrors.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/repositories.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/repository_tags.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/resource_groups.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/runners.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/search.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/secure_files.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/settings.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/sidekiq.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/snippets.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/statistics.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/system_hooks.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/templates.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/todos.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/topics.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/users.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/variables.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/gl_objects/wikis.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/index.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/make.bat +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/docs/release-notes.rst +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/__main__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/_backends/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/_backends/requests_backend.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/base.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/config.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/const.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/py.typed +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/types.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/access_requests.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/appearance.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/applications.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/award_emojis.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/badges.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/boards.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/broadcast_messages.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/bulk_imports.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/ci_lint.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/clusters.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/commits.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/container_registry.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/custom_attributes.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/deploy_keys.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/deploy_tokens.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/discussions.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/draft_notes.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/environments.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/epics.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/events.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/export_import.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/files.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/geo_nodes.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/groups.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/hooks.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/integrations.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/invitations.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/issues.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/iterations.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/keys.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/labels.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/ldap.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/members.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/merge_trains.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/milestones.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/namespaces.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/notes.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/notification_settings.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/packages.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/pages.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/push_rules.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/releases.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/resource_groups.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/runners.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/settings.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/sidekiq.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/snippets.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/statistics.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/tags.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/templates.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/todos.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/topics.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/triggers.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/gitlab/v4/objects/wikis.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/pyproject.toml +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/python_gitlab.egg-info/dependency_links.txt +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/python_gitlab.egg-info/entry_points.txt +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/python_gitlab.egg-info/requires.txt +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/python_gitlab.egg-info/top_level.txt +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/setup.cfg +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/conftest.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_branches.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_push_rules.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_statistics.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/api/test_wikis.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli_artifacts.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli_packages.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli_projects.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/cli/test_cli_variables.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/ee-test.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/avatar.png +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/create_license.rb +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/docker-compose.yml +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/invalid_auth.cfg +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/functional/fixtures/invalid_version.cfg +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/install/test_install.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/smoke/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/_backends/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/_backends/test_requests_backend.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/base/test_rest_manager.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/base/test_rest_object.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/conftest.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/helpers.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/meta/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/mixins/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/mixins/test_meta_mixins.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/mixins/test_mixin_methods.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/mixins/test_object_mixins_attributes.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/__init__.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_appearance.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_applications.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_audit_events.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_bulk_imports.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_ci_lint.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_commits.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_groups.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_hooks.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_invitations.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_iterations.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_job_artifacts.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_projects.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_remote_mirrors.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_resource_iteration_events.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_resource_label_events.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_resource_milestone_events.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_resource_state_events.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_runners.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_secure_files.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_services.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_snippets.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_statistics.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/objects/test_variables.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/test_config.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/test_exceptions.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/test_gitlab.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/test_gitlab_auth.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/test_types.py +0 -0
- {python-gitlab-4.3.0 → python_gitlab-4.5.0}/tests/unit/test_utils.py +0 -0
@@ -2,6 +2,331 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
## v4.5.0 (2024-05-13)
|
6
|
+
|
7
|
+
### Build
|
8
|
+
|
9
|
+
* build: Add "--no-cache-dir" to pip commands in Dockerfile
|
10
|
+
|
11
|
+
This would not leave cache files in the built docker image.
|
12
|
+
|
13
|
+
Additionally, also only build the wheel in the build phase.
|
14
|
+
|
15
|
+
On my machine, before this PR, size is 74845395; after this PR, size is
|
16
|
+
72617713. ([`4ef94c8`](https://github.com/python-gitlab/python-gitlab/commit/4ef94c8260e958873bb626e86d3241daa22f7ce6))
|
17
|
+
|
18
|
+
### Chore
|
19
|
+
|
20
|
+
* chore(deps): update all non-major dependencies ([`4f338ae`](https://github.com/python-gitlab/python-gitlab/commit/4f338aed9c583a20ff5944e6ccbba5737c18b0f4))
|
21
|
+
|
22
|
+
* chore(deps): update gitlab/gitlab-ee docker tag to v16.11.2-ee.0 ([`9be48f0`](https://github.com/python-gitlab/python-gitlab/commit/9be48f0bcc2d32b5e8489f62f963389d5d54b2f2))
|
23
|
+
|
24
|
+
* chore(deps): update dependency myst-parser to v3 ([`9289189`](https://github.com/python-gitlab/python-gitlab/commit/92891890eb4730bc240213a212d392bcb869b800))
|
25
|
+
|
26
|
+
* chore(deps): update all non-major dependencies ([`65d0e65`](https://github.com/python-gitlab/python-gitlab/commit/65d0e6520dcbcf5a708a87960c65fdcaf7e44bf3))
|
27
|
+
|
28
|
+
* chore(deps): update dependency jinja2 to v3.1.4 [security] ([`8ea10c3`](https://github.com/python-gitlab/python-gitlab/commit/8ea10c360175453c721ad8e27386e642c2b68d88))
|
29
|
+
|
30
|
+
* chore(deps): update all non-major dependencies ([`1f0343c`](https://github.com/python-gitlab/python-gitlab/commit/1f0343c1154ca8ae5b1f61de1db2343a2ad652ec))
|
31
|
+
|
32
|
+
* chore(deps): update gitlab/gitlab-ee docker tag to v16.11.1-ee.0 ([`1ed8d6c`](https://github.com/python-gitlab/python-gitlab/commit/1ed8d6c21d3463b2ad09eb553871042e98090ffd))
|
33
|
+
|
34
|
+
* chore(deps): update all non-major dependencies ([`0e9f4da`](https://github.com/python-gitlab/python-gitlab/commit/0e9f4da30cea507fcf83746008d9de2ee5a3bb9d))
|
35
|
+
|
36
|
+
* chore(deps): update gitlab/gitlab-ee docker tag to v16 ([`ea8c4c2`](https://github.com/python-gitlab/python-gitlab/commit/ea8c4c2bc9f17f510415a697e0fb19cabff4135e))
|
37
|
+
|
38
|
+
* chore(deps): update all non-major dependencies ([`d5b5fb0`](https://github.com/python-gitlab/python-gitlab/commit/d5b5fb00d8947ed9733cbb5a273e2866aecf33bf))
|
39
|
+
|
40
|
+
* chore(deps): update dependency pytest-cov to v5 ([`db32000`](https://github.com/python-gitlab/python-gitlab/commit/db3200089ea83588ea7ad8bd5a7175d81f580630))
|
41
|
+
|
42
|
+
* chore: update `mypy` to 1.9.0 and resolve one issue
|
43
|
+
|
44
|
+
mypy 1.9.0 flagged one issue in the code. Resolve the issue. Current
|
45
|
+
unit tests already check that a `None` value returns `text/plain`. So
|
46
|
+
function is still working as expected. ([`dd00bfc`](https://github.com/python-gitlab/python-gitlab/commit/dd00bfc9c832aba0ed377573fe2e9120b296548d))
|
47
|
+
|
48
|
+
* chore(deps): update dependency black to v24.3.0 [security] ([`f6e8692`](https://github.com/python-gitlab/python-gitlab/commit/f6e8692cfc84b5af2eb6deec4ae1c4935b42e91c))
|
49
|
+
|
50
|
+
* chore(deps): update all non-major dependencies ([`14a3ffe`](https://github.com/python-gitlab/python-gitlab/commit/14a3ffe4cc161be51a39c204350b5cd45c602335))
|
51
|
+
|
52
|
+
* chore(deps): update all non-major dependencies ([`3c4dcca`](https://github.com/python-gitlab/python-gitlab/commit/3c4dccaf51695334a5057b85d5ff4045739d1ad1))
|
53
|
+
|
54
|
+
* chore(deps): update all non-major dependencies ([`04c569a`](https://github.com/python-gitlab/python-gitlab/commit/04c569a2130d053e35c1f2520ef8bab09f2f9651))
|
55
|
+
|
56
|
+
* chore: add tox `labels` to enable running groups of environments
|
57
|
+
|
58
|
+
tox now has a feature of `labels` which allows running groups of
|
59
|
+
environments using the command `tox -m LABEL_NAME`. For example
|
60
|
+
`tox -m lint` which has been setup to run the linters.
|
61
|
+
|
62
|
+
Bumped the minimum required version of tox to be 4.0, which was
|
63
|
+
released over a year ago. ([`d7235c7`](https://github.com/python-gitlab/python-gitlab/commit/d7235c74f8605f4abfb11eb257246864c7dcf709))
|
64
|
+
|
65
|
+
* chore: add py312 & py313 to tox environment list
|
66
|
+
|
67
|
+
Even though there isn't a Python 3.13 at this time, this is done for
|
68
|
+
the future. tox is already configured to just warn about missing
|
69
|
+
Python versions, but not fail if they don't exist. ([`679ddc7`](https://github.com/python-gitlab/python-gitlab/commit/679ddc7587d2add676fd2398cb9673bd1ca272e3))
|
70
|
+
|
71
|
+
* chore(deps): update python-semantic-release/python-semantic-release action to v9 ([`e11d889`](https://github.com/python-gitlab/python-gitlab/commit/e11d889cd19ec1555b2bbee15355a8cdfad61d5f))
|
72
|
+
|
73
|
+
* chore(deps): update all non-major dependencies ([`3c4b27e`](https://github.com/python-gitlab/python-gitlab/commit/3c4b27e64f4b51746b866f240a1291c2637355cc))
|
74
|
+
|
75
|
+
* chore(deps): update dependency furo to v2024 ([`f6fd02d`](https://github.com/python-gitlab/python-gitlab/commit/f6fd02d956529e2c4bce261fe7b3da1442aaea12))
|
76
|
+
|
77
|
+
* chore(deps): update dependency pytest to v8 ([`253babb`](https://github.com/python-gitlab/python-gitlab/commit/253babb9a7f8a7d469440fcfe1b2741ddcd8475e))
|
78
|
+
|
79
|
+
* chore(deps): update dependency pytest-docker to v3 ([`35d2aec`](https://github.com/python-gitlab/python-gitlab/commit/35d2aec04532919d6dd7b7090bc4d5209eddd10d))
|
80
|
+
|
81
|
+
* chore: update version of `black` for `pre-commit`
|
82
|
+
|
83
|
+
The version of `black` needs to be updated to be in sync with what is
|
84
|
+
in `requirements-lint.txt` ([`3501716`](https://github.com/python-gitlab/python-gitlab/commit/35017167a80809a49351f9e95916fafe61c7bfd5))
|
85
|
+
|
86
|
+
* chore(deps): update all non-major dependencies ([`7dc2fa6`](https://github.com/python-gitlab/python-gitlab/commit/7dc2fa6e632ed2c9adeb6ed32c4899ec155f6622))
|
87
|
+
|
88
|
+
* chore(deps): update codecov/codecov-action action to v4 ([`d2be1f7`](https://github.com/python-gitlab/python-gitlab/commit/d2be1f7608acadcc2682afd82d16d3706b7f7461))
|
89
|
+
|
90
|
+
* chore: adapt style for black v24 ([`4e68d32`](https://github.com/python-gitlab/python-gitlab/commit/4e68d32c77ed587ab42d229d9f44c3bc40d1d0e5))
|
91
|
+
|
92
|
+
* chore(deps): update dependency black to v24 ([`f59aee3`](https://github.com/python-gitlab/python-gitlab/commit/f59aee3ddcfaeeb29fcfab4cc6768dff6b5558cb))
|
93
|
+
|
94
|
+
* chore(deps): update all non-major dependencies ([`48726fd`](https://github.com/python-gitlab/python-gitlab/commit/48726fde9b3c2424310ff590b366b9fdefa4a146))
|
95
|
+
|
96
|
+
### Documentation
|
97
|
+
|
98
|
+
* docs: add FAQ about conflicting parameters
|
99
|
+
|
100
|
+
We have received multiple issues lately about this. Add it to the FAQ. ([`683ce72`](https://github.com/python-gitlab/python-gitlab/commit/683ce723352cc09e1a4b65db28be981ae6bb9f71))
|
101
|
+
|
102
|
+
* docs(README): tweak GitLab CI usage docs ([`d9aaa99`](https://github.com/python-gitlab/python-gitlab/commit/d9aaa994568ad4896a1e8a0533ef0d1d2ba06bfa))
|
103
|
+
|
104
|
+
* docs: how to run smoke tests
|
105
|
+
|
106
|
+
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> ([`2d1f487`](https://github.com/python-gitlab/python-gitlab/commit/2d1f4872390df10174f865f7a935bc73f7865fec))
|
107
|
+
|
108
|
+
* docs(objects): minor rst formatting typo
|
109
|
+
|
110
|
+
To correctly format a code block have to use `::` ([`57dfd17`](https://github.com/python-gitlab/python-gitlab/commit/57dfd1769b4e22b43dc0936aa3600cd7e78ba289))
|
111
|
+
|
112
|
+
* docs: correct rotate token example
|
113
|
+
|
114
|
+
Rotate token returns a dict. Change example to print the entire dict.
|
115
|
+
|
116
|
+
Closes: #2836 ([`c53e695`](https://github.com/python-gitlab/python-gitlab/commit/c53e6954f097ed10d52b40660d2fba73c2e0e300))
|
117
|
+
|
118
|
+
* docs: Note how to use the Docker image from within GitLab CI
|
119
|
+
|
120
|
+
Ref: #2823 ([`6d4bffb`](https://github.com/python-gitlab/python-gitlab/commit/6d4bffb5aaa676d32fc892ef1ac002973bc040cb))
|
121
|
+
|
122
|
+
* docs(artifacts): Fix argument indentation ([`c631eeb`](https://github.com/python-gitlab/python-gitlab/commit/c631eeb55556920f5975b1fa2b1a0354478ce3c0))
|
123
|
+
|
124
|
+
### Feature
|
125
|
+
|
126
|
+
* feat(job_token_scope): support Groups in job token allowlist API (#2816)
|
127
|
+
|
128
|
+
* feat(job_token_scope): support job token access allowlist API
|
129
|
+
|
130
|
+
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk>
|
131
|
+
l.dwp.gov.uk>
|
132
|
+
Co-authored-by: Nejc Habjan <nejc.habjan@siemens.com> ([`2d1b749`](https://github.com/python-gitlab/python-gitlab/commit/2d1b7499a93db2c9600b383e166f7463a5f22085))
|
133
|
+
|
134
|
+
* feat(cli): allow skipping initial auth calls ([`001e596`](https://github.com/python-gitlab/python-gitlab/commit/001e59675f4a417a869f813d79c298a14268b87d))
|
135
|
+
|
136
|
+
* feat(api): allow updating protected branches (#2771)
|
137
|
+
|
138
|
+
* feat(api): allow updating protected branches
|
139
|
+
|
140
|
+
Closes #2390 ([`a867c48`](https://github.com/python-gitlab/python-gitlab/commit/a867c48baa6f10ffbfb785e624a6e3888a859571))
|
141
|
+
|
142
|
+
### Fix
|
143
|
+
|
144
|
+
* fix: Consider `scope` an ArrayAttribute in PipelineJobManager
|
145
|
+
|
146
|
+
List query params like 'scope' were not being handled correctly for
|
147
|
+
pipeline/jobs endpoint.
|
148
|
+
This change ensures multiple values are appended with '[]', resulting in
|
149
|
+
the correct URL structure.
|
150
|
+
|
151
|
+
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
|
152
|
+
|
153
|
+
---
|
154
|
+
|
155
|
+
Background:
|
156
|
+
If one queries for pipeline jobs with `scope=["failed", "success"]`
|
157
|
+
|
158
|
+
One gets:
|
159
|
+
GET /api/v4/projects/176/pipelines/1113028/jobs?scope=success&scope=failed
|
160
|
+
|
161
|
+
But it is supposed to get:
|
162
|
+
GET /api/v4/projects/176/pipelines/1113028/jobs?scope[]=success&scope[]=failed
|
163
|
+
|
164
|
+
The current version only considers the last element of the list argument.
|
165
|
+
|
166
|
+
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com> ([`c5d0404`](https://github.com/python-gitlab/python-gitlab/commit/c5d0404ac9edfbfd328e7b4f07f554366377df3f))
|
167
|
+
|
168
|
+
* fix(test): use different ids for merge request, approval rule, project
|
169
|
+
|
170
|
+
The original bug was that the merge request identifier was used instead of the
|
171
|
+
approval rule identifier. The test didn't notice that because it used `1` for
|
172
|
+
all identifiers. Make these identifiers different so that a mixup will become
|
173
|
+
apparent. ([`c23e6bd`](https://github.com/python-gitlab/python-gitlab/commit/c23e6bd5785205f0f4b4c80321153658fc23fb98))
|
174
|
+
|
175
|
+
* fix(api): fix saving merge request approval rules
|
176
|
+
|
177
|
+
Closes #2548 ([`b8b3849`](https://github.com/python-gitlab/python-gitlab/commit/b8b3849b2d4d3f2d9e81e5cf4f6b53368f7f0127))
|
178
|
+
|
179
|
+
* fix: user.warn() to show correct filename of issue
|
180
|
+
|
181
|
+
Previously would only go to the 2nd level of the stack for determining
|
182
|
+
the offending filename and line number. When it should be showing the
|
183
|
+
first filename outside of the python-gitlab source code. As we want it
|
184
|
+
to show the warning for the user of the libraries code.
|
185
|
+
|
186
|
+
Update test to show it works as expected. ([`529f1fa`](https://github.com/python-gitlab/python-gitlab/commit/529f1faacee46a88cb0a542306309eb835516796))
|
187
|
+
|
188
|
+
* fix(api): update manual job status when playing it ([`9440a32`](https://github.com/python-gitlab/python-gitlab/commit/9440a3255018d6a6e49269caf4c878d80db508a8))
|
189
|
+
|
190
|
+
* fix(cli): allow exclusive arguments as optional (#2770)
|
191
|
+
|
192
|
+
* fix(cli): allow exclusive arguments as optional
|
193
|
+
|
194
|
+
The CLI takes its arguments from the RequiredOptional, which has three fields: required, optional, and exclusive. In practice, the exclusive options are not defined as either required or optional, and would not be allowed in the CLI. This changes that, so that exclusive options are also added to the argument parser.
|
195
|
+
|
196
|
+
* fix(cli): inform argument parser that options are mutually exclusive
|
197
|
+
|
198
|
+
* fix(cli): use correct exclusive options, add unit test
|
199
|
+
|
200
|
+
Closes #2769 ([`7ec3189`](https://github.com/python-gitlab/python-gitlab/commit/7ec3189d6eacdb55925e8be886a44d7ee09eb9ca))
|
201
|
+
|
202
|
+
### Test
|
203
|
+
|
204
|
+
* test: remove approve step
|
205
|
+
|
206
|
+
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> ([`48a6705`](https://github.com/python-gitlab/python-gitlab/commit/48a6705558c5ab6fb08c62a18de350a5985099f8))
|
207
|
+
|
208
|
+
* test: tidy up functional tests
|
209
|
+
|
210
|
+
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> ([`06266ea`](https://github.com/python-gitlab/python-gitlab/commit/06266ea5966c601c035ad8ce5840729e5f9baa57))
|
211
|
+
|
212
|
+
* test: update api tests for GL 16.10
|
213
|
+
|
214
|
+
- Make sure we're testing python-gitlab functionality,
|
215
|
+
make sure we're not awaiting on Gitlab Async functions
|
216
|
+
- Decouple and improve test stability
|
217
|
+
|
218
|
+
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> ([`4bef473`](https://github.com/python-gitlab/python-gitlab/commit/4bef47301342703f87c1ce1d2920d54f9927a66a))
|
219
|
+
|
220
|
+
* test(functional): enable bulk import feature flag before test ([`b81da2e`](https://github.com/python-gitlab/python-gitlab/commit/b81da2e66ce385525730c089dbc2a5a85ba23287))
|
221
|
+
|
222
|
+
* test: don't use weak passwords
|
223
|
+
|
224
|
+
Newer versions of GitLab will refuse to create a user with a weak
|
225
|
+
password. In order for us to move to a newer GitLab version in testing
|
226
|
+
use a stronger password for the tests that create a user. ([`c64d126`](https://github.com/python-gitlab/python-gitlab/commit/c64d126142cc77eae4297b8deec27bb1d68b7a13))
|
227
|
+
|
228
|
+
* test: update tests for gitlab 16.8 functionality
|
229
|
+
|
230
|
+
- use programmatic dates for expires_at in tokens tests
|
231
|
+
- set PAT for 16.8 into tests
|
232
|
+
|
233
|
+
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> ([`f8283ae`](https://github.com/python-gitlab/python-gitlab/commit/f8283ae69efd86448ae60d79dd8321af3f19ba1b))
|
234
|
+
|
235
|
+
* test(smoke): normalize all dist titles for smoke tests ([`ee013fe`](https://github.com/python-gitlab/python-gitlab/commit/ee013fe1579b001b4b30bae33404e827c7bdf8c1))
|
236
|
+
|
237
|
+
|
238
|
+
## v4.4.0 (2024-01-15)
|
239
|
+
|
240
|
+
### Chore
|
241
|
+
|
242
|
+
* chore(deps): update all non-major dependencies ([`550f935`](https://github.com/python-gitlab/python-gitlab/commit/550f9355d29a502bb022f68dab6c902bf6913552))
|
243
|
+
|
244
|
+
* chore(deps): update pre-commit hook pycqa/flake8 to v7 ([`9a199b6`](https://github.com/python-gitlab/python-gitlab/commit/9a199b6089152e181e71a393925e0ec581bc55ca))
|
245
|
+
|
246
|
+
* chore(deps): update dependency jinja2 to v3.1.3 [security] ([`880913b`](https://github.com/python-gitlab/python-gitlab/commit/880913b67cce711d96e89ce6813e305e4ba10908))
|
247
|
+
|
248
|
+
* chore(deps): update dependency flake8 to v7 ([`20243c5`](https://github.com/python-gitlab/python-gitlab/commit/20243c532a8a6d28eee0caff5b9c30cc7376a162))
|
249
|
+
|
250
|
+
* chore(deps): update all non-major dependencies ([`cbc13a6`](https://github.com/python-gitlab/python-gitlab/commit/cbc13a61e0f15880b49a3d0208cc603d7d0b57e3))
|
251
|
+
|
252
|
+
* chore(ci): align upload and download action versions ([`dcca59d`](https://github.com/python-gitlab/python-gitlab/commit/dcca59d1a5966283c1120cfb639c01a76214d2b2))
|
253
|
+
|
254
|
+
* chore(deps): update actions/upload-artifact action to v4 ([`7114af3`](https://github.com/python-gitlab/python-gitlab/commit/7114af341dd12b7fb63ffc08650c455ead18ab70))
|
255
|
+
|
256
|
+
* chore(ci): add Python 3.13 development CI job
|
257
|
+
|
258
|
+
Add a job to test the development versions of Python 3.13. ([`ff0c11b`](https://github.com/python-gitlab/python-gitlab/commit/ff0c11b7b75677edd85f846a4dbdab08491a6bd7))
|
259
|
+
|
260
|
+
* chore(deps): update all non-major dependencies ([`369a595`](https://github.com/python-gitlab/python-gitlab/commit/369a595a8763109a2af8a95a8e2423ebb30b9320))
|
261
|
+
|
262
|
+
### Feature
|
263
|
+
|
264
|
+
* feat(api): add reviewer_details manager for mergrequest to get reviewers of merge request
|
265
|
+
|
266
|
+
Those changes implements 'GET /projects/:id/merge_requests/:merge_request_iid/reviewers' gitlab API call.
|
267
|
+
Naming for call is not reviewers because reviewers atribute already presen in merge request response ([`adbd90c`](https://github.com/python-gitlab/python-gitlab/commit/adbd90cadffe1d9e9716a6e3826f30664866ad3f))
|
268
|
+
|
269
|
+
* feat(api): support access token rotate API ([`b13971d`](https://github.com/python-gitlab/python-gitlab/commit/b13971d5472cb228f9e6a8f2fa05a7cc94d03ebe))
|
270
|
+
|
271
|
+
* feat(api): support single resource access token get API ([`dae9e52`](https://github.com/python-gitlab/python-gitlab/commit/dae9e522a26041f5b3c6461cc8a5e284f3376a79))
|
272
|
+
|
273
|
+
### Fix
|
274
|
+
|
275
|
+
* fix(cli): support binary files with `@` notation
|
276
|
+
|
277
|
+
Support binary files being used in the CLI with arguments using the
|
278
|
+
`@` notation. For example `--avatar @/path/to/avatar.png`
|
279
|
+
|
280
|
+
Also explicitly catch the common OSError exception, which is the
|
281
|
+
parent exception for things like: FileNotFoundError, PermissionError
|
282
|
+
and more exceptions.
|
283
|
+
|
284
|
+
Remove the bare exception handling. We would rather have the full
|
285
|
+
traceback of any exceptions that we don't know about and add them
|
286
|
+
later if needed.
|
287
|
+
|
288
|
+
Closes: #2752 ([`57749d4`](https://github.com/python-gitlab/python-gitlab/commit/57749d46de1d975aacb82758c268fc26e5e6ed8b))
|
289
|
+
|
290
|
+
|
291
|
+
## v4.3.0 (2023-12-28)
|
292
|
+
|
293
|
+
### Chore
|
294
|
+
|
295
|
+
* chore(deps): update all non-major dependencies ([`d7bdb02`](https://github.com/python-gitlab/python-gitlab/commit/d7bdb0257a5587455c3722f65c4a632f24d395be))
|
296
|
+
|
297
|
+
* chore(deps): update actions/stale action to v9 ([`c01988b`](https://github.com/python-gitlab/python-gitlab/commit/c01988b12c7745929d0c591f2fa265df2929a859))
|
298
|
+
|
299
|
+
* chore(deps): update all non-major dependencies ([`9e067e5`](https://github.com/python-gitlab/python-gitlab/commit/9e067e5c67dcf9f5e6c3408b30d9e2525c768e0a))
|
300
|
+
|
301
|
+
* chore(deps): update actions/setup-python action to v5 ([`fad1441`](https://github.com/python-gitlab/python-gitlab/commit/fad14413f4f27f1b6f902703b5075528aac52451))
|
302
|
+
|
303
|
+
* chore(deps): update all non-major dependencies ([`bb2af7b`](https://github.com/python-gitlab/python-gitlab/commit/bb2af7bfe8aa59ea8b9ad7ca2d6e56f4897b704a))
|
304
|
+
|
305
|
+
* chore(deps): update all non-major dependencies ([`5ef1b4a`](https://github.com/python-gitlab/python-gitlab/commit/5ef1b4a6c8edd34c381c6e08cd3893ef6c0685fd))
|
306
|
+
|
307
|
+
* chore(deps): update dependency types-setuptools to v69 ([`de11192`](https://github.com/python-gitlab/python-gitlab/commit/de11192455f1c801269ecb3bdcbc7c5b769ff354))
|
308
|
+
|
309
|
+
### Documentation
|
310
|
+
|
311
|
+
* docs: fix rst link typo in CONTRIBUTING.rst ([`2b6da6e`](https://github.com/python-gitlab/python-gitlab/commit/2b6da6e63c82a61b8e21d193cfd46baa3fcf8937))
|
312
|
+
|
313
|
+
### Feature
|
314
|
+
|
315
|
+
* feat(api): add support for the Draft notes API (#2728)
|
316
|
+
|
317
|
+
* feat(api): add support for the Draft notes API
|
318
|
+
|
319
|
+
* fix(client): handle empty 204 reponses in PUT requests ([`ebf9d82`](https://github.com/python-gitlab/python-gitlab/commit/ebf9d821cfc36071fca05d38b82c641ae30c974c))
|
320
|
+
|
321
|
+
### Fix
|
322
|
+
|
323
|
+
* fix(cli): add ability to disable SSL verification
|
324
|
+
|
325
|
+
Add a `--no-ssl-verify` option to disable SSL verification
|
326
|
+
|
327
|
+
Closes: #2714 ([`3fe9fa6`](https://github.com/python-gitlab/python-gitlab/commit/3fe9fa64d9a38bc77950046f2950660d8d7e27a6))
|
328
|
+
|
329
|
+
|
5
330
|
## v4.2.0 (2023-11-28)
|
6
331
|
|
7
332
|
### Chore
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: python-gitlab
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.5.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>
|
@@ -149,6 +149,23 @@ You can also mount your own config file:
|
|
149
149
|
|
150
150
|
$ docker run -it --rm -v /path/to/python-gitlab.cfg:/etc/python-gitlab.cfg registry.gitlab.com/python-gitlab/python-gitlab:latest <command> ...
|
151
151
|
|
152
|
+
Usage inside GitLab CI
|
153
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
154
|
+
|
155
|
+
If you want to use the Docker image directly inside your GitLab CI as an ``image``, you will need to override
|
156
|
+
the ``entrypoint``, `as noted in the official GitLab documentation <https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#override-the-entrypoint-of-an-image>`__:
|
157
|
+
|
158
|
+
.. code-block:: yaml
|
159
|
+
|
160
|
+
Job Name:
|
161
|
+
image:
|
162
|
+
name: registry.gitlab.com/python-gitlab/python-gitlab:latest
|
163
|
+
entrypoint: [""]
|
164
|
+
before_script:
|
165
|
+
gitlab --version
|
166
|
+
script:
|
167
|
+
gitlab <command>
|
168
|
+
|
152
169
|
Building the image
|
153
170
|
~~~~~~~~~~~~~~~~~~
|
154
171
|
|
@@ -112,6 +112,23 @@ You can also mount your own config file:
|
|
112
112
|
|
113
113
|
$ docker run -it --rm -v /path/to/python-gitlab.cfg:/etc/python-gitlab.cfg registry.gitlab.com/python-gitlab/python-gitlab:latest <command> ...
|
114
114
|
|
115
|
+
Usage inside GitLab CI
|
116
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
117
|
+
|
118
|
+
If you want to use the Docker image directly inside your GitLab CI as an ``image``, you will need to override
|
119
|
+
the ``entrypoint``, `as noted in the official GitLab documentation <https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#override-the-entrypoint-of-an-image>`__:
|
120
|
+
|
121
|
+
.. code-block:: yaml
|
122
|
+
|
123
|
+
Job Name:
|
124
|
+
image:
|
125
|
+
name: registry.gitlab.com/python-gitlab/python-gitlab:latest
|
126
|
+
entrypoint: [""]
|
127
|
+
before_script:
|
128
|
+
gitlab --version
|
129
|
+
script:
|
130
|
+
gitlab <command>
|
131
|
+
|
115
132
|
Building the image
|
116
133
|
~~~~~~~~~~~~~~~~~~
|
117
134
|
|
@@ -162,6 +162,11 @@ with the GitLab server error message:
|
|
162
162
|
...
|
163
163
|
GitlabListError: 400: sort does not have a valid value
|
164
164
|
|
165
|
+
.. _conflicting_parameters:
|
166
|
+
|
167
|
+
Conflicting Parameters
|
168
|
+
======================
|
169
|
+
|
165
170
|
You can use the ``query_parameters`` argument to send arguments that would
|
166
171
|
conflict with python or python-gitlab when using them as kwargs:
|
167
172
|
|
@@ -9,9 +9,11 @@ CLI examples
|
|
9
9
|
CI Lint
|
10
10
|
-------
|
11
11
|
|
12
|
+
**ci-lint has been Removed in Gitlab 16, use project-ci-lint instead**
|
13
|
+
|
12
14
|
Lint a CI YAML configuration from a string:
|
13
15
|
|
14
|
-
.. note::
|
16
|
+
.. note::
|
15
17
|
|
16
18
|
To see output, you will need to use the ``-v``/``--verbose`` flag.
|
17
19
|
|
@@ -39,6 +41,9 @@ Validate a CI YAML configuration from a file (lints and exits with non-zero on f
|
|
39
41
|
|
40
42
|
$ gitlab ci-lint validate --content @.gitlab-ci.yml
|
41
43
|
|
44
|
+
Project CI Lint
|
45
|
+
---------------
|
46
|
+
|
42
47
|
Lint a project's CI YAML configuration:
|
43
48
|
|
44
49
|
.. code-block:: console
|
@@ -78,3 +78,23 @@ access an attribute that is shadowed by python-gitlab's own methods or managers.
|
|
78
78
|
|
79
79
|
You can use the object's ``attributes`` dictionary to access it directly instead.
|
80
80
|
See the :ref:`objects` section for more details on how attributes are exposed.
|
81
|
+
|
82
|
+
.. _conflicting_parameters_faq:
|
83
|
+
|
84
|
+
I cannot use the parameter ``path`` (or some other parameter) as it conflicts with the library
|
85
|
+
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
86
|
+
|
87
|
+
``path`` is used by the python-gitlab library and cannot be used as a parameter
|
88
|
+
if wanting to send it to the GitLab instance. You can use the
|
89
|
+
``query_parameters`` argument to send arguments that would conflict with python
|
90
|
+
or python-gitlab when using them as kwargs:
|
91
|
+
|
92
|
+
.. code-block:: python
|
93
|
+
|
94
|
+
## invalid, as ``path`` is interpreted by python-gitlab as the Path or full
|
95
|
+
## URL to query ('/projects' or 'http://whatever/v4/api/projects')
|
96
|
+
project.commits.list(path='some_file_path', iterator=True)
|
97
|
+
|
98
|
+
project.commits.list(query_parameters={'path': 'some_file_path'}, iterator=True) # OK
|
99
|
+
|
100
|
+
See :ref:`Conflicting Parameters <conflicting_parameters>` for more information.
|
@@ -23,12 +23,26 @@ List group access tokens::
|
|
23
23
|
access_tokens = gl.groups.get(1, lazy=True).access_tokens.list()
|
24
24
|
print(access_tokens[0].name)
|
25
25
|
|
26
|
+
Get a group access token by id::
|
27
|
+
|
28
|
+
token = group.access_tokens.get(123)
|
29
|
+
print(token.name)
|
30
|
+
|
26
31
|
Create group access token::
|
27
32
|
|
28
33
|
access_token = gl.groups.get(1).access_tokens.create({"name": "test", "scopes": ["api"], "expires_at": "2023-06-06"})
|
29
34
|
|
30
|
-
Revoke a group access
|
35
|
+
Revoke a group access token::
|
31
36
|
|
32
37
|
gl.groups.get(1).access_tokens.delete(42)
|
33
38
|
# or
|
34
39
|
access_token.delete()
|
40
|
+
|
41
|
+
Rotate a group access token and retrieve its new value::
|
42
|
+
|
43
|
+
token = group.access_tokens.get(42, lazy=True)
|
44
|
+
token.rotate()
|
45
|
+
print(token.token)
|
46
|
+
# or directly using a token ID
|
47
|
+
new_token = group.access_tokens.rotate(42)
|
48
|
+
print(new_token.token)
|
@@ -0,0 +1,101 @@
|
|
1
|
+
#####################
|
2
|
+
CI/CD job token scope
|
3
|
+
#####################
|
4
|
+
|
5
|
+
Reference
|
6
|
+
---------
|
7
|
+
|
8
|
+
* v4 API:
|
9
|
+
|
10
|
+
+ :class:`gitlab.v4.objects.ProjectJobTokenScope`
|
11
|
+
+ :class:`gitlab.v4.objects.ProjectJobTokenScopeManager`
|
12
|
+
+ :attr:`gitlab.v4.objects.Project.job_token_scope`
|
13
|
+
|
14
|
+
* GitLab API: https://docs.gitlab.com/ee/api/project_job_token_scopes.html
|
15
|
+
|
16
|
+
Examples
|
17
|
+
--------
|
18
|
+
|
19
|
+
.. warning::
|
20
|
+
|
21
|
+
The GitLab API does **not** return any data when saving or updating
|
22
|
+
the job token scope settings. You need to call ``refresh()`` (or ``get()``
|
23
|
+
a new object) as shown below to get the latest state.
|
24
|
+
|
25
|
+
Get a project's CI/CD job token access settings::
|
26
|
+
|
27
|
+
scope = project.job_token_scope.get()
|
28
|
+
print(scope.inbound_enabled)
|
29
|
+
# True
|
30
|
+
|
31
|
+
Update the job token scope settings::
|
32
|
+
|
33
|
+
scope.enabled = False
|
34
|
+
scope.save()
|
35
|
+
|
36
|
+
.. warning::
|
37
|
+
|
38
|
+
As you can see above, the attributes you receive from and send to the GitLab API
|
39
|
+
are not consistent. GitLab returns ``inbound_enabled`` and ``outbound_enabled``,
|
40
|
+
but expects ``enabled``, which only refers to the inbound scope. This is important
|
41
|
+
when accessing and updating these attributes.
|
42
|
+
|
43
|
+
Or update the job token scope settings directly::
|
44
|
+
|
45
|
+
project.job_token_scope.update(new_data={"enabled": True})
|
46
|
+
|
47
|
+
Refresh the current state of job token scope::
|
48
|
+
|
49
|
+
scope.refresh()
|
50
|
+
print(scope.inbound_enabled)
|
51
|
+
# False
|
52
|
+
|
53
|
+
Get a project's CI/CD job token inbound allowlist::
|
54
|
+
|
55
|
+
allowlist = scope.allowlist.list()
|
56
|
+
|
57
|
+
Add a project to the project's inbound allowlist::
|
58
|
+
|
59
|
+
allowed_project = scope.allowlist.create({"target_project_id": 42})
|
60
|
+
|
61
|
+
Remove a project from the project's inbound allowlist::
|
62
|
+
|
63
|
+
allowed_project.delete()
|
64
|
+
# or directly using a project ID
|
65
|
+
scope.allowlist.delete(42)
|
66
|
+
|
67
|
+
.. warning::
|
68
|
+
|
69
|
+
Similar to above, the ID attributes you receive from the create and list
|
70
|
+
APIs are not consistent (in create() the id is returned as ``source_project_id`` whereas list() returns as ``id``). To safely retrieve the ID of the allowlisted project
|
71
|
+
regardless of how the object was created, always use its ``.get_id()`` method.
|
72
|
+
|
73
|
+
Using ``.get_id()``::
|
74
|
+
|
75
|
+
resp = allowlist.create({"target_project_id": 2})
|
76
|
+
allowlist_id = resp.get_id()
|
77
|
+
|
78
|
+
allowlists = project.allowlist.list()
|
79
|
+
for allowlist in allowlists:
|
80
|
+
allowlist_id == allowlist.get_id()
|
81
|
+
|
82
|
+
Get a project's CI/CD job token inbound groups allowlist::
|
83
|
+
|
84
|
+
allowlist = scope.groups_allowlist.list()
|
85
|
+
|
86
|
+
Add a project to the project's inbound groups allowlist::
|
87
|
+
|
88
|
+
allowed_project = scope.groups_allowlist.create({"target_project_id": 42})
|
89
|
+
|
90
|
+
Remove a project from the project's inbound agroups llowlist::
|
91
|
+
|
92
|
+
allowed_project.delete()
|
93
|
+
# or directly using a Group ID
|
94
|
+
scope.groups_allowlist.delete(42)
|
95
|
+
|
96
|
+
.. warning::
|
97
|
+
|
98
|
+
Similar to above, the ID attributes you receive from the create and list
|
99
|
+
APIs are not consistent. To safely retrieve the ID of the allowlisted group
|
100
|
+
regardless of how the object was created, always use its ``.get_id()`` method.
|
101
|
+
|
@@ -94,6 +94,10 @@ Get a single MR::
|
|
94
94
|
|
95
95
|
mr = project.mergerequests.get(mr_iid)
|
96
96
|
|
97
|
+
Get MR reviewer details::
|
98
|
+
mr = project.mergerequests.get(mr_iid)
|
99
|
+
reviewers = mr.reviewer_details.list()
|
100
|
+
|
97
101
|
Create a MR::
|
98
102
|
|
99
103
|
mr = project.mergerequests.create({'source_branch': 'cool_feature',
|
@@ -52,6 +52,15 @@ Revoke the personal access token currently used::
|
|
52
52
|
|
53
53
|
gl.personal_access_tokens.delete("self")
|
54
54
|
|
55
|
+
Rotate a personal access token and retrieve its new value::
|
56
|
+
|
57
|
+
token = gl.personal_access_tokens.get(42, lazy=True)
|
58
|
+
token.rotate()
|
59
|
+
print(token.token)
|
60
|
+
# or directly using a token ID
|
61
|
+
new_token_dict = gl.personal_access_tokens.rotate(42)
|
62
|
+
print(new_token_dict)
|
63
|
+
|
55
64
|
Create a personal access token for a user (admin only)::
|
56
65
|
|
57
66
|
user = gl.users.get(25, lazy=True)
|
@@ -60,7 +69,4 @@ Create a personal access token for a user (admin only)::
|
|
60
69
|
.. note:: As you can see above, you can only create personal access tokens
|
61
70
|
via the Users API, but you cannot revoke these objects directly.
|
62
71
|
This is because the create API uses a different endpoint than the list and revoke APIs.
|
63
|
-
You need to fetch the token via the list API first to revoke it.
|
64
|
-
|
65
|
-
As of 14.2, GitLab does not provide a GET API for single personal access tokens.
|
66
|
-
You must use the list method to retrieve single tokens.
|
72
|
+
You need to fetch the token via the list or get API first to revoke it.
|
@@ -23,12 +23,26 @@ List project access tokens::
|
|
23
23
|
access_tokens = gl.projects.get(1, lazy=True).access_tokens.list()
|
24
24
|
print(access_tokens[0].name)
|
25
25
|
|
26
|
+
Get a project access token by id::
|
27
|
+
|
28
|
+
token = project.access_tokens.get(123)
|
29
|
+
print(token.name)
|
30
|
+
|
26
31
|
Create project access token::
|
27
32
|
|
28
33
|
access_token = gl.projects.get(1).access_tokens.create({"name": "test", "scopes": ["api"], "expires_at": "2023-06-06"})
|
29
34
|
|
30
|
-
Revoke a project access
|
35
|
+
Revoke a project access token::
|
31
36
|
|
32
37
|
gl.projects.get(1).access_tokens.delete(42)
|
33
38
|
# or
|
34
39
|
access_token.delete()
|
40
|
+
|
41
|
+
Rotate a project access token and retrieve its new value::
|
42
|
+
|
43
|
+
token = project.access_tokens.get(42, lazy=True)
|
44
|
+
token.rotate()
|
45
|
+
print(token.token)
|
46
|
+
# or directly using a token ID
|
47
|
+
new_token = project.access_tokens.rotate(42)
|
48
|
+
print(new_token.token)
|
@@ -27,6 +27,11 @@ Get a single protected branch::
|
|
27
27
|
|
28
28
|
p_branch = project.protectedbranches.get('main')
|
29
29
|
|
30
|
+
Update a protected branch::
|
31
|
+
|
32
|
+
p_branch.allow_force_push = True
|
33
|
+
p_branch.save()
|
34
|
+
|
30
35
|
Create a protected branch::
|
31
36
|
|
32
37
|
p_branch = project.protectedbranches.create({
|