python-gitlab 7.0.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-7.0.0 → python_gitlab-7.1.0}/CHANGELOG.md +23 -0
  2. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/PKG-INFO +1 -1
  3. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/_version.py +1 -1
  4. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/utils.py +1 -1
  5. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/registry_protection_repository_rules.py +9 -1
  6. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/PKG-INFO +1 -1
  7. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/requirements-docker.txt +1 -1
  8. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/requirements-docs.txt +1 -1
  9. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/requirements-lint.txt +6 -6
  10. python_gitlab-7.1.0/requirements-precommit.txt +1 -0
  11. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/requirements-test.txt +4 -4
  12. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_epics.py +5 -3
  13. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_keys.py +9 -1
  14. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_project_job_token_scope.py +4 -0
  15. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_projects.py +2 -2
  16. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_registry.py +5 -0
  17. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/.env +1 -1
  18. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/docker-compose.yml +1 -1
  19. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/helpers.py +11 -11
  20. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_registry_protection_rules.py +15 -0
  21. python_gitlab-7.0.0/requirements-precommit.txt +0 -1
  22. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/AUTHORS +0 -0
  23. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/COPYING +0 -0
  24. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/MANIFEST.in +0 -0
  25. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/README.rst +0 -0
  26. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/Makefile +0 -0
  27. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/__init__.py +0 -0
  28. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/_static/js/gitter.js +0 -0
  29. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/api/gitlab.rst +0 -0
  30. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/api/gitlab.v4.rst +0 -0
  31. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/api-levels.rst +0 -0
  32. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/api-objects.rst +0 -0
  33. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/api-usage-advanced.rst +0 -0
  34. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/api-usage-graphql.rst +0 -0
  35. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/api-usage.rst +0 -0
  36. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/changelog.md +0 -0
  37. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/cli-examples.rst +0 -0
  38. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/cli-objects.rst +0 -0
  39. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/cli-usage.rst +0 -0
  40. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/conf.py +0 -0
  41. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/ext/__init__.py +0 -0
  42. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/ext/docstrings.py +0 -0
  43. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/ext/manager_tmpl.j2 +0 -0
  44. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/faq.rst +0 -0
  45. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/access_requests.rst +0 -0
  46. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/appearance.rst +0 -0
  47. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/applications.rst +0 -0
  48. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/badges.rst +0 -0
  49. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/boards.rst +0 -0
  50. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/branches.rst +0 -0
  51. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/bulk_imports.rst +0 -0
  52. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/ci_lint.rst +0 -0
  53. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/cluster_agents.rst +0 -0
  54. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/clusters.rst +0 -0
  55. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/commits.rst +0 -0
  56. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/deploy_keys.rst +0 -0
  57. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/deploy_tokens.rst +0 -0
  58. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/deployments.rst +0 -0
  59. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/discussions.rst +0 -0
  60. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/draft_notes.rst +0 -0
  61. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/emojis.rst +0 -0
  62. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/environments.rst +0 -0
  63. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/epics.rst +0 -0
  64. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/events.rst +0 -0
  65. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/features.rst +0 -0
  66. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/geo_nodes.rst +0 -0
  67. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/group_access_tokens.rst +0 -0
  68. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/groups.rst +0 -0
  69. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/invitations.rst +0 -0
  70. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/issues.rst +0 -0
  71. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/iterations.rst +0 -0
  72. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/job_token_scope.rst +0 -0
  73. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/keys.rst +0 -0
  74. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/labels.rst +0 -0
  75. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/member_roles.rst +0 -0
  76. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/merge_request_approvals.rst +0 -0
  77. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/merge_requests.rst +0 -0
  78. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/merge_trains.rst +0 -0
  79. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/messages.rst +0 -0
  80. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/milestones.rst +0 -0
  81. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/namespaces.rst +0 -0
  82. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/notes.rst +0 -0
  83. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/notifications.rst +0 -0
  84. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/packages.rst +0 -0
  85. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/pagesdomains.rst +0 -0
  86. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/personal_access_tokens.rst +0 -0
  87. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/pipelines_and_jobs.rst +0 -0
  88. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/project_access_tokens.rst +0 -0
  89. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/projects.rst +0 -0
  90. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/protected_branches.rst +0 -0
  91. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/protected_container_repositories.rst +0 -0
  92. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/protected_environments.rst +0 -0
  93. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/protected_packages.rst +0 -0
  94. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/pull_mirror.rst +0 -0
  95. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/releases.rst +0 -0
  96. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/remote_mirrors.rst +0 -0
  97. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/repositories.rst +0 -0
  98. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/repository_tags.rst +0 -0
  99. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/resource_groups.rst +0 -0
  100. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/runners.rst +0 -0
  101. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/search.rst +0 -0
  102. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/secure_files.rst +0 -0
  103. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/settings.rst +0 -0
  104. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/sidekiq.rst +0 -0
  105. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/snippets.rst +0 -0
  106. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/statistics.rst +0 -0
  107. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/status_checks.rst +0 -0
  108. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/system_hooks.rst +0 -0
  109. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/templates.rst +0 -0
  110. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/todos.rst +0 -0
  111. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/topics.rst +0 -0
  112. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/users.rst +0 -0
  113. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/variables.rst +0 -0
  114. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/gl_objects/wikis.rst +0 -0
  115. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/index.rst +0 -0
  116. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/make.bat +0 -0
  117. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/docs/release-notes.rst +0 -0
  118. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/__init__.py +0 -0
  119. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/__main__.py +0 -0
  120. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/_backends/__init__.py +0 -0
  121. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/_backends/graphql.py +0 -0
  122. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/_backends/protocol.py +0 -0
  123. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/_backends/requests_backend.py +0 -0
  124. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/base.py +0 -0
  125. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/cli.py +0 -0
  126. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/client.py +0 -0
  127. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/config.py +0 -0
  128. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/const.py +0 -0
  129. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/exceptions.py +0 -0
  130. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/mixins.py +0 -0
  131. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/py.typed +0 -0
  132. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/types.py +0 -0
  133. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/__init__.py +0 -0
  134. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/cli.py +0 -0
  135. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/__init__.py +0 -0
  136. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/access_requests.py +0 -0
  137. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/appearance.py +0 -0
  138. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/applications.py +0 -0
  139. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/artifacts.py +0 -0
  140. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/audit_events.py +0 -0
  141. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/award_emojis.py +0 -0
  142. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/badges.py +0 -0
  143. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/boards.py +0 -0
  144. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/branches.py +0 -0
  145. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/broadcast_messages.py +0 -0
  146. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/bulk_imports.py +0 -0
  147. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/ci_lint.py +0 -0
  148. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/cluster_agents.py +0 -0
  149. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/clusters.py +0 -0
  150. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/commits.py +0 -0
  151. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/container_registry.py +0 -0
  152. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/custom_attributes.py +0 -0
  153. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/deploy_keys.py +0 -0
  154. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/deploy_tokens.py +0 -0
  155. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/deployments.py +0 -0
  156. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/discussions.py +0 -0
  157. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/draft_notes.py +0 -0
  158. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/environments.py +0 -0
  159. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/epics.py +0 -0
  160. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/events.py +0 -0
  161. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/export_import.py +0 -0
  162. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/features.py +0 -0
  163. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/files.py +0 -0
  164. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/geo_nodes.py +0 -0
  165. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/group_access_tokens.py +0 -0
  166. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/groups.py +0 -0
  167. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/hooks.py +0 -0
  168. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/integrations.py +0 -0
  169. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/invitations.py +0 -0
  170. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/issues.py +0 -0
  171. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/iterations.py +0 -0
  172. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/job_token_scope.py +0 -0
  173. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/jobs.py +0 -0
  174. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/keys.py +0 -0
  175. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/labels.py +0 -0
  176. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/ldap.py +0 -0
  177. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/member_roles.py +0 -0
  178. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/members.py +0 -0
  179. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/merge_request_approvals.py +0 -0
  180. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/merge_requests.py +0 -0
  181. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/merge_trains.py +0 -0
  182. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/milestones.py +0 -0
  183. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/namespaces.py +0 -0
  184. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/notes.py +0 -0
  185. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/notification_settings.py +0 -0
  186. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/package_protection_rules.py +0 -0
  187. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/packages.py +0 -0
  188. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/pages.py +0 -0
  189. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/personal_access_tokens.py +0 -0
  190. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/pipelines.py +0 -0
  191. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/project_access_tokens.py +0 -0
  192. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/projects.py +0 -0
  193. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/push_rules.py +0 -0
  194. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/registry_protection_rules.py +0 -0
  195. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/releases.py +0 -0
  196. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/repositories.py +0 -0
  197. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/resource_groups.py +0 -0
  198. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/reviewers.py +0 -0
  199. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/runners.py +0 -0
  200. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/secure_files.py +0 -0
  201. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/service_accounts.py +0 -0
  202. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/settings.py +0 -0
  203. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/sidekiq.py +0 -0
  204. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/snippets.py +0 -0
  205. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/statistics.py +0 -0
  206. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/status_checks.py +0 -0
  207. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/tags.py +0 -0
  208. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/templates.py +0 -0
  209. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/todos.py +0 -0
  210. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/topics.py +0 -0
  211. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/triggers.py +0 -0
  212. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/users.py +0 -0
  213. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/variables.py +0 -0
  214. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/gitlab/v4/objects/wikis.py +0 -0
  215. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/pyproject.toml +0 -0
  216. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/SOURCES.txt +0 -0
  217. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/dependency_links.txt +0 -0
  218. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/entry_points.txt +0 -0
  219. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/requires.txt +0 -0
  220. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/python_gitlab.egg-info/top_level.txt +0 -0
  221. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/requirements.txt +0 -0
  222. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/setup.cfg +0 -0
  223. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/__init__.py +0 -0
  224. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/conftest.py +0 -0
  225. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/__init__.py +0 -0
  226. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/__init__.py +0 -0
  227. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_boards.py +0 -0
  228. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_branches.py +0 -0
  229. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_bulk_imports.py +0 -0
  230. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_current_user.py +0 -0
  231. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_deploy_keys.py +0 -0
  232. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_deploy_tokens.py +0 -0
  233. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_gitlab.py +0 -0
  234. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_graphql.py +0 -0
  235. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_groups.py +0 -0
  236. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_import_export.py +0 -0
  237. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_issues.py +0 -0
  238. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_lazy_objects.py +0 -0
  239. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_member_roles.py +0 -0
  240. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_merge_requests.py +0 -0
  241. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_packages.py +0 -0
  242. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_push_rules.py +0 -0
  243. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_releases.py +0 -0
  244. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_repository.py +0 -0
  245. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_services.py +0 -0
  246. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_snippets.py +0 -0
  247. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_statistics.py +0 -0
  248. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_topics.py +0 -0
  249. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_users.py +0 -0
  250. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_variables.py +0 -0
  251. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/api/test_wikis.py +0 -0
  252. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/__init__.py +0 -0
  253. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/conftest.py +0 -0
  254. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli.py +0 -0
  255. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_artifacts.py +0 -0
  256. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_files.py +0 -0
  257. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_packages.py +0 -0
  258. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_projects.py +0 -0
  259. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_repository.py +0 -0
  260. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_resource_access_tokens.py +0 -0
  261. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_users.py +0 -0
  262. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_v4.py +0 -0
  263. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/cli/test_cli_variables.py +0 -0
  264. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/conftest.py +0 -0
  265. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/ee-test.py +0 -0
  266. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/__init__.py +0 -0
  267. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/avatar.png +0 -0
  268. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/create_license.rb +0 -0
  269. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/docker.py +0 -0
  270. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/invalid_auth.cfg +0 -0
  271. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/invalid_version.cfg +0 -0
  272. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/functional/fixtures/set_token.rb +0 -0
  273. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/install/test_install.py +0 -0
  274. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/smoke/__init__.py +0 -0
  275. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/smoke/test_dists.py +0 -0
  276. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/__init__.py +0 -0
  277. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/_backends/__init__.py +0 -0
  278. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/_backends/test_requests_backend.py +0 -0
  279. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/base/test_rest_manager.py +0 -0
  280. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/base/test_rest_object.py +0 -0
  281. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/conftest.py +0 -0
  282. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/helpers.py +0 -0
  283. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/meta/__init__.py +0 -0
  284. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/meta/test_abstract_attrs.py +0 -0
  285. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/meta/test_imports.py +0 -0
  286. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/meta/test_mro.py +0 -0
  287. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/mixins/__init__.py +0 -0
  288. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/mixins/test_meta_mixins.py +0 -0
  289. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/mixins/test_mixin_methods.py +0 -0
  290. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/mixins/test_object_mixins_attributes.py +0 -0
  291. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/__init__.py +0 -0
  292. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/conftest.py +0 -0
  293. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_appearance.py +0 -0
  294. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_applications.py +0 -0
  295. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_audit_events.py +0 -0
  296. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_badges.py +0 -0
  297. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_bridges.py +0 -0
  298. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_bulk_imports.py +0 -0
  299. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_ci_lint.py +0 -0
  300. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_cluster_agents.py +0 -0
  301. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_commits.py +0 -0
  302. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_deploy_tokens.py +0 -0
  303. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_deployments.py +0 -0
  304. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_draft_notes.py +0 -0
  305. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_environments.py +0 -0
  306. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_group_access_tokens.py +0 -0
  307. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_group_merge_request_approvals.py +0 -0
  308. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_groups.py +0 -0
  309. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_hooks.py +0 -0
  310. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_invitations.py +0 -0
  311. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_issues.py +0 -0
  312. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_iterations.py +0 -0
  313. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_job_artifacts.py +0 -0
  314. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_job_token_scope.py +0 -0
  315. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_jobs.py +0 -0
  316. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_keys.py +0 -0
  317. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_member_roles.py +0 -0
  318. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_members.py +0 -0
  319. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_merge_request_pipelines.py +0 -0
  320. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_merge_requests.py +0 -0
  321. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_merge_trains.py +0 -0
  322. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_package_protection_rules.py +0 -0
  323. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_packages.py +0 -0
  324. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_personal_access_tokens.py +0 -0
  325. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_pipeline_schedules.py +0 -0
  326. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_pipelines.py +0 -0
  327. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_project_access_tokens.py +0 -0
  328. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_project_import_export.py +0 -0
  329. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_project_merge_request_approvals.py +0 -0
  330. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_project_statistics.py +0 -0
  331. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_projects.py +0 -0
  332. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_pull_mirror.py +0 -0
  333. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_registry_repositories.py +0 -0
  334. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_releases.py +0 -0
  335. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_remote_mirrors.py +0 -0
  336. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_repositories.py +0 -0
  337. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_groups.py +0 -0
  338. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_iteration_events.py +0 -0
  339. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_label_events.py +0 -0
  340. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_milestone_events.py +0 -0
  341. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_resource_state_events.py +0 -0
  342. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_runners.py +0 -0
  343. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_secure_files.py +0 -0
  344. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_services.py +0 -0
  345. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_snippets.py +0 -0
  346. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_statistics.py +0 -0
  347. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_status_checks.py +0 -0
  348. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_submodules.py +0 -0
  349. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_templates.py +0 -0
  350. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_todos.py +0 -0
  351. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_topics.py +0 -0
  352. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_users.py +0 -0
  353. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/objects/test_variables.py +0 -0
  354. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_cli.py +0 -0
  355. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_config.py +0 -0
  356. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_exceptions.py +0 -0
  357. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_gitlab.py +0 -0
  358. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_gitlab_auth.py +0 -0
  359. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_gitlab_http_methods.py +0 -0
  360. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_graphql.py +0 -0
  361. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_retry.py +0 -0
  362. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_types.py +0 -0
  363. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tests/unit/test_utils.py +0 -0
  364. {python_gitlab-7.0.0 → python_gitlab-7.1.0}/tox.ini +0 -0
@@ -2,6 +2,29 @@
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
+
5
28
  ## v7.0.0 (2025-10-29)
6
29
 
7
30
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-gitlab
3
- Version: 7.0.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>
@@ -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__ = "7.0.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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-gitlab
3
- Version: 7.0.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>
@@ -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
6
  isort==7.0.0
7
- mypy==1.18.2
8
- pylint==4.0.1
9
- pytest==8.4.2
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.11.0
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)
@@ -1 +0,0 @@
1
- pre-commit==4.3.0
File without changes
File without changes
File without changes
File without changes