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.
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/codeql.yml +3 -3
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/scheduled_release.yml +1 -1
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/support_floor_update.yml +1 -1
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.pre-commit-config.yaml +3 -3
- {python_gitea-0.11.3 → python_gitea-0.11.5}/PKG-INFO +1 -1
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/cli.md +9 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/python-api.md +6 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/pyproject.toml +1 -1
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/watch/changes.py +25 -1
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/test_cli_contract.py +24 -6
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/test_cli_watch_list.py +66 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/watch/test_watch_changes.py +53 -3
- {python_gitea-0.11.3 → python_gitea-0.11.5}/uv.lock +304 -265
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.coderabbit.yaml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/pull_request_template.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/ci.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/documentation.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/draft_release.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/publish.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/publish_testpypi.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/release.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.github/workflows/semantic_pull_request.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.gitignore +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.markdownlint.yaml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.prettierrc +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.pypirc +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/.typos.toml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/CITATION.cff +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/CODE_OF_CONDUCT.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/CONTRIBUTING.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/LICENSE +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/README.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/SECURITY.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/SUPPORT.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/cliff.toml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/contributing.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/dev/architecture.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/dev/troubleshooting.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/gen_ref_pages.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/index.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/javascripts/mathjax.js +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/security.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/style/api.css +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/configuration.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/installation.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/docs/user-guide/quickstart.md +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/mkdocs.yml +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/renovate.json +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/scripts/release_version.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/__main__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/_lazy.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/actions.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/artifact.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_actions.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_artifact.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_run_management.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_runner.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_secret.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/async_variable.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/run_management.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/runner.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/scope.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/secret.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/actions/variable.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/download.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/artifact/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/logs.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/job/rerun.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/approve.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/cancel.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/force_cancel.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/jobs.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/run/rerun.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/registration_token.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/state.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/runner/update.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/secret/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/secret/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/secret/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/secret/set.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/variable/update.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/workflow/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/workflow/dispatch.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/workflow/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/actions/workflow/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/add.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/edit.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/comment/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/add.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/config/update.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/close.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/add.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/dependency/remove.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/edit.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/issue/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/label/update.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/milestone/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/milestone/create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/milestone/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/milestone/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/notification/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/notification/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/notification/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/notification/read.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/organization/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/organization/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/organization/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/output.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/column/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/column/create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/column/issues.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/column/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/edit.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issue/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issue/add.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issue/move.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issue/remove.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/issues.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/project/show.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/pull_request/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/pull_request/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/pull_request/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/repository/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/repository/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/repository/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/user/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/user/get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/user/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/user/update_settings.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/api.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/auth.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/convert.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/errors.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/issue.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/utils/options.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/advance.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/cli/watch/scopes.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/client/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/client/async_gitea.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/client/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/client/gitea.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/comment/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/comment/async_comment.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/comment/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/comment/comment.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/config/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/config/manager.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/config/model.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/async_issue.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/issue.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/issue/project_column.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/label/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/label/async_label.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/label/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/label/label.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/milestone/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/milestone/async_milestone.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/milestone/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/milestone/milestone.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/notification/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/notification/async_notification.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/notification/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/notification/notification.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/organization/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/organization/async_organization.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/organization/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/organization/organization.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/project/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/project/async_project.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/project/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/project/project.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/pull_request/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/pull_request/async_pull_request.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/pull_request/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/pull_request/pull_request.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/repository/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/repository/async_repository.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/repository/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/repository/repository.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/resource/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/resource/async_resource.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/resource/protocol.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/resource/resource.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/user/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/user/async_user.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/user/base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/user/user.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/fields.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/log.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/pagination.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/utils/response.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/version.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/watch/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/src/gitea/watch/state.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/test_actions_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/test_actions_imports.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/test_actions_requests.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/actions/test_actions_scope.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/board.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/invoking.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_artifact.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_job_get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_job_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_job_logs.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_run_get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_run_jobs.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_run_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_run_management.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_runner.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_secret.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_variable.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_workflow_dispatch.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_workflow_get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/actions/test_cli_actions_workflow_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_add.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_edit.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/comment/test_cli_comment_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_add.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/config/test_cli_config_update.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/envelope.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/dependency/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/dependency/test_cli_issue_dependency.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_close.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_comment.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_edit.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/issue/test_cli_issue_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_delete.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/label/test_cli_label_update.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/milestone/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/milestone/test_cli_milestone_create.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/milestone/test_cli_milestone_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/milestone/test_cli_milestone_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/notification/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/notification/test_cli_notification.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/organization/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/organization/test_cli_organization_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/organization/test_cli_organization_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/project/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/project/test_cli_project.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/project/test_cli_project_column_issues.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/project/test_cli_project_show.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/pull_request/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/pull_request/test_cli_pull_request_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/pull_request/test_cli_pull_request_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/rendering.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/repository/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/repository/test_cli_repository_list.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/repository/test_cli_repository_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/test_cli_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/test_cli_output.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/tree.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/user/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/user/test_cli_user_get.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/user/test_cli_user_update_settings.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_api.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_auth.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_convert.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_errors.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_issue.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/utils/test_cli_utils_options.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/support.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/test_cli_watch_advance.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/cli/watch/test_cli_watch_scopes.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/client/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/client/test_client_async_gitea.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/client/test_client_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/client/test_client_gitea.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/comment/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/comment/test_comment_async_comment.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/comment/test_comment_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/comment/test_comment_comment.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/config/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/config/test_config_manager.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/config/test_config_model.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/conftest.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_async_issue.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_async_project_column.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_dependencies.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_issue.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/issue/test_issue_project_column.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/label/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/label/test_label_async_label.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/label/test_label_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/label/test_label_label.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/milestone/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/milestone/test_milestone_async_milestone.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/milestone/test_milestone_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/milestone/test_milestone_milestone.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/notification/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/notification/test_notification_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/notification/test_notification_notification.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/organization/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/organization/test_organization_async_organization.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/organization/test_organization_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/organization/test_organization_organization.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/project/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/project/test_project_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/project/test_project_project.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/project/test_project_requests.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/pull_request/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/pull_request/test_pull_request_async_pull_request.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/pull_request/test_pull_request_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/pull_request/test_pull_request_pull_request.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/repository/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/repository/test_repository_async_repository.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/repository/test_repository_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/repository/test_repository_repository.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/resource/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/resource/test_resource_async_resource.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/resource/test_resource_resource.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/smoke_test.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_import.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_lazy_reexports.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_main.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_release_version.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/test_version.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/transport.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/user/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/user/test_user_async_user.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/user/test_user_base.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/user/test_user_user.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/__init__.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/test_utils_fields.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/test_utils_log.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/test_utils_pagination.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/utils/test_utils_response.py +0 -0
- {python_gitea-0.11.3 → python_gitea-0.11.5}/tests/watch/__init__.py +0 -0
- {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@
|
|
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@
|
|
31
|
+
uses: github/codeql-action/autobuild@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
|
|
32
32
|
|
|
33
33
|
- name: Perform CodeQL Analysis
|
|
34
|
-
uses: github/codeql-action/analyze@
|
|
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@
|
|
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@
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
+
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.
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
646
|
-
|
|
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 = {
|
|
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
|
-
{
|
|
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
|
|