python-gitea 0.11.3__tar.gz → 0.11.5__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 (413) hide show
  1. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/codeql.yml +3 -3
  2. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/scheduled_release.yml +1 -1
  3. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/support_floor_update.yml +1 -1
  4. {python_gitea-0.11.3 → python_gitea-0.11.5}/.pre-commit-config.yaml +3 -3
  5. {python_gitea-0.11.3 → python_gitea-0.11.5}/PKG-INFO +1 -1
  6. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/cli.md +9 -0
  7. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/python-api.md +6 -0
  8. {python_gitea-0.11.3 → python_gitea-0.11.5}/pyproject.toml +1 -1
  9. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/watch/changes.py +25 -1
  10. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/test_cli_contract.py +24 -6
  11. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/test_cli_watch_list.py +66 -0
  12. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/watch/test_watch_changes.py +53 -3
  13. {python_gitea-0.11.3 → python_gitea-0.11.5}/uv.lock +304 -265
  14. {python_gitea-0.11.3 → python_gitea-0.11.5}/.coderabbit.yaml +0 -0
  15. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  16. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  17. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  18. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/pull_request_template.md +0 -0
  19. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/ci.yml +0 -0
  20. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/documentation.yml +0 -0
  21. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/draft_release.yml +0 -0
  22. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/publish.yml +0 -0
  23. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/publish_testpypi.yml +0 -0
  24. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/release.yml +0 -0
  25. {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/semantic_pull_request.yml +0 -0
  26. {python_gitea-0.11.3 → python_gitea-0.11.5}/.gitignore +0 -0
  27. {python_gitea-0.11.3 → python_gitea-0.11.5}/.markdownlint.yaml +0 -0
  28. {python_gitea-0.11.3 → python_gitea-0.11.5}/.prettierrc +0 -0
  29. {python_gitea-0.11.3 → python_gitea-0.11.5}/.pypirc +0 -0
  30. {python_gitea-0.11.3 → python_gitea-0.11.5}/.typos.toml +0 -0
  31. {python_gitea-0.11.3 → python_gitea-0.11.5}/CITATION.cff +0 -0
  32. {python_gitea-0.11.3 → python_gitea-0.11.5}/CODE_OF_CONDUCT.md +0 -0
  33. {python_gitea-0.11.3 → python_gitea-0.11.5}/CONTRIBUTING.md +0 -0
  34. {python_gitea-0.11.3 → python_gitea-0.11.5}/LICENSE +0 -0
  35. {python_gitea-0.11.3 → python_gitea-0.11.5}/README.md +0 -0
  36. {python_gitea-0.11.3 → python_gitea-0.11.5}/SECURITY.md +0 -0
  37. {python_gitea-0.11.3 → python_gitea-0.11.5}/SUPPORT.md +0 -0
  38. {python_gitea-0.11.3 → python_gitea-0.11.5}/cliff.toml +0 -0
  39. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/contributing.md +0 -0
  40. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/dev/architecture.md +0 -0
  41. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/dev/troubleshooting.md +0 -0
  42. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/gen_ref_pages.py +0 -0
  43. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/index.md +0 -0
  44. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/javascripts/mathjax.js +0 -0
  45. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/security.md +0 -0
  46. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/style/api.css +0 -0
  47. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/configuration.md +0 -0
  48. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/installation.md +0 -0
  49. {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/quickstart.md +0 -0
  50. {python_gitea-0.11.3 → python_gitea-0.11.5}/mkdocs.yml +0 -0
  51. {python_gitea-0.11.3 → python_gitea-0.11.5}/renovate.json +0 -0
  52. {python_gitea-0.11.3 → python_gitea-0.11.5}/scripts/release_version.py +0 -0
  53. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/__init__.py +0 -0
  54. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/__main__.py +0 -0
  55. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/_lazy.py +0 -0
  56. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/__init__.py +0 -0
  57. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/actions.py +0 -0
  58. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/artifact.py +0 -0
  59. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_actions.py +0 -0
  60. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_artifact.py +0 -0
  61. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_run_management.py +0 -0
  62. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_runner.py +0 -0
  63. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_secret.py +0 -0
  64. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_variable.py +0 -0
  65. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/base.py +0 -0
  66. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/run_management.py +0 -0
  67. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/runner.py +0 -0
  68. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/scope.py +0 -0
  69. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/secret.py +0 -0
  70. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/variable.py +0 -0
  71. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/__init__.py +0 -0
  72. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/__init__.py +0 -0
  73. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/__init__.py +0 -0
  74. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/delete.py +0 -0
  75. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/download.py +0 -0
  76. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/get.py +0 -0
  77. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/list.py +0 -0
  78. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/__init__.py +0 -0
  79. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/get.py +0 -0
  80. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/list.py +0 -0
  81. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/logs.py +0 -0
  82. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/rerun.py +0 -0
  83. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/main.py +0 -0
  84. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/__init__.py +0 -0
  85. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/approve.py +0 -0
  86. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/cancel.py +0 -0
  87. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/delete.py +0 -0
  88. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/force_cancel.py +0 -0
  89. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/get.py +0 -0
  90. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/jobs.py +0 -0
  91. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/list.py +0 -0
  92. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/rerun.py +0 -0
  93. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/__init__.py +0 -0
  94. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/delete.py +0 -0
  95. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/get.py +0 -0
  96. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/list.py +0 -0
  97. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/registration_token.py +0 -0
  98. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/state.py +0 -0
  99. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/update.py +0 -0
  100. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/secret/__init__.py +0 -0
  101. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/secret/delete.py +0 -0
  102. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/secret/list.py +0 -0
  103. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/secret/set.py +0 -0
  104. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/__init__.py +0 -0
  105. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/create.py +0 -0
  106. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/delete.py +0 -0
  107. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/get.py +0 -0
  108. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/list.py +0 -0
  109. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/update.py +0 -0
  110. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/workflow/__init__.py +0 -0
  111. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/workflow/dispatch.py +0 -0
  112. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/workflow/get.py +0 -0
  113. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/workflow/list.py +0 -0
  114. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/__init__.py +0 -0
  115. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/add.py +0 -0
  116. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/delete.py +0 -0
  117. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/edit.py +0 -0
  118. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/list.py +0 -0
  119. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/main.py +0 -0
  120. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/__init__.py +0 -0
  121. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/add.py +0 -0
  122. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/delete.py +0 -0
  123. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/list.py +0 -0
  124. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/main.py +0 -0
  125. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/update.py +0 -0
  126. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/__init__.py +0 -0
  127. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/close.py +0 -0
  128. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/create.py +0 -0
  129. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/__init__.py +0 -0
  130. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/add.py +0 -0
  131. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/list.py +0 -0
  132. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/main.py +0 -0
  133. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/remove.py +0 -0
  134. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/edit.py +0 -0
  135. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/get.py +0 -0
  136. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/list.py +0 -0
  137. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/main.py +0 -0
  138. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/__init__.py +0 -0
  139. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/create.py +0 -0
  140. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/delete.py +0 -0
  141. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/list.py +0 -0
  142. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/main.py +0 -0
  143. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/update.py +0 -0
  144. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/main.py +0 -0
  145. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/milestone/__init__.py +0 -0
  146. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/milestone/create.py +0 -0
  147. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/milestone/list.py +0 -0
  148. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/milestone/main.py +0 -0
  149. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/notification/__init__.py +0 -0
  150. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/notification/list.py +0 -0
  151. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/notification/main.py +0 -0
  152. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/notification/read.py +0 -0
  153. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/organization/__init__.py +0 -0
  154. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/organization/list.py +0 -0
  155. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/organization/main.py +0 -0
  156. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/output.py +0 -0
  157. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/__init__.py +0 -0
  158. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/column/__init__.py +0 -0
  159. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/column/create.py +0 -0
  160. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/column/issues.py +0 -0
  161. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/column/list.py +0 -0
  162. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/create.py +0 -0
  163. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/delete.py +0 -0
  164. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/edit.py +0 -0
  165. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/get.py +0 -0
  166. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issue/__init__.py +0 -0
  167. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issue/add.py +0 -0
  168. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issue/move.py +0 -0
  169. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issue/remove.py +0 -0
  170. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issues.py +0 -0
  171. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/list.py +0 -0
  172. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/main.py +0 -0
  173. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/show.py +0 -0
  174. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/pull_request/__init__.py +0 -0
  175. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/pull_request/list.py +0 -0
  176. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/pull_request/main.py +0 -0
  177. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/repository/__init__.py +0 -0
  178. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/repository/list.py +0 -0
  179. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/repository/main.py +0 -0
  180. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/user/__init__.py +0 -0
  181. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/user/get.py +0 -0
  182. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/user/main.py +0 -0
  183. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/user/update_settings.py +0 -0
  184. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/__init__.py +0 -0
  185. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/api.py +0 -0
  186. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/auth.py +0 -0
  187. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/convert.py +0 -0
  188. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/errors.py +0 -0
  189. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/issue.py +0 -0
  190. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/options.py +0 -0
  191. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/__init__.py +0 -0
  192. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/advance.py +0 -0
  193. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/list.py +0 -0
  194. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/main.py +0 -0
  195. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/scopes.py +0 -0
  196. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/client/__init__.py +0 -0
  197. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/client/async_gitea.py +0 -0
  198. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/client/base.py +0 -0
  199. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/client/gitea.py +0 -0
  200. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/comment/__init__.py +0 -0
  201. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/comment/async_comment.py +0 -0
  202. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/comment/base.py +0 -0
  203. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/comment/comment.py +0 -0
  204. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/config/__init__.py +0 -0
  205. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/config/manager.py +0 -0
  206. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/config/model.py +0 -0
  207. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/__init__.py +0 -0
  208. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/async_issue.py +0 -0
  209. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/base.py +0 -0
  210. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/issue.py +0 -0
  211. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/project_column.py +0 -0
  212. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/label/__init__.py +0 -0
  213. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/label/async_label.py +0 -0
  214. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/label/base.py +0 -0
  215. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/label/label.py +0 -0
  216. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/milestone/__init__.py +0 -0
  217. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/milestone/async_milestone.py +0 -0
  218. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/milestone/base.py +0 -0
  219. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/milestone/milestone.py +0 -0
  220. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/notification/__init__.py +0 -0
  221. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/notification/async_notification.py +0 -0
  222. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/notification/base.py +0 -0
  223. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/notification/notification.py +0 -0
  224. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/organization/__init__.py +0 -0
  225. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/organization/async_organization.py +0 -0
  226. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/organization/base.py +0 -0
  227. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/organization/organization.py +0 -0
  228. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/project/__init__.py +0 -0
  229. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/project/async_project.py +0 -0
  230. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/project/base.py +0 -0
  231. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/project/project.py +0 -0
  232. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/pull_request/__init__.py +0 -0
  233. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/pull_request/async_pull_request.py +0 -0
  234. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/pull_request/base.py +0 -0
  235. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/pull_request/pull_request.py +0 -0
  236. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/repository/__init__.py +0 -0
  237. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/repository/async_repository.py +0 -0
  238. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/repository/base.py +0 -0
  239. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/repository/repository.py +0 -0
  240. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/resource/__init__.py +0 -0
  241. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/resource/async_resource.py +0 -0
  242. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/resource/protocol.py +0 -0
  243. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/resource/resource.py +0 -0
  244. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/user/__init__.py +0 -0
  245. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/user/async_user.py +0 -0
  246. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/user/base.py +0 -0
  247. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/user/user.py +0 -0
  248. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/__init__.py +0 -0
  249. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/fields.py +0 -0
  250. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/log.py +0 -0
  251. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/pagination.py +0 -0
  252. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/response.py +0 -0
  253. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/version.py +0 -0
  254. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/watch/__init__.py +0 -0
  255. {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/watch/state.py +0 -0
  256. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/__init__.py +0 -0
  257. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/__init__.py +0 -0
  258. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/test_actions_base.py +0 -0
  259. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/test_actions_imports.py +0 -0
  260. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/test_actions_requests.py +0 -0
  261. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/test_actions_scope.py +0 -0
  262. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/board.py +0 -0
  263. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/__init__.py +0 -0
  264. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/__init__.py +0 -0
  265. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/invoking.py +0 -0
  266. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_artifact.py +0 -0
  267. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_job_get.py +0 -0
  268. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_job_list.py +0 -0
  269. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_job_logs.py +0 -0
  270. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_main.py +0 -0
  271. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_run_get.py +0 -0
  272. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_run_jobs.py +0 -0
  273. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_run_list.py +0 -0
  274. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_run_management.py +0 -0
  275. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_runner.py +0 -0
  276. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_secret.py +0 -0
  277. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_variable.py +0 -0
  278. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_workflow_dispatch.py +0 -0
  279. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_workflow_get.py +0 -0
  280. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_workflow_list.py +0 -0
  281. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/__init__.py +0 -0
  282. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_add.py +0 -0
  283. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_delete.py +0 -0
  284. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_edit.py +0 -0
  285. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_list.py +0 -0
  286. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_main.py +0 -0
  287. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/__init__.py +0 -0
  288. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_add.py +0 -0
  289. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_delete.py +0 -0
  290. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_list.py +0 -0
  291. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_main.py +0 -0
  292. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_update.py +0 -0
  293. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/envelope.py +0 -0
  294. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/__init__.py +0 -0
  295. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/dependency/__init__.py +0 -0
  296. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/dependency/test_cli_issue_dependency.py +0 -0
  297. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_close.py +0 -0
  298. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_comment.py +0 -0
  299. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_create.py +0 -0
  300. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_edit.py +0 -0
  301. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_get.py +0 -0
  302. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_list.py +0 -0
  303. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_main.py +0 -0
  304. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/__init__.py +0 -0
  305. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_create.py +0 -0
  306. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_delete.py +0 -0
  307. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_list.py +0 -0
  308. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_main.py +0 -0
  309. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_update.py +0 -0
  310. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/milestone/__init__.py +0 -0
  311. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/milestone/test_cli_milestone_create.py +0 -0
  312. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/milestone/test_cli_milestone_list.py +0 -0
  313. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/milestone/test_cli_milestone_main.py +0 -0
  314. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/notification/__init__.py +0 -0
  315. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/notification/test_cli_notification.py +0 -0
  316. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/organization/__init__.py +0 -0
  317. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/organization/test_cli_organization_list.py +0 -0
  318. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/organization/test_cli_organization_main.py +0 -0
  319. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/project/__init__.py +0 -0
  320. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/project/test_cli_project.py +0 -0
  321. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/project/test_cli_project_column_issues.py +0 -0
  322. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/project/test_cli_project_show.py +0 -0
  323. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/pull_request/__init__.py +0 -0
  324. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/pull_request/test_cli_pull_request_list.py +0 -0
  325. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/pull_request/test_cli_pull_request_main.py +0 -0
  326. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/rendering.py +0 -0
  327. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/repository/__init__.py +0 -0
  328. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/repository/test_cli_repository_list.py +0 -0
  329. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/repository/test_cli_repository_main.py +0 -0
  330. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/test_cli_main.py +0 -0
  331. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/test_cli_output.py +0 -0
  332. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/tree.py +0 -0
  333. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/user/__init__.py +0 -0
  334. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/user/test_cli_user_get.py +0 -0
  335. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/user/test_cli_user_update_settings.py +0 -0
  336. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/__init__.py +0 -0
  337. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_api.py +0 -0
  338. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_auth.py +0 -0
  339. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_convert.py +0 -0
  340. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_errors.py +0 -0
  341. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_issue.py +0 -0
  342. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_options.py +0 -0
  343. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/__init__.py +0 -0
  344. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/support.py +0 -0
  345. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/test_cli_watch_advance.py +0 -0
  346. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/test_cli_watch_scopes.py +0 -0
  347. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/client/__init__.py +0 -0
  348. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/client/test_client_async_gitea.py +0 -0
  349. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/client/test_client_base.py +0 -0
  350. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/client/test_client_gitea.py +0 -0
  351. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/comment/__init__.py +0 -0
  352. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/comment/test_comment_async_comment.py +0 -0
  353. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/comment/test_comment_base.py +0 -0
  354. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/comment/test_comment_comment.py +0 -0
  355. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/config/__init__.py +0 -0
  356. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/config/test_config_manager.py +0 -0
  357. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/config/test_config_model.py +0 -0
  358. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/conftest.py +0 -0
  359. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/__init__.py +0 -0
  360. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_async_issue.py +0 -0
  361. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_async_project_column.py +0 -0
  362. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_base.py +0 -0
  363. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_dependencies.py +0 -0
  364. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_issue.py +0 -0
  365. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_project_column.py +0 -0
  366. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/label/__init__.py +0 -0
  367. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/label/test_label_async_label.py +0 -0
  368. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/label/test_label_base.py +0 -0
  369. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/label/test_label_label.py +0 -0
  370. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/milestone/__init__.py +0 -0
  371. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/milestone/test_milestone_async_milestone.py +0 -0
  372. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/milestone/test_milestone_base.py +0 -0
  373. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/milestone/test_milestone_milestone.py +0 -0
  374. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/notification/__init__.py +0 -0
  375. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/notification/test_notification_base.py +0 -0
  376. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/notification/test_notification_notification.py +0 -0
  377. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/organization/__init__.py +0 -0
  378. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/organization/test_organization_async_organization.py +0 -0
  379. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/organization/test_organization_base.py +0 -0
  380. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/organization/test_organization_organization.py +0 -0
  381. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/project/__init__.py +0 -0
  382. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/project/test_project_base.py +0 -0
  383. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/project/test_project_project.py +0 -0
  384. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/project/test_project_requests.py +0 -0
  385. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/pull_request/__init__.py +0 -0
  386. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/pull_request/test_pull_request_async_pull_request.py +0 -0
  387. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/pull_request/test_pull_request_base.py +0 -0
  388. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/pull_request/test_pull_request_pull_request.py +0 -0
  389. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/repository/__init__.py +0 -0
  390. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/repository/test_repository_async_repository.py +0 -0
  391. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/repository/test_repository_base.py +0 -0
  392. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/repository/test_repository_repository.py +0 -0
  393. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/resource/__init__.py +0 -0
  394. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/resource/test_resource_async_resource.py +0 -0
  395. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/resource/test_resource_resource.py +0 -0
  396. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/smoke_test.py +0 -0
  397. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_import.py +0 -0
  398. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_lazy_reexports.py +0 -0
  399. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_main.py +0 -0
  400. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_release_version.py +0 -0
  401. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_version.py +0 -0
  402. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/transport.py +0 -0
  403. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/user/__init__.py +0 -0
  404. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/user/test_user_async_user.py +0 -0
  405. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/user/test_user_base.py +0 -0
  406. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/user/test_user_user.py +0 -0
  407. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/__init__.py +0 -0
  408. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/test_utils_fields.py +0 -0
  409. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/test_utils_log.py +0 -0
  410. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/test_utils_pagination.py +0 -0
  411. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/test_utils_response.py +0 -0
  412. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/watch/__init__.py +0 -0
  413. {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/watch/test_watch_state.py +0 -0
@@ -22,13 +22,13 @@ jobs:
22
22
  uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
23
23
 
24
24
  - name: Initialize CodeQL
25
- uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
25
+ uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
26
26
  with:
27
27
  languages: python
28
28
  queries: security-and-quality
29
29
 
30
30
  - name: Autobuild
31
- uses: github/codeql-action/autobuild@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
31
+ uses: github/codeql-action/autobuild@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
32
32
 
33
33
  - name: Perform CodeQL Analysis
34
- uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
34
+ uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
@@ -31,7 +31,7 @@ jobs:
31
31
 
32
32
  - name: Check for new commits
33
33
  id: check_commits
34
- uses: isaac-cf-wong/detect-git-changes-action@604bb375bf2cef3116a2505f30cc6c5965a8fcba # v0.0.18
34
+ uses: isaac-cf-wong/detect-git-changes-action@10d1e3ac7c5ee0997d7b370e9929cacac9c87013 # v0.0.19
35
35
  with:
36
36
  use-latest-tag: true
37
37
 
@@ -22,7 +22,7 @@ jobs:
22
22
 
23
23
  - name: Apply support policy (spec0, from pyproject tool table)
24
24
  id: policy
25
- uses: isaac-cf-wong/dependency-support-policy-action@ffc9ff06cb39b2dc14680bff5f9bc84c0ad838b6 # v0.2.7
25
+ uses: isaac-cf-wong/dependency-support-policy-action@3831b000a448af639c88b8529d7057778edbc6ae # v0.2.8
26
26
  with:
27
27
  mode: update
28
28
 
@@ -16,7 +16,7 @@ repos:
16
16
  - id: check-json
17
17
 
18
18
  - repo: https://github.com/astral-sh/ruff-pre-commit
19
- rev: v0.16.6
19
+ rev: v0.16.7
20
20
  hooks:
21
21
  - id: ruff
22
22
  args: [--fix, --config=pyproject.toml]
@@ -28,7 +28,7 @@ repos:
28
28
  - id: taplo-format
29
29
 
30
30
  - repo: https://github.com/crate-ci/typos
31
- rev: v1.50.1
31
+ rev: v1.50.2
32
32
  hooks:
33
33
  - id: typos
34
34
  args: []
@@ -52,7 +52,7 @@ repos:
52
52
  - id: actionlint
53
53
 
54
54
  - repo: https://github.com/astral-sh/uv-pre-commit
55
- rev: 0.12.10
55
+ rev: 0.12.15
56
56
  hooks:
57
57
  # Update the uv lockfile
58
58
  - id: uv-lock
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: python-gitea
3
- Version: 0.11.3
3
+ Version: 0.11.5
4
4
  Summary: A Python package for interacting with the Gitea API, offering a simple interface to access repositories, users, organizations, issues, and more for automation and data management.
5
5
  Project-URL: Documentation, https://isaac-cf-wong.github.io/python-gitea
6
6
  Project-URL: Source, https://github.com/isaac-cf-wong/python-gitea
@@ -722,6 +722,15 @@ or its comments changed. An issue that dropped out of what is being watched -
722
722
  closed, deleted, or moved off the board - is reported as `gone`. An issue that
723
723
  changed in more than one way is reported once per way.
724
724
 
725
+ An issue seen for the first time is one of those: it is reported as `new`, and
726
+ what it already carries - its assignees, its labels, and the comments already on
727
+ it - is reported alongside as added. That matters for a comment written between
728
+ an issue being opened and the next run: reporting only `new` would fold it into
729
+ the baseline the same run records, so no later run would have anything left to
730
+ compare it against and it would never be reported at all. It also means a
731
+ consumer that reacts to `comments` and not to `new` still hears about it. A
732
+ scope seen for the first time is still silent - see the cache below.
733
+
725
734
  Comments are compared by a stable hash of each comment rather than by counting
726
735
  them, so a comment edited in place is reported, and a comment added while
727
736
  another was deleted is two movements rather than none.
@@ -397,6 +397,12 @@ for change in detect_changes(current, scope_snapshots(state, SCOPE)):
397
397
  save_scopes("watch-state.json", {SCOPE: current})
398
398
  ```
399
399
 
400
+ Baselining applies to a scope and not to an issue. An issue the recorded scope
401
+ has not seen is compared against an empty snapshot, so `detect_changes` reports
402
+ `new` for it and then reports the assignees, labels and comments it already
403
+ carries as added - which is what keeps a comment written before the issue was
404
+ first seen from being folded into the baseline and never reported.
405
+
400
406
  `issue_snapshot` reduces an issue to the fields the comparison reads,
401
407
  `comment_hash` identifies a comment stably across re-fetches - by the author's
402
408
  ID rather than their login, so renaming a user does not look like every comment
@@ -29,7 +29,7 @@ dependencies = [
29
29
 
30
30
  [dependency-groups]
31
31
  dev = [
32
- "ruff>=0.16.6",
32
+ "ruff>=0.16.7",
33
33
  # The mutation runner, in the environment `uv run` resolves, so that
34
34
  # `uv run mutmut run` reaches the same interpreter as `uv run pytest` and finds
35
35
  # the pytest plugins the suite's own options need. Run from a tool environment
@@ -13,6 +13,12 @@ comparison needs nothing from the previous run except the hashes it recorded.
13
13
  same value, and an edited one does not, which is what makes an edit show up as a
14
14
  change rather than disappear.
15
15
 
16
+ A comment is reported whether or not the issue carrying it was already known.
17
+ An issue seen for the first time is compared against an empty snapshot rather
18
+ than passed over, so a comment that was already on it is an addition and not a
19
+ baseline - what it costs to pass over is a comment nobody is ever told about,
20
+ since the run that passed over it also recorded it.
21
+
16
22
  `updated_at` is recorded but is not itself compared. Gitea bumps it for every
17
23
  edit, including ones a watch has nothing to say about, so comparing it would
18
24
  report a body reworded as indistinguishable from a comment added. The
@@ -271,6 +277,17 @@ def detect_changes(
271
277
  An issue that changed in more than one way contributes one record per way,
272
278
  as a digest reads better naming each change than one line naming three.
273
279
 
280
+ An issue the recorded scope has not seen is one of those: it contributes the
281
+ `new` record naming it, and then the same records everything else
282
+ contributes, taken against the empty snapshot it is being compared to - so
283
+ the assignees, labels and comments it already carries are reported as added.
284
+ Reporting only `new` would make them baseline, which loses a comment written
285
+ between an issue being opened and the run that first saw it, and loses it
286
+ permanently: the run that swallowed it records it and the next one has
287
+ nothing left to compare against. It matters most to a consumer that reacts
288
+ to a kind rather than to an issue - one acting on `comments` and not on
289
+ `new` would never learn the comment was there.
290
+
274
291
  Args:
275
292
  current: The snapshot of each issue in the scope now, keyed by
276
293
  `issue_key`.
@@ -293,7 +310,14 @@ def detect_changes(
293
310
  before = previous.get(key)
294
311
  if before is None:
295
312
  changes.append(_change(snapshot, "new", "new issue", [], []))
296
- continue
313
+ # An issue first seen here is compared against an empty snapshot
314
+ # rather than skipped, so what it already carries is reported as
315
+ # added. Skipping it would make the comments an issue was opened
316
+ # with - or the ones written before the run that first saw it -
317
+ # baseline instead of a change, and they would never be reported:
318
+ # the one record that mentioned the issue would be `new`, which a
319
+ # consumer filtering on the kinds it acts on may not act on at all.
320
+ before = {}
297
321
 
298
322
  for field, kind in _FIELD_KINDS:
299
323
  added, removed = _delta(before.get(field, []), snapshot.get(field, []))
@@ -36,6 +36,7 @@ from typer.main import get_command
36
36
  from typer.testing import CliRunner
37
37
 
38
38
  from gitea.cli.main import app
39
+ from gitea.watch.changes import comment_hash
39
40
  from gitea.watch.state import STATE_FILE_ENV
40
41
  from tests.cli.envelope import parse_envelope
41
42
  from tests.cli.tree import leaf_commands
@@ -293,13 +294,21 @@ BOARD_ROUTES = (
293
294
  WATCH_SCOPE = "repo:o/r"
294
295
 
295
296
 
296
- def _change(issue: dict[str, Any], kind: str, detail: str) -> dict[str, Any]:
297
+ def _change(
298
+ issue: dict[str, Any],
299
+ kind: str,
300
+ detail: str,
301
+ added: list[str] | None = None,
302
+ removed: list[str] | None = None,
303
+ ) -> dict[str, Any]:
297
304
  """Build the change record a watch reports for one issue.
298
305
 
299
306
  Args:
300
307
  issue: The issue the change is on.
301
308
  kind: What changed.
302
309
  detail: The change, as the human digest phrases it.
310
+ added: What appeared, for a kind that has something to add.
311
+ removed: What went away, for a kind that has something to remove.
303
312
 
304
313
  Returns:
305
314
  The change record, including the scope the command adds.
@@ -312,8 +321,8 @@ def _change(issue: dict[str, Any], kind: str, detail: str) -> dict[str, Any]:
312
321
  "title": issue["title"],
313
322
  "repository": "o/r",
314
323
  "detail": detail,
315
- "added": [],
316
- "removed": [],
324
+ "added": added or [],
325
+ "removed": removed or [],
317
326
  "scope": WATCH_SCOPE,
318
327
  }
319
328
 
@@ -622,7 +631,15 @@ CONTRACTS = (
622
631
  # under test is the second one, which meets a different issue.
623
632
  warmup=(("/comments", [COMMENT]), ("", [ISSUE])),
624
633
  routes=(("/comments", [COMMENT]), ("", [OTHER_ISSUE])),
625
- data=[_change(OTHER_ISSUE, "new", "new issue"), _change(ISSUE, "gone", "no longer listed")],
634
+ # The issue that appeared is reported twice: once as the issue itself,
635
+ # and once for the comment that was already on it when it was first
636
+ # seen, which a consumer acting on comments would otherwise never hear
637
+ # about.
638
+ data=[
639
+ _change(OTHER_ISSUE, "new", "new issue"),
640
+ _change(OTHER_ISSUE, "comments", "1 new", added=[comment_hash(COMMENT)]),
641
+ _change(ISSUE, "gone", "no longer listed"),
642
+ ],
626
643
  metadata=(
627
644
  "status_code",
628
645
  "scopes",
@@ -642,8 +659,9 @@ CONTRACTS = (
642
659
  routes=(("/comments", [COMMENT]), ("", [OTHER_ISSUE])),
643
660
  # What was recorded, not what changed: the command commits the baseline
644
661
  # rather than reporting the difference. `change_count` is how far it
645
- # moved - the issue that appeared and the one that went away.
646
- data=[{"scope": WATCH_SCOPE, "issue_count": 1, "change_count": 2, "baselined": False}],
662
+ # moved - the issue that appeared, the comment it already carried, and
663
+ # the issue that went away.
664
+ data=[{"scope": WATCH_SCOPE, "issue_count": 1, "change_count": 3, "baselined": False}],
647
665
  metadata=(
648
666
  "status_code",
649
667
  "scopes",
@@ -137,6 +137,72 @@ class TestReportedChanges:
137
137
 
138
138
  assert result.stdout == "my-org/my-repo#16 new: new issue · Ship the release\n"
139
139
 
140
+ def test_a_comment_written_before_an_issue_was_first_seen_is_reported(self, tmp_path: Path) -> None:
141
+ """A comment already on an issue the run first meets has to be reported.
142
+
143
+ This is the window a comment can fall into and never come out of: it is
144
+ written after the issue is opened and before the run that first records
145
+ the issue. Reporting only `new` makes the comment part of the baseline,
146
+ and the same run writes that baseline down, so no later run has anything
147
+ left to compare it against - the comment is consumed without ever having
148
+ been reported, and a consumer that reacts to comments rather than to new
149
+ issues is never told about it.
150
+ """
151
+ state_path = tmp_path / "watch-state.json"
152
+ run(*watch(state_path), client=make_client([ISSUE], comments={15: [COMMENT]}))
153
+
154
+ # The issue arrives already carrying the comment, as one commented on
155
+ # between two ticks does.
156
+ result = run(
157
+ *watch(state_path, output="json"),
158
+ client=make_client([ISSUE, OTHER_ISSUE], comments={15: [COMMENT], 16: [COMMENT]}),
159
+ )
160
+
161
+ assert result.exit_code == 0
162
+ reported = [change for change in parse_envelope(result.stdout)["data"] if change["kind"] == "comments"]
163
+ assert [change["number"] for change in reported] == [16]
164
+ assert reported[0]["added"] == [comment_hash(COMMENT)]
165
+ assert reported[0]["removed"] == []
166
+
167
+ def test_the_new_issue_carrying_the_comment_is_still_reported_as_new(self, tmp_path: Path) -> None:
168
+ """The comment record is additional to `new`, not a replacement for it."""
169
+ state_path = tmp_path / "watch-state.json"
170
+ run(*watch(state_path), client=make_client([ISSUE]))
171
+
172
+ result = run(*watch(state_path), client=make_client([ISSUE, OTHER_ISSUE], comments={16: [COMMENT]}))
173
+
174
+ assert result.stdout.splitlines() == [
175
+ "my-org/my-repo#16 new: new issue · Ship the release",
176
+ "my-org/my-repo#16 comments: 1 new · Ship the release",
177
+ ]
178
+
179
+ def test_a_comment_on_a_first_seen_issue_is_reported_once(self, tmp_path: Path) -> None:
180
+ """Reporting it on first sight must not make every later run report it again."""
181
+ state_path = tmp_path / "watch-state.json"
182
+ run(*watch(state_path), client=make_client([ISSUE]))
183
+ run(*watch(state_path), client=make_client([ISSUE, OTHER_ISSUE], comments={16: [COMMENT]}))
184
+
185
+ result = run(*watch(state_path), client=make_client([ISSUE, OTHER_ISSUE], comments={16: [COMMENT]}))
186
+
187
+ assert result.stdout == ""
188
+
189
+ def test_the_comment_is_reported_whatever_board_the_issue_is_on(self, tmp_path: Path) -> None:
190
+ """Nothing here gates a comment on the issue being on a project board.
191
+
192
+ A repository scope watches the open issues of the repository, on a board
193
+ or not, and the issue in this suite carries no `projects` at all - so a
194
+ gate of that shape would have to be added here to break this. A consumer
195
+ that applies one of its own is free to, but a comment it never hears
196
+ about cannot be gated on anything.
197
+ """
198
+ state_path = tmp_path / "watch-state.json"
199
+ run(*watch(state_path), client=make_client([ISSUE]))
200
+ unboarded = {**OTHER_ISSUE, "projects": []}
201
+
202
+ result = run(*watch(state_path), client=make_client([ISSUE, unboarded], comments={16: [COMMENT]}))
203
+
204
+ assert "my-org/my-repo#16 comments: 1 new · Ship the release" in result.stdout.splitlines()
205
+
140
206
  def test_an_assignee_change_is_reported(self, tmp_path: Path) -> None:
141
207
  """Handing an issue over should reach the digest."""
142
208
  state_path = tmp_path / "watch-state.json"
@@ -258,7 +258,7 @@ class TestDetectChanges:
258
258
 
259
259
  def test_an_issue_absent_from_the_cache_is_new(self) -> None:
260
260
  """An issue a recorded scope has not seen should be reported as new."""
261
- changes = detect_changes({"1854": snapshot()}, {})
261
+ changes = detect_changes({"1854": snapshot(assignees=[], labels=[], comment_hashes=[])}, {})
262
262
 
263
263
  assert [change["kind"] for change in changes] == ["new"]
264
264
  assert changes[0]["detail"] == "new issue"
@@ -267,9 +267,56 @@ class TestDetectChanges:
267
267
  assert changes[0]["added"] == []
268
268
  assert changes[0]["removed"] == []
269
269
 
270
+ def test_a_comment_already_on_an_issue_first_seen_is_reported(self) -> None:
271
+ """A comment written before the run that first saw the issue is a change.
272
+
273
+ Reporting only `new` would make it baseline, and the run reporting that
274
+ also records it, so nothing would ever report it: a consumer acting on
275
+ `comments` rather than on `new` - because a comment is worth reacting to
276
+ wherever the issue sits - would never learn the comment was there.
277
+ """
278
+ changes = detect_changes({"1854": snapshot(assignees=[], labels=[])}, {})
279
+
280
+ assert [change["kind"] for change in changes] == ["new", "comments"]
281
+ assert changes[1]["added"] == [comment_hash(COMMENT)]
282
+ assert changes[1]["removed"] == []
283
+ assert changes[1]["detail"] == "1 new"
284
+ assert changes[1]["number"] == 15
285
+
286
+ def test_an_issue_first_seen_reports_the_fields_it_already_carries(self) -> None:
287
+ """Its assignees and labels are additions against an empty snapshot."""
288
+ changes = detect_changes({"1854": snapshot(comment_hashes=[])}, {})
289
+
290
+ assert [change["kind"] for change in changes] == ["new", "assignees", "labels"]
291
+ assert changes[1]["added"] == ["alice", "bob"]
292
+ assert changes[1]["removed"] == []
293
+ assert changes[2]["added"] == ["bug", "docs"]
294
+ assert changes[2]["removed"] == []
295
+
296
+ def test_an_issue_first_seen_still_reports_new_before_what_it_carries(self) -> None:
297
+ """The `new` record stays, and stays first, so a consumer keyed on it is unaffected."""
298
+ changes = detect_changes({"1854": snapshot()}, {})
299
+
300
+ assert [change["kind"] for change in changes] == ["new", "assignees", "labels", "comments"]
301
+ assert changes[0]["detail"] == "new issue"
302
+ assert changes[0]["added"] == []
303
+ assert changes[0]["removed"] == []
304
+
305
+ def test_an_issue_first_seen_is_reported_once(self) -> None:
306
+ """The run that reports it also records it, so the next run is quiet."""
307
+ current = {"1854": snapshot()}
308
+
309
+ assert detect_changes(current, {}) != []
310
+ # The run that reported recorded these same snapshots, and they are what
311
+ # the next run compares against.
312
+ assert detect_changes(current, {key: dict(value) for key, value in current.items()}) == []
313
+
270
314
  def test_every_new_issue_is_reported_not_only_the_first(self) -> None:
271
315
  """Two issues opened between runs are two changes."""
272
- current = {"1854": snapshot(), "1900": snapshot(issue_id=1900, number=16)}
316
+ current = {
317
+ "1854": snapshot(assignees=[], labels=[], comment_hashes=[]),
318
+ "1900": snapshot(issue_id=1900, number=16, assignees=[], labels=[], comment_hashes=[]),
319
+ }
273
320
 
274
321
  changes = detect_changes(current, {})
275
322
 
@@ -368,7 +415,10 @@ class TestDetectChanges:
368
415
  def test_a_change_record_carries_the_same_keys_whatever_the_kind(self) -> None:
369
416
  """A consumer should be able to read `added` without asking the kind first."""
370
417
  changes = detect_changes(
371
- {"1854": snapshot(assignees=["alice"]), "1855": snapshot(issue_id=1855, number=16)},
418
+ {
419
+ "1854": snapshot(assignees=["alice"]),
420
+ "1855": snapshot(issue_id=1855, number=16, assignees=[], labels=[], comment_hashes=[]),
421
+ },
372
422
  {"1854": snapshot(), "1900": snapshot(issue_id=1900, number=17)},
373
423
  )
374
424