python-gitlab 4.11.1__tar.gz → 4.12.0__tar.gz

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