python-gitlab 6.5.0__tar.gz → 7.1.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.
Files changed (364) hide show
  1. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/CHANGELOG.md +35 -0
  2. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/PKG-INFO +4 -4
  3. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/README.rst +1 -1
  4. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/_version.py +1 -1
  5. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/utils.py +1 -1
  6. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/registry_protection_repository_rules.py +9 -1
  7. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/pyproject.toml +2 -2
  8. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/PKG-INFO +4 -4
  9. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/requirements-docker.txt +1 -1
  10. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/requirements-docs.txt +1 -1
  11. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/requirements-lint.txt +7 -7
  12. python_gitlab-7.1.0/requirements-precommit.txt +1 -0
  13. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/requirements-test.txt +4 -4
  14. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_epics.py +5 -3
  15. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_keys.py +9 -1
  16. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_project_job_token_scope.py +4 -0
  17. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_projects.py +2 -2
  18. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_registry.py +5 -0
  19. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/.env +1 -1
  20. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/docker-compose.yml +1 -1
  21. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/helpers.py +11 -11
  22. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_registry_protection_rules.py +15 -0
  23. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tox.ini +2 -2
  24. python_gitlab-6.5.0/requirements-precommit.txt +0 -1
  25. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/AUTHORS +0 -0
  26. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/COPYING +0 -0
  27. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/MANIFEST.in +0 -0
  28. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/Makefile +0 -0
  29. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/__init__.py +0 -0
  30. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/_static/js/gitter.js +0 -0
  31. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/api/gitlab.rst +0 -0
  32. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/api/gitlab.v4.rst +0 -0
  33. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/api-levels.rst +0 -0
  34. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/api-objects.rst +0 -0
  35. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/api-usage-advanced.rst +0 -0
  36. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/api-usage-graphql.rst +0 -0
  37. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/api-usage.rst +0 -0
  38. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/changelog.md +0 -0
  39. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/cli-examples.rst +0 -0
  40. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/cli-objects.rst +0 -0
  41. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/cli-usage.rst +0 -0
  42. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/conf.py +0 -0
  43. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/ext/__init__.py +0 -0
  44. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/ext/docstrings.py +0 -0
  45. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/ext/manager_tmpl.j2 +0 -0
  46. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/faq.rst +0 -0
  47. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/access_requests.rst +0 -0
  48. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/appearance.rst +0 -0
  49. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/applications.rst +0 -0
  50. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/badges.rst +0 -0
  51. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/boards.rst +0 -0
  52. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/branches.rst +0 -0
  53. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/bulk_imports.rst +0 -0
  54. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/ci_lint.rst +0 -0
  55. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/cluster_agents.rst +0 -0
  56. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/clusters.rst +0 -0
  57. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/commits.rst +0 -0
  58. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/deploy_keys.rst +0 -0
  59. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/deploy_tokens.rst +0 -0
  60. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/deployments.rst +0 -0
  61. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/discussions.rst +0 -0
  62. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/draft_notes.rst +0 -0
  63. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/emojis.rst +0 -0
  64. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/environments.rst +0 -0
  65. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/epics.rst +0 -0
  66. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/events.rst +0 -0
  67. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/features.rst +0 -0
  68. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/geo_nodes.rst +0 -0
  69. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/group_access_tokens.rst +0 -0
  70. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/groups.rst +0 -0
  71. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/invitations.rst +0 -0
  72. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/issues.rst +0 -0
  73. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/iterations.rst +0 -0
  74. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/job_token_scope.rst +0 -0
  75. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/keys.rst +0 -0
  76. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/labels.rst +0 -0
  77. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/member_roles.rst +0 -0
  78. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/merge_request_approvals.rst +0 -0
  79. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/merge_requests.rst +0 -0
  80. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/merge_trains.rst +0 -0
  81. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/messages.rst +0 -0
  82. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/milestones.rst +0 -0
  83. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/namespaces.rst +0 -0
  84. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/notes.rst +0 -0
  85. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/notifications.rst +0 -0
  86. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/packages.rst +0 -0
  87. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/pagesdomains.rst +0 -0
  88. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/personal_access_tokens.rst +0 -0
  89. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/pipelines_and_jobs.rst +0 -0
  90. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/project_access_tokens.rst +0 -0
  91. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/projects.rst +0 -0
  92. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/protected_branches.rst +0 -0
  93. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/protected_container_repositories.rst +0 -0
  94. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/protected_environments.rst +0 -0
  95. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/protected_packages.rst +0 -0
  96. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/pull_mirror.rst +0 -0
  97. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/releases.rst +0 -0
  98. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/remote_mirrors.rst +0 -0
  99. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/repositories.rst +0 -0
  100. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/repository_tags.rst +0 -0
  101. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/resource_groups.rst +0 -0
  102. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/runners.rst +0 -0
  103. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/search.rst +0 -0
  104. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/secure_files.rst +0 -0
  105. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/settings.rst +0 -0
  106. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/sidekiq.rst +0 -0
  107. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/snippets.rst +0 -0
  108. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/statistics.rst +0 -0
  109. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/status_checks.rst +0 -0
  110. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/system_hooks.rst +0 -0
  111. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/templates.rst +0 -0
  112. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/todos.rst +0 -0
  113. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/topics.rst +0 -0
  114. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/users.rst +0 -0
  115. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/variables.rst +0 -0
  116. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/gl_objects/wikis.rst +0 -0
  117. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/index.rst +0 -0
  118. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/make.bat +0 -0
  119. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/docs/release-notes.rst +0 -0
  120. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/__init__.py +0 -0
  121. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/__main__.py +0 -0
  122. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/_backends/__init__.py +0 -0
  123. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/_backends/graphql.py +0 -0
  124. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/_backends/protocol.py +0 -0
  125. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/_backends/requests_backend.py +0 -0
  126. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/base.py +0 -0
  127. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/cli.py +0 -0
  128. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/client.py +0 -0
  129. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/config.py +0 -0
  130. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/const.py +0 -0
  131. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/exceptions.py +0 -0
  132. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/mixins.py +0 -0
  133. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/py.typed +0 -0
  134. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/types.py +0 -0
  135. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/__init__.py +0 -0
  136. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/cli.py +0 -0
  137. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/__init__.py +0 -0
  138. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/access_requests.py +0 -0
  139. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/appearance.py +0 -0
  140. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/applications.py +0 -0
  141. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/artifacts.py +0 -0
  142. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/audit_events.py +0 -0
  143. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/award_emojis.py +0 -0
  144. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/badges.py +0 -0
  145. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/boards.py +0 -0
  146. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/branches.py +0 -0
  147. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/broadcast_messages.py +0 -0
  148. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/bulk_imports.py +0 -0
  149. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/ci_lint.py +0 -0
  150. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/cluster_agents.py +0 -0
  151. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/clusters.py +0 -0
  152. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/commits.py +0 -0
  153. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/container_registry.py +0 -0
  154. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/custom_attributes.py +0 -0
  155. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/deploy_keys.py +0 -0
  156. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/deploy_tokens.py +0 -0
  157. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/deployments.py +0 -0
  158. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/discussions.py +0 -0
  159. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/draft_notes.py +0 -0
  160. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/environments.py +0 -0
  161. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/epics.py +0 -0
  162. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/events.py +0 -0
  163. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/export_import.py +0 -0
  164. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/features.py +0 -0
  165. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/files.py +0 -0
  166. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/geo_nodes.py +0 -0
  167. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/group_access_tokens.py +0 -0
  168. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/groups.py +0 -0
  169. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/hooks.py +0 -0
  170. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/integrations.py +0 -0
  171. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/invitations.py +0 -0
  172. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/issues.py +0 -0
  173. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/iterations.py +0 -0
  174. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/job_token_scope.py +0 -0
  175. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/jobs.py +0 -0
  176. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/keys.py +0 -0
  177. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/labels.py +0 -0
  178. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/ldap.py +0 -0
  179. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/member_roles.py +0 -0
  180. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/members.py +0 -0
  181. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/merge_request_approvals.py +0 -0
  182. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/merge_requests.py +0 -0
  183. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/merge_trains.py +0 -0
  184. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/milestones.py +0 -0
  185. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/namespaces.py +0 -0
  186. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/notes.py +0 -0
  187. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/notification_settings.py +0 -0
  188. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/package_protection_rules.py +0 -0
  189. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/packages.py +0 -0
  190. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/pages.py +0 -0
  191. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/personal_access_tokens.py +0 -0
  192. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/pipelines.py +0 -0
  193. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/project_access_tokens.py +0 -0
  194. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/projects.py +0 -0
  195. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/push_rules.py +0 -0
  196. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/registry_protection_rules.py +0 -0
  197. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/releases.py +0 -0
  198. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/repositories.py +0 -0
  199. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/resource_groups.py +0 -0
  200. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/reviewers.py +0 -0
  201. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/runners.py +0 -0
  202. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/secure_files.py +0 -0
  203. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/service_accounts.py +0 -0
  204. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/settings.py +0 -0
  205. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/sidekiq.py +0 -0
  206. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/snippets.py +0 -0
  207. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/statistics.py +0 -0
  208. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/status_checks.py +0 -0
  209. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/tags.py +0 -0
  210. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/templates.py +0 -0
  211. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/todos.py +0 -0
  212. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/topics.py +0 -0
  213. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/triggers.py +0 -0
  214. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/users.py +0 -0
  215. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/variables.py +0 -0
  216. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/gitlab/v4/objects/wikis.py +0 -0
  217. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/SOURCES.txt +0 -0
  218. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/dependency_links.txt +0 -0
  219. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/entry_points.txt +0 -0
  220. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/requires.txt +0 -0
  221. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/top_level.txt +0 -0
  222. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/requirements.txt +0 -0
  223. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/setup.cfg +0 -0
  224. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/__init__.py +0 -0
  225. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/conftest.py +0 -0
  226. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/__init__.py +0 -0
  227. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/__init__.py +0 -0
  228. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_boards.py +0 -0
  229. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_branches.py +0 -0
  230. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_bulk_imports.py +0 -0
  231. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_current_user.py +0 -0
  232. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_deploy_keys.py +0 -0
  233. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_deploy_tokens.py +0 -0
  234. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_gitlab.py +0 -0
  235. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_graphql.py +0 -0
  236. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_groups.py +0 -0
  237. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_import_export.py +0 -0
  238. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_issues.py +0 -0
  239. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_lazy_objects.py +0 -0
  240. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_member_roles.py +0 -0
  241. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_merge_requests.py +0 -0
  242. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_packages.py +0 -0
  243. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_push_rules.py +0 -0
  244. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_releases.py +0 -0
  245. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_repository.py +0 -0
  246. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_services.py +0 -0
  247. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_snippets.py +0 -0
  248. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_statistics.py +0 -0
  249. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_topics.py +0 -0
  250. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_users.py +0 -0
  251. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_variables.py +0 -0
  252. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/api/test_wikis.py +0 -0
  253. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/__init__.py +0 -0
  254. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/conftest.py +0 -0
  255. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli.py +0 -0
  256. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_artifacts.py +0 -0
  257. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_files.py +0 -0
  258. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_packages.py +0 -0
  259. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_projects.py +0 -0
  260. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_repository.py +0 -0
  261. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_resource_access_tokens.py +0 -0
  262. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_users.py +0 -0
  263. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_v4.py +0 -0
  264. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_variables.py +0 -0
  265. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/conftest.py +0 -0
  266. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/ee-test.py +0 -0
  267. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/__init__.py +0 -0
  268. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/avatar.png +0 -0
  269. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/create_license.rb +0 -0
  270. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/docker.py +0 -0
  271. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/invalid_auth.cfg +0 -0
  272. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/invalid_version.cfg +0 -0
  273. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/functional/fixtures/set_token.rb +0 -0
  274. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/install/test_install.py +0 -0
  275. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/smoke/__init__.py +0 -0
  276. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/smoke/test_dists.py +0 -0
  277. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/__init__.py +0 -0
  278. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/_backends/__init__.py +0 -0
  279. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/_backends/test_requests_backend.py +0 -0
  280. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/base/test_rest_manager.py +0 -0
  281. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/base/test_rest_object.py +0 -0
  282. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/conftest.py +0 -0
  283. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/helpers.py +0 -0
  284. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/meta/__init__.py +0 -0
  285. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/meta/test_abstract_attrs.py +0 -0
  286. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/meta/test_imports.py +0 -0
  287. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/meta/test_mro.py +0 -0
  288. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/mixins/__init__.py +0 -0
  289. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/mixins/test_meta_mixins.py +0 -0
  290. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/mixins/test_mixin_methods.py +0 -0
  291. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/mixins/test_object_mixins_attributes.py +0 -0
  292. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/__init__.py +0 -0
  293. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/conftest.py +0 -0
  294. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_appearance.py +0 -0
  295. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_applications.py +0 -0
  296. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_audit_events.py +0 -0
  297. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_badges.py +0 -0
  298. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_bridges.py +0 -0
  299. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_bulk_imports.py +0 -0
  300. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_ci_lint.py +0 -0
  301. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_cluster_agents.py +0 -0
  302. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_commits.py +0 -0
  303. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_deploy_tokens.py +0 -0
  304. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_deployments.py +0 -0
  305. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_draft_notes.py +0 -0
  306. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_environments.py +0 -0
  307. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_group_access_tokens.py +0 -0
  308. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_group_merge_request_approvals.py +0 -0
  309. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_groups.py +0 -0
  310. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_hooks.py +0 -0
  311. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_invitations.py +0 -0
  312. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_issues.py +0 -0
  313. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_iterations.py +0 -0
  314. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_job_artifacts.py +0 -0
  315. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_job_token_scope.py +0 -0
  316. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_jobs.py +0 -0
  317. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_keys.py +0 -0
  318. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_member_roles.py +0 -0
  319. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_members.py +0 -0
  320. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_merge_request_pipelines.py +0 -0
  321. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_merge_requests.py +0 -0
  322. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_merge_trains.py +0 -0
  323. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_package_protection_rules.py +0 -0
  324. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_packages.py +0 -0
  325. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_personal_access_tokens.py +0 -0
  326. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_pipeline_schedules.py +0 -0
  327. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_pipelines.py +0 -0
  328. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_project_access_tokens.py +0 -0
  329. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_project_import_export.py +0 -0
  330. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_project_merge_request_approvals.py +0 -0
  331. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_project_statistics.py +0 -0
  332. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_projects.py +0 -0
  333. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_pull_mirror.py +0 -0
  334. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_registry_repositories.py +0 -0
  335. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_releases.py +0 -0
  336. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_remote_mirrors.py +0 -0
  337. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_repositories.py +0 -0
  338. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_groups.py +0 -0
  339. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_iteration_events.py +0 -0
  340. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_label_events.py +0 -0
  341. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_milestone_events.py +0 -0
  342. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_state_events.py +0 -0
  343. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_runners.py +0 -0
  344. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_secure_files.py +0 -0
  345. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_services.py +0 -0
  346. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_snippets.py +0 -0
  347. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_statistics.py +0 -0
  348. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_status_checks.py +0 -0
  349. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_submodules.py +0 -0
  350. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_templates.py +0 -0
  351. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_todos.py +0 -0
  352. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_topics.py +0 -0
  353. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_users.py +0 -0
  354. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/objects/test_variables.py +0 -0
  355. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_cli.py +0 -0
  356. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_config.py +0 -0
  357. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_exceptions.py +0 -0
  358. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_gitlab.py +0 -0
  359. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_gitlab_auth.py +0 -0
  360. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_gitlab_http_methods.py +0 -0
  361. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_graphql.py +0 -0
  362. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_retry.py +0 -0
  363. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_types.py +0 -0
  364. {python_gitlab-6.5.0 → python_gitlab-7.1.0}/tests/unit/test_utils.py +0 -0
@@ -2,6 +2,41 @@
2
2
 
3
3
  All versions below are listed in reverse chronological order.
4
4
 
5
+ ## v7.1.0 (2025-12-28)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **utils**: Prevent negative sleep time in rate limit retry
10
+ ([`4221195`](https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7))
11
+
12
+ ### Continuous Integration
13
+
14
+ - **release**: Use the correct token for publish to GitHub
15
+ ([`614a74c`](https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa))
16
+
17
+ ### Features
18
+
19
+ - **registry-protection**: Add support for registry protection rule deletion
20
+ ([`9dd62c3`](https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec))
21
+
22
+ ### Testing
23
+
24
+ - **functional**: Update to GitLab 18.6 and resolve issues found
25
+ ([`c7c139b`](https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1))
26
+
27
+
28
+ ## v7.0.0 (2025-10-29)
29
+
30
+ ### Features
31
+
32
+ - Drop Python 3.9 support and add Python 3.14
33
+ ([`22941ac`](https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76))
34
+
35
+ ### Breaking Changes
36
+
37
+ - As of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.
38
+
39
+
5
40
  ## v6.5.0 (2025-10-17)
6
41
 
7
42
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-gitlab
3
- Version: 6.5.0
3
+ Version: 7.1.0
4
4
  Summary: The python wrapper for the GitLab REST and GraphQL APIs.
5
5
  Author-email: Gauvain Pocentek <gauvain@pocentek.net>
6
6
  Maintainer-email: John Villalovos <john@sodarock.com>, Max Wittig <max.wittig@siemens.com>, Nejc Habjan <nejc.habjan@siemens.com>, Roger Meier <r.meier@siemens.com>
@@ -19,12 +19,12 @@ Classifier: Operating System :: POSIX
19
19
  Classifier: Operating System :: Microsoft :: Windows
20
20
  Classifier: Programming Language :: Python
21
21
  Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
27
- Requires-Python: >=3.9.0
26
+ Classifier: Programming Language :: Python :: 3.14
27
+ Requires-Python: >=3.10.0
28
28
  Description-Content-Type: text/x-rst
29
29
  License-File: COPYING
30
30
  License-File: AUTHORS
@@ -93,7 +93,7 @@ Features
93
93
  Installation
94
94
  ------------
95
95
 
96
- As of 5.0.0, ``python-gitlab`` is compatible with Python 3.9+.
96
+ As of 7.0.0, ``python-gitlab`` is compatible with Python 3.10+.
97
97
 
98
98
  Use ``pip`` to install the latest stable version of ``python-gitlab``:
99
99
 
@@ -53,7 +53,7 @@ Features
53
53
  Installation
54
54
  ------------
55
55
 
56
- As of 5.0.0, ``python-gitlab`` is compatible with Python 3.9+.
56
+ As of 7.0.0, ``python-gitlab`` is compatible with Python 3.10+.
57
57
 
58
58
  Use ``pip`` to install the latest stable version of ``python-gitlab``:
59
59
 
@@ -3,4 +3,4 @@ __copyright__ = "Copyright 2013-2019 Gauvain Pocentek, 2019-2023 python-gitlab t
3
3
  __email__ = "gauvainpocentek@gmail.com"
4
4
  __license__ = "LGPL3"
5
5
  __title__ = "python-gitlab"
6
- __version__ = "6.5.0"
6
+ __version__ = "7.1.0"
@@ -133,7 +133,7 @@ class Retry:
133
133
  if "Retry-After" in headers:
134
134
  wait_time = int(headers["Retry-After"])
135
135
  elif "RateLimit-Reset" in headers:
136
- wait_time = int(headers["RateLimit-Reset"]) - time.time()
136
+ wait_time = max(0, int(headers["RateLimit-Reset"]) - time.time())
137
137
  self.cur_retries += 1
138
138
  time.sleep(wait_time)
139
139
  return True
@@ -1,5 +1,12 @@
1
1
  from gitlab.base import RESTObject
2
- from gitlab.mixins import CreateMixin, ListMixin, SaveMixin, UpdateMethod, UpdateMixin
2
+ from gitlab.mixins import (
3
+ CreateMixin,
4
+ DeleteMixin,
5
+ ListMixin,
6
+ SaveMixin,
7
+ UpdateMethod,
8
+ UpdateMixin,
9
+ )
3
10
  from gitlab.types import RequiredOptional
4
11
 
5
12
  __all__ = [
@@ -16,6 +23,7 @@ class ProjectRegistryRepositoryProtectionRuleManager(
16
23
  ListMixin[ProjectRegistryRepositoryProtectionRule],
17
24
  CreateMixin[ProjectRegistryRepositoryProtectionRule],
18
25
  UpdateMixin[ProjectRegistryRepositoryProtectionRule],
26
+ DeleteMixin[ProjectRegistryRepositoryProtectionRule],
19
27
  ):
20
28
  _path = "/projects/{project_id}/registry/protection/repository/rules"
21
29
  _obj_cls = ProjectRegistryRepositoryProtectionRule
@@ -15,7 +15,7 @@ maintainers = [
15
15
  {name = "Nejc Habjan", email="nejc.habjan@siemens.com"},
16
16
  {name = "Roger Meier", email="r.meier@siemens.com"}
17
17
  ]
18
- requires-python = ">=3.9.0"
18
+ requires-python = ">=3.10.0"
19
19
  dependencies = [
20
20
  "requests>=2.32.0",
21
21
  "requests-toolbelt>=1.0.0",
@@ -30,11 +30,11 @@ classifiers = [
30
30
  "Operating System :: Microsoft :: Windows",
31
31
  "Programming Language :: Python",
32
32
  "Programming Language :: Python :: 3",
33
- "Programming Language :: Python :: 3.9",
34
33
  "Programming Language :: Python :: 3.10",
35
34
  "Programming Language :: Python :: 3.11",
36
35
  "Programming Language :: Python :: 3.12",
37
36
  "Programming Language :: Python :: 3.13",
37
+ "Programming Language :: Python :: 3.14",
38
38
  ]
39
39
  keywords = ["api", "client", "gitlab", "python", "python-gitlab", "wrapper"]
40
40
  license = {text = "LGPL-3.0-or-later"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-gitlab
3
- Version: 6.5.0
3
+ Version: 7.1.0
4
4
  Summary: The python wrapper for the GitLab REST and GraphQL APIs.
5
5
  Author-email: Gauvain Pocentek <gauvain@pocentek.net>
6
6
  Maintainer-email: John Villalovos <john@sodarock.com>, Max Wittig <max.wittig@siemens.com>, Nejc Habjan <nejc.habjan@siemens.com>, Roger Meier <r.meier@siemens.com>
@@ -19,12 +19,12 @@ Classifier: Operating System :: POSIX
19
19
  Classifier: Operating System :: Microsoft :: Windows
20
20
  Classifier: Programming Language :: Python
21
21
  Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
27
- Requires-Python: >=3.9.0
26
+ Classifier: Programming Language :: Python :: 3.14
27
+ Requires-Python: >=3.10.0
28
28
  Description-Content-Type: text/x-rst
29
29
  License-File: COPYING
30
30
  License-File: AUTHORS
@@ -93,7 +93,7 @@ Features
93
93
  Installation
94
94
  ------------
95
95
 
96
- As of 5.0.0, ``python-gitlab`` is compatible with Python 3.9+.
96
+ As of 7.0.0, ``python-gitlab`` is compatible with Python 3.10+.
97
97
 
98
98
  Use ``pip`` to install the latest stable version of ``python-gitlab``:
99
99
 
@@ -1,3 +1,3 @@
1
1
  -r requirements.txt
2
2
  -r requirements-test.txt
3
- pytest-docker==3.2.3
3
+ pytest-docker==3.2.5
@@ -1,5 +1,5 @@
1
1
  -r requirements.txt
2
- furo==2025.9.25
2
+ furo==2025.12.19
3
3
  jinja2==3.1.6
4
4
  myst-parser==4.0.1
5
5
  sphinx==8.2.3
@@ -1,14 +1,14 @@
1
1
  -r requirements.txt
2
2
  argcomplete==2.0.0
3
- black==25.9.0
4
- commitizen==4.9.1
3
+ black==25.12.0
4
+ commitizen==4.10.1
5
5
  flake8==7.3.0
6
- isort==6.1.0
7
- mypy==1.18.2
8
- pylint==3.3.9
9
- pytest==8.4.2
6
+ isort==7.0.0
7
+ mypy==1.19.1
8
+ pylint==4.0.4
9
+ pytest==9.0.2
10
10
  responses==0.25.8
11
11
  respx==0.22.0
12
12
  types-PyYAML==6.0.12.20250915
13
13
  types-requests==2.32.4.20250913
14
- types-setuptools==80.9.0.20250822
14
+ types-setuptools==80.9.0.20251221
@@ -0,0 +1 @@
1
+ pre-commit==4.5.1
@@ -1,13 +1,13 @@
1
1
  -r requirements.txt
2
- anyio==4.11.0
2
+ anyio==4.12.0
3
3
  build==1.3.0
4
- coverage==7.10.7
4
+ coverage==7.13.0
5
5
  pytest-console-scripts==1.4.1
6
6
  pytest-cov==7.0.0
7
7
  pytest-github-actions-annotate-failures==0.3.0
8
- pytest==8.4.2
8
+ pytest==9.0.2
9
9
  PyYaml==6.0.3
10
10
  responses==0.25.8
11
11
  respx==0.22.0
12
- trio==0.31.0
12
+ trio==0.32.0
13
13
  wheel==0.45.1
@@ -15,18 +15,20 @@ def test_epics(group):
15
15
  assert group.epics.list()
16
16
 
17
17
 
18
- @pytest.mark.xfail(reason="404 on issue.id")
19
18
  def test_epic_issues(epic, issue):
20
19
  assert not epic.issues.list()
21
20
 
21
+ # FYI: Creating an issue causes a note to be created
22
22
  epic_issue = epic.issues.create({"issue_id": issue.id})
23
23
  assert epic.issues.list()
24
24
 
25
+ # FYI: Deleting an issue causes a note to be created
25
26
  epic_issue.delete()
26
27
 
27
28
 
28
29
  def test_epic_notes(epic):
29
- assert not epic.notes.list()
30
+ notes = epic.notes.list(get_all=True)
30
31
 
31
32
  epic.notes.create({"body": "Test note"})
32
- assert epic.notes.list()
33
+ new_notes = epic.notes.list(get_all=True)
34
+ assert len(new_notes) == (len(notes) + 1), f"{new_notes} {notes}"
@@ -38,6 +38,14 @@ def test_keys_deploy(gl, project, DEPLOY_KEY):
38
38
  key_by_fingerprint = gl.keys.get(fingerprint=fingerprint)
39
39
  assert key_by_fingerprint.title == key.title
40
40
  assert key_by_fingerprint.key == key.key
41
- assert len(key_by_fingerprint.deploy_keys_projects) == 1
41
+
42
+ if not any(
43
+ key_project.get("project_id") == project.id
44
+ for key_project in key_by_fingerprint.deploy_keys_projects
45
+ ):
46
+ raise AssertionError(
47
+ f"Project {project} not found in 'deploy_keys_projects' "
48
+ f"{key_by_fingerprint.pformat()}"
49
+ )
42
50
 
43
51
  key.delete()
@@ -1,3 +1,6 @@
1
+ import pytest
2
+
3
+
1
4
  # https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#allow-any-project-to-access-your-project
2
5
  def test_enable_limit_access_to_this_project(gl, project):
3
6
  scope = project.job_token_scope.get()
@@ -10,6 +13,7 @@ def test_enable_limit_access_to_this_project(gl, project):
10
13
  assert scope.inbound_enabled
11
14
 
12
15
 
16
+ @pytest.mark.xfail(reason="https://gitlab.com/gitlab-org/gitlab/-/issues/582271")
13
17
  def test_disable_limit_access_to_this_project(gl, project):
14
18
  scope = project.job_token_scope.get()
15
19
 
@@ -26,9 +26,9 @@ def test_create_project(gl, user):
26
26
 
27
27
  sudo_project = gl.projects.create({"name": "sudo_project"}, sudo=user.id)
28
28
 
29
- created = gl.projects.list()
29
+ created = gl.projects.list(get_all=True)
30
30
  created_gen = gl.projects.list(iterator=True)
31
- owned = gl.projects.list(owned=True)
31
+ owned = gl.projects.list(owned=True, get_all=True)
32
32
 
33
33
  assert admin_project in created and sudo_project in created
34
34
  assert admin_project in owned and sudo_project not in owned
@@ -26,3 +26,8 @@ def test_project_protected_registry(project: Project):
26
26
  protected_registry.minimum_access_level_for_push = "owner"
27
27
  protected_registry.save()
28
28
  assert protected_registry.minimum_access_level_for_push == "owner"
29
+
30
+ protected_registry.delete()
31
+
32
+ rules = project.registry_protection_repository_rules.list()
33
+ assert rules == []
@@ -1,4 +1,4 @@
1
1
  GITLAB_IMAGE=gitlab/gitlab-ee
2
- GITLAB_TAG=17.8.2-ee.0
2
+ GITLAB_TAG=18.7.0-ee.0
3
3
  GITLAB_RUNNER_IMAGE=gitlab/gitlab-runner
4
4
  GITLAB_RUNNER_TAG=96856197
@@ -34,7 +34,7 @@ services:
34
34
  entrypoint:
35
35
  - /bin/sh
36
36
  - -c
37
- - ruby /create_license.rb && /assets/wrapper
37
+ - ruby /create_license.rb && /assets/init-container
38
38
  volumes:
39
39
  - ${PWD}/tests/functional/fixtures/create_license.rb:/create_license.rb
40
40
  ports:
@@ -9,6 +9,7 @@ import pytest
9
9
  import gitlab
10
10
  import gitlab.base
11
11
  import gitlab.exceptions
12
+ import gitlab.v4.objects
12
13
 
13
14
  SLEEP_INTERVAL = 0.5
14
15
  TIMEOUT = 60 # seconds before timeout will occur
@@ -37,6 +38,11 @@ def safe_delete(object: gitlab.base.RESTObject) -> None:
37
38
  object = manager.get(object.get_id()) # type: ignore[attr-defined]
38
39
  except gitlab.exceptions.GitlabGetError:
39
40
  return
41
+ # If object is already marked for deletion we have succeeded
42
+ if getattr(object, "marked_for_deletion_on", None) is not None:
43
+ # 'Group' and 'Project' objects have a 'marked_for_deletion_on' attribute
44
+ logging.info(f"{object!r} is marked for deletion.")
45
+ return
40
46
 
41
47
  if index:
42
48
  logging.info(f"Attempt {index + 1} to delete {object!r}.")
@@ -52,22 +58,16 @@ def safe_delete(object: gitlab.base.RESTObject) -> None:
52
58
  # we shouldn't cause test to fail if it still exists
53
59
  return
54
60
  elif isinstance(object, gitlab.v4.objects.Project):
55
- # Immediately delete rather than waiting for at least 1day
56
- # https://docs.gitlab.com/ee/api/projects.html#delete-project
57
- object.delete(permanently_remove=True)
58
- pass
61
+ # Starting in GitLab 18, projects can't be immediately deleted.
62
+ # So this will mark it for deletion.
63
+ object.delete()
59
64
  else:
60
65
  # We only attempt to delete parent groups to prevent dangling sub-groups
61
- # However parent groups can only be deleted on a delay in Gl 16
66
+ # However parent groups can only be deleted on a delay in GitLab 16
62
67
  # https://docs.gitlab.com/ee/api/groups.html#remove-group
63
68
  object.delete()
64
69
  except gitlab.exceptions.GitlabDeleteError:
65
- logging.info(f"{object!r} already deleted or scheduled for deletion.")
66
- if isinstance(object, gitlab.v4.objects.Group):
67
- # Parent groups can never be immediately deleted in GL 16,
68
- # so don't cause test to fail if it still exists
69
- return
70
- pass
70
+ logging.exception(f"Error attempting to delete: {object.pformat()}")
71
71
 
72
72
  time.sleep(SLEEP_INTERVAL)
73
73
  pytest.fail(f"{object!r} was not deleted")
@@ -58,6 +58,17 @@ def resp_update_protected_registry():
58
58
  yield rsps
59
59
 
60
60
 
61
+ @pytest.fixture
62
+ def resp_delete_protected_registry():
63
+ with responses.RequestsMock() as rsps:
64
+ rsps.add(
65
+ method=responses.DELETE,
66
+ url="http://localhost/api/v4/projects/1/registry/protection/repository/rules/1",
67
+ status=204,
68
+ )
69
+ yield rsps
70
+
71
+
61
72
  def test_list_project_protected_registries(project, resp_list_protected_registries):
62
73
  protected_registry = project.registry_protection_repository_rules.list()[0]
63
74
  assert isinstance(protected_registry, ProjectRegistryRepositoryProtectionRule)
@@ -80,3 +91,7 @@ def test_update_project_protected_registry(project, resp_update_protected_regist
80
91
  1, {"repository_path_pattern": "abc*"}
81
92
  )
82
93
  assert updated["repository_path_pattern"] == "abc*"
94
+
95
+
96
+ def test_delete_project_protected_registry(project, resp_delete_protected_registry):
97
+ project.registry_protection_repository_rules.delete(1)
@@ -2,14 +2,14 @@
2
2
  minversion = 4.0
3
3
  skipsdist = True
4
4
  skip_missing_interpreters = True
5
- envlist = py313,py312,py311,py310,py39,black,isort,flake8,mypy,twine-check,cz,pylint
5
+ envlist = py314,py313,py312,py311,py310,black,isort,flake8,mypy,twine-check,cz,pylint
6
6
 
7
7
  # NOTE(jlvillal): To use a label use the `-m` flag.
8
8
  # For example to run the `func` label group of environments do:
9
9
  # tox -m func
10
10
  labels =
11
11
  lint = black,isort,flake8,mypy,pylint,cz
12
- unit = py313,py312,py311,py310,py39,py38
12
+ unit = py314,py313,py312,py311,py310
13
13
  # func is the functional tests. This is very time consuming.
14
14
  func = cli_func_v4,api_func_v4
15
15
 
@@ -1 +0,0 @@
1
- pre-commit==4.3.0
File without changes
File without changes
File without changes