python-gitea 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. python_gitea-0.2.0/.github/dependabot.yml +20 -0
  2. python_gitea-0.2.0/.github/workflows/CI.yml +62 -0
  3. python_gitea-0.2.0/.github/workflows/create_tag.yml +139 -0
  4. python_gitea-0.2.0/.github/workflows/documentation.yml +41 -0
  5. python_gitea-0.2.0/.github/workflows/draft_release.yml +50 -0
  6. python_gitea-0.2.0/.github/workflows/publish.yml +82 -0
  7. python_gitea-0.2.0/.github/workflows/publish_testpypi.yml +95 -0
  8. python_gitea-0.2.0/.github/workflows/release.yml +53 -0
  9. python_gitea-0.2.0/.gitignore +136 -0
  10. python_gitea-0.2.0/.ignore_words.txt +72 -0
  11. python_gitea-0.2.0/.markdownlint.yaml +44 -0
  12. python_gitea-0.2.0/.pre-commit-config.yaml +146 -0
  13. python_gitea-0.2.0/.pypirc +10 -0
  14. python_gitea-0.2.0/CITATION.cff +12 -0
  15. python_gitea-0.2.0/CODE_OF_CONDUCT.md +132 -0
  16. python_gitea-0.2.0/CONTRIBUTING.md +176 -0
  17. python_gitea-0.2.0/LICENSE +21 -0
  18. python_gitea-0.2.0/PKG-INFO +185 -0
  19. python_gitea-0.2.0/README.md +131 -0
  20. python_gitea-0.2.0/SECURITY.md +53 -0
  21. python_gitea-0.2.0/SUPPORT.md +34 -0
  22. python_gitea-0.2.0/cliff.toml +126 -0
  23. python_gitea-0.2.0/commitlint.config.js +30 -0
  24. python_gitea-0.2.0/cspell.json +30 -0
  25. python_gitea-0.2.0/docs/dev/troubleshooting.md +300 -0
  26. python_gitea-0.2.0/docs/gen_ref_pages.py +95 -0
  27. python_gitea-0.2.0/docs/index.md +10 -0
  28. python_gitea-0.2.0/docs/javascripts/mathjax.js +12 -0
  29. python_gitea-0.2.0/docs/style/api.css +18 -0
  30. python_gitea-0.2.0/docs/user_guide/installation.md +122 -0
  31. python_gitea-0.2.0/mkdocs.yml +116 -0
  32. python_gitea-0.2.0/package.json +6 -0
  33. python_gitea-0.2.0/pyproject.toml +193 -0
  34. python_gitea-0.2.0/src/gitea/__init__.py +9 -0
  35. python_gitea-0.2.0/src/gitea/__main__.py +8 -0
  36. python_gitea-0.2.0/src/gitea/cli/__init__.py +0 -0
  37. python_gitea-0.2.0/src/gitea/cli/main.py +124 -0
  38. python_gitea-0.2.0/src/gitea/cli/user/__init__.py +0 -0
  39. python_gitea-0.2.0/src/gitea/cli/user/delete_user_level_runner.py +38 -0
  40. python_gitea-0.2.0/src/gitea/cli/user/get_registration_token.py +31 -0
  41. python_gitea-0.2.0/src/gitea/cli/user/get_user.py +39 -0
  42. python_gitea-0.2.0/src/gitea/cli/user/get_user_level_runners.py +34 -0
  43. python_gitea-0.2.0/src/gitea/cli/user/get_workflow_jobs.py +47 -0
  44. python_gitea-0.2.0/src/gitea/cli/user/get_workflow_runs.py +64 -0
  45. python_gitea-0.2.0/src/gitea/cli/user/main.py +34 -0
  46. python_gitea-0.2.0/src/gitea/cli/utils.py +45 -0
  47. python_gitea-0.2.0/src/gitea/client/__init__.py +8 -0
  48. python_gitea-0.2.0/src/gitea/client/async_gitea.py +100 -0
  49. python_gitea-0.2.0/src/gitea/client/base.py +42 -0
  50. python_gitea-0.2.0/src/gitea/client/gitea.py +88 -0
  51. python_gitea-0.2.0/src/gitea/resource/__init__.py +0 -0
  52. python_gitea-0.2.0/src/gitea/resource/async_resource.py +81 -0
  53. python_gitea-0.2.0/src/gitea/resource/resource.py +82 -0
  54. python_gitea-0.2.0/src/gitea/user/__init__.py +0 -0
  55. python_gitea-0.2.0/src/gitea/user/async_user.py +125 -0
  56. python_gitea-0.2.0/src/gitea/user/base.py +109 -0
  57. python_gitea-0.2.0/src/gitea/user/user.py +109 -0
  58. python_gitea-0.2.0/src/gitea/utils/__init__.py +7 -0
  59. python_gitea-0.2.0/src/gitea/utils/log.py +69 -0
  60. python_gitea-0.2.0/src/gitea/utils/response.py +57 -0
  61. python_gitea-0.2.0/src/gitea/version.py +13 -0
  62. python_gitea-0.2.0/tests/__init__.py +0 -0
  63. python_gitea-0.2.0/tests/cli/__init__.py +0 -0
  64. python_gitea-0.2.0/tests/cli/test_cli_main.py +100 -0
  65. python_gitea-0.2.0/tests/cli/test_cli_utils.py +69 -0
  66. python_gitea-0.2.0/tests/cli/user/__init__.py +0 -0
  67. python_gitea-0.2.0/tests/cli/user/test_cli_user_delete_user_level_runner.py +75 -0
  68. python_gitea-0.2.0/tests/cli/user/test_cli_user_get_registration_token.py +75 -0
  69. python_gitea-0.2.0/tests/cli/user/test_cli_user_get_user.py +100 -0
  70. python_gitea-0.2.0/tests/cli/user/test_cli_user_get_user_level_runners.py +100 -0
  71. python_gitea-0.2.0/tests/cli/user/test_cli_user_get_workflow_jobs.py +102 -0
  72. python_gitea-0.2.0/tests/cli/user/test_cli_user_get_workflow_runs.py +123 -0
  73. python_gitea-0.2.0/tests/cli/user/test_cli_user_main.py +52 -0
  74. python_gitea-0.2.0/tests/client/__init__.py +0 -0
  75. python_gitea-0.2.0/tests/client/test_client_async_gitea.py +153 -0
  76. python_gitea-0.2.0/tests/client/test_client_base.py +49 -0
  77. python_gitea-0.2.0/tests/client/test_client_gitea.py +97 -0
  78. python_gitea-0.2.0/tests/conftest.py +17 -0
  79. python_gitea-0.2.0/tests/resource/__init__.py +0 -0
  80. python_gitea-0.2.0/tests/resource/test_resource_async_resource.py +79 -0
  81. python_gitea-0.2.0/tests/resource/test_resource_resource.py +74 -0
  82. python_gitea-0.2.0/tests/test_import.py +33 -0
  83. python_gitea-0.2.0/tests/test_main.py +25 -0
  84. python_gitea-0.2.0/tests/test_version.py +38 -0
  85. python_gitea-0.2.0/tests/user/__init__.py +0 -0
  86. python_gitea-0.2.0/tests/user/test_user_async_user.py +63 -0
  87. python_gitea-0.2.0/tests/user/test_user_base.py +49 -0
  88. python_gitea-0.2.0/tests/user/test_user_user.py +60 -0
  89. python_gitea-0.2.0/tests/utils/__init__.py +0 -0
  90. python_gitea-0.2.0/tests/utils/test_utils_log.py +105 -0
  91. python_gitea-0.2.0/tests/utils/test_utils_response.py +107 -0
@@ -0,0 +1,20 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: "13:00"
8
+ open-pull-requests-limit: 10
9
+ allow:
10
+ - dependency-type: direct
11
+ - dependency-type: indirect
12
+ commit-message:
13
+ prefix: "chore(deps): "
14
+ - package-ecosystem: "github-actions"
15
+ directory: "/"
16
+ schedule:
17
+ interval: daily
18
+ time: "13:00"
19
+ commit-message:
20
+ prefix: "chore(deps): "
@@ -0,0 +1,62 @@
1
+ name: CI
2
+ on:
3
+ push:
4
+ branches: [main]
5
+ pull_request:
6
+ branches: [main]
7
+ workflow_dispatch:
8
+ workflow_call:
9
+
10
+ jobs:
11
+ test:
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12"]
16
+ steps:
17
+ - uses: actions/checkout@v6
18
+
19
+ - name: Set up Python ${{ matrix.python-version }}
20
+ uses: actions/setup-python@v6
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+
24
+ - name: Cache pip dependencies
25
+ uses: actions/cache@v5
26
+ with:
27
+ path: ~/.cache/pip
28
+ key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('**/pyproject.toml') }}
29
+ restore-keys: |
30
+ ${{ runner.os }}-pip-${{ matrix.python-version }}-
31
+ ${{ runner.os }}-pip-
32
+
33
+ - name: Install dependencies
34
+ run: |
35
+ python -m pip install --upgrade pip
36
+ pip install -e ".[dev,docs,test]"
37
+
38
+ - name: Run tests with pytest
39
+ run: pytest
40
+
41
+ - name: Upload coverage to Codecov
42
+ uses: codecov/codecov-action@v5
43
+
44
+ codeql:
45
+ if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' || (github.event_name == 'workflow_call') }}
46
+ name: codeql
47
+ runs-on: ubuntu-latest
48
+ permissions:
49
+ security-events: write
50
+ steps:
51
+ - uses: actions/checkout@v6
52
+
53
+ - name: Initialize CodeQL
54
+ uses: github/codeql-action/init@v4
55
+ with:
56
+ languages: python
57
+
58
+ - name: Autobuild
59
+ uses: github/codeql-action/autobuild@v4
60
+
61
+ - name: Perform CodeQL Analysis
62
+ uses: github/codeql-action/analyze@v4
@@ -0,0 +1,139 @@
1
+ name: Create Tag
2
+
3
+ on:
4
+ schedule:
5
+ - cron: "0 0 * * 2"
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ ci:
13
+ uses: ./.github/workflows/CI.yml
14
+ permissions:
15
+ security-events: write
16
+
17
+ create_tag:
18
+ needs: ci
19
+ runs-on: ubuntu-latest
20
+ outputs:
21
+ new_tag: ${{ steps.tag_version.outputs.new_tag }}
22
+ has_new_commits: ${{ steps.check_commits.outputs.has_new_commits }}
23
+ steps:
24
+ - uses: actions/checkout@v6
25
+ with:
26
+ fetch-depth: 0
27
+
28
+ - name: Check for new commits
29
+ id: check_commits
30
+ run: |
31
+ LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
32
+ if [ -z "$LAST_TAG" ]; then
33
+ echo "has_new_commits=true" >> $GITHUB_OUTPUT
34
+ else
35
+ COMMITS_SINCE=$(git rev-list ${LAST_TAG}..HEAD --count)
36
+ if [ "$COMMITS_SINCE" -gt 0 ]; then
37
+ echo "has_new_commits=true" >> $GITHUB_OUTPUT
38
+ else
39
+ echo "has_new_commits=false" >> $GITHUB_OUTPUT
40
+ fi
41
+ fi
42
+
43
+ - name: Bump version and push tag
44
+ if: steps.check_commits.outputs.has_new_commits == 'true'
45
+ id: tag_version
46
+ uses: mathieudutour/github-tag-action@v6.2
47
+ with:
48
+ github_token: ${{ secrets.GITHUB_TOKEN }}
49
+ release_branches: main
50
+ default_bump: patch
51
+ tag_prefix: v
52
+
53
+ - name: Output tag information
54
+ if: steps.check_commits.outputs.has_new_commits == 'true'
55
+ run: |
56
+ echo "### Tag Created :rocket:" >> $GITHUB_STEP_SUMMARY
57
+ echo "- **New tag**: ${{ steps.tag_version.outputs.new_tag }}" >> $GITHUB_STEP_SUMMARY
58
+ echo "- **Previous tag**: ${{ steps.tag_version.outputs.previous_tag }}" >> $GITHUB_STEP_SUMMARY
59
+ echo "- **Changelog**: ${{ steps.tag_version.outputs.changelog }}" >> $GITHUB_STEP_SUMMARY
60
+
61
+ release:
62
+ needs: create_tag
63
+ if: needs.create_tag.outputs.has_new_commits == 'true'
64
+ uses: ./.github/workflows/release.yml
65
+ permissions:
66
+ contents: write
67
+ id-token: write
68
+ with:
69
+ tag_name: ${{ needs.create_tag.outputs.new_tag }}
70
+
71
+ build:
72
+ needs:
73
+ - create_tag
74
+ - release
75
+ if: needs.create_tag.outputs.has_new_commits == 'true'
76
+ runs-on: ubuntu-latest
77
+ steps:
78
+ - uses: actions/checkout@v6
79
+ with:
80
+ ref: ${{ needs.create_tag.outputs.new_tag }}
81
+ fetch-depth: 0
82
+
83
+ - name: Output build information
84
+ run: |
85
+ echo "### Publishing Build :package:" >> $GITHUB_STEP_SUMMARY
86
+ echo "- **Version tag**: ${{ needs.create_tag.outputs.new_tag }}" >> $GITHUB_STEP_SUMMARY
87
+
88
+ - name: Set up Python
89
+ uses: actions/setup-python@v6
90
+ with:
91
+ python-version: "3.10"
92
+
93
+ - name: Cache pip dependencies
94
+ uses: actions/cache@v5
95
+ with:
96
+ path: ~/.cache/pip
97
+ key: ${{ runner.os }}-pip-3.10-${{ hashFiles('**/pyproject.toml') }}
98
+ restore-keys: |
99
+ ${{ runner.os }}-pip-3.10-
100
+ ${{ runner.os }}-pip-
101
+
102
+ - name: Install build dependencies
103
+ run: |
104
+ python -m pip install --upgrade pip
105
+ pip install build
106
+
107
+ - name: Build distribution
108
+ run: python -m build
109
+
110
+ - name: Upload build artifacts
111
+ uses: actions/upload-artifact@v6
112
+ with:
113
+ name: python-package-distributions
114
+ path: dist/
115
+
116
+ publish-to-pypi:
117
+ needs: build
118
+ runs-on: ubuntu-latest
119
+ environment: pypi
120
+ permissions:
121
+ id-token: write
122
+ attestations: write
123
+
124
+ steps:
125
+ - name: Download build artifacts
126
+ uses: actions/download-artifact@v7
127
+ with:
128
+ name: python-package-distributions
129
+ path: dist/
130
+
131
+ - name: Generate attestation
132
+ uses: actions/attest-build-provenance@v3
133
+ with:
134
+ subject-path: dist/*
135
+
136
+ - name: Publish to PyPI
137
+ uses: pypa/gh-action-pypi-publish@v1.13.0
138
+ with:
139
+ packages-dir: dist/
@@ -0,0 +1,41 @@
1
+ name: Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+ pages: write
11
+ id-token: write
12
+
13
+ concurrency:
14
+ group: pages
15
+ cancel-in-progress: false
16
+
17
+ jobs:
18
+ deploy:
19
+ runs-on: ubuntu-latest
20
+ environment:
21
+ name: github-pages
22
+ url: ${{ steps.deployment.outputs.page_url }}
23
+ steps:
24
+ - uses: actions/checkout@v6
25
+ - uses: actions/setup-python@v6
26
+ with:
27
+ python-version: 3.x
28
+ - uses: actions/cache@v5
29
+ with:
30
+ path: ~/.cache/pip
31
+ key: ${{ runner.os }}-pip-docs-${{ hashFiles('**/pyproject.toml') }}
32
+ restore-keys: |
33
+ ${{ runner.os }}-pip-docs-
34
+ ${{ runner.os }}-pip-
35
+ - run: pip install -e ".[docs]"
36
+ - run: mkdocs build --site-dir site
37
+ - uses: actions/upload-pages-artifact@v4
38
+ with:
39
+ path: site
40
+ - id: deployment
41
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,50 @@
1
+ name: Draft Release
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ permissions:
8
+ contents: write
9
+ pull-requests: read
10
+
11
+ concurrency:
12
+ group: draft-release
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ draft-release:
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v6
20
+ with:
21
+ fetch-depth: 0
22
+
23
+ - name: Generate changelog
24
+ id: changelog
25
+ uses: orhun/git-cliff-action@v4.7.0
26
+ with:
27
+ config: cliff.toml
28
+ args: --unreleased --verbose
29
+ env:
30
+ OUTPUT: CHANGELOG.md
31
+
32
+ - name: Delete existing draft release
33
+ continue-on-error: true
34
+ run: |
35
+ gh release delete next-release --yes
36
+ env:
37
+ GH_TOKEN: ${{ github.token }}
38
+
39
+ - name: Create or Update Draft Release
40
+ uses: softprops/action-gh-release@v2
41
+ with:
42
+ tag_name: next-release
43
+ name: "Next Release (Draft)"
44
+ body: |
45
+ ${{ steps.changelog.outputs.content }}
46
+
47
+ ---
48
+ *This is an automatically generated draft release.*
49
+ draft: true
50
+ prerelease: false
@@ -0,0 +1,82 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ tag_name:
7
+ description: "Tag name for the publish (e.g., v1.2.3)"
8
+ required: true
9
+ type: string
10
+ workflow_call:
11
+ inputs:
12
+ tag_name:
13
+ description: "Tag name for the publish (e.g., v1.2.3)"
14
+ required: true
15
+ type: string
16
+
17
+ jobs:
18
+ build:
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v6
22
+ with:
23
+ ref: ${{ inputs.tag_name || github.event.inputs.tag_name }}
24
+ fetch-depth: 0
25
+
26
+ - name: Output build information
27
+ run: |
28
+ echo "### Publishing Build :package:" >> $GITHUB_STEP_SUMMARY
29
+ echo "- **Version tag**: ${{ inputs.tag_name || github.event.inputs.tag_name }}" >> $GITHUB_STEP_SUMMARY
30
+
31
+ - name: Set up Python
32
+ uses: actions/setup-python@v6
33
+ with:
34
+ python-version: "3.10"
35
+
36
+ - name: Cache pip dependencies
37
+ uses: actions/cache@v5
38
+ with:
39
+ path: ~/.cache/pip
40
+ key: ${{ runner.os }}-pip-3.10-${{ hashFiles('**/pyproject.toml') }}
41
+ restore-keys: |
42
+ ${{ runner.os }}-pip-3.10-
43
+ ${{ runner.os }}-pip-
44
+
45
+ - name: Install build dependencies
46
+ run: |
47
+ python -m pip install --upgrade pip
48
+ pip install build
49
+
50
+ - name: Build distribution
51
+ run: python -m build
52
+
53
+ - name: Upload build artifacts
54
+ uses: actions/upload-artifact@v6
55
+ with:
56
+ name: python-package-distributions
57
+ path: dist/
58
+
59
+ publish-to-pypi:
60
+ needs: build
61
+ runs-on: ubuntu-latest
62
+ environment: pypi
63
+ permissions:
64
+ id-token: write
65
+ attestations: write
66
+
67
+ steps:
68
+ - name: Download build artifacts
69
+ uses: actions/download-artifact@v7
70
+ with:
71
+ name: python-package-distributions
72
+ path: dist/
73
+
74
+ - name: Generate attestation
75
+ uses: actions/attest-build-provenance@v3
76
+ with:
77
+ subject-path: dist/*
78
+
79
+ - name: Publish to PyPI
80
+ uses: pypa/gh-action-pypi-publish@v1.13.0
81
+ with:
82
+ packages-dir: dist/
@@ -0,0 +1,95 @@
1
+ name: Publish to TestPyPI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ workflow_dispatch:
8
+ inputs:
9
+ tag_name:
10
+ description: "Tag name for the publish (e.g., v1.2.3)"
11
+ required: false
12
+ type: string
13
+ workflow_call:
14
+ inputs:
15
+ tag_name:
16
+ description: "Tag name for the publish (e.g., v1.2.3)"
17
+ required: false
18
+ type: string
19
+
20
+ jobs:
21
+ build:
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - uses: actions/checkout@v6
25
+ with:
26
+ ref: ${{ inputs.tag_name || github.sha }}
27
+ fetch-depth: 0
28
+
29
+ - name: Output build information
30
+ run: |
31
+ echo "### Publishing Build :package:" >> $GITHUB_STEP_SUMMARY
32
+ echo "- **Version tag**: ${{ inputs.tag_name || github.sha }}" >> $GITHUB_STEP_SUMMARY
33
+
34
+ - name: Set up Python
35
+ uses: actions/setup-python@v6
36
+ with:
37
+ python-version: "3.10"
38
+
39
+ - name: Cache pip dependencies
40
+ uses: actions/cache@v5
41
+ with:
42
+ path: ~/.cache/pip
43
+ key: ${{ runner.os }}-pip-3.10-${{ hashFiles('**/pyproject.toml') }}
44
+ restore-keys: |
45
+ ${{ runner.os }}-pip-3.10-
46
+ ${{ runner.os }}-pip-
47
+
48
+ - name: Install build dependencies
49
+ run: |
50
+ python -m pip install --upgrade pip
51
+ pip install build hatch
52
+
53
+ - name: Set version for publishing
54
+ run: |
55
+ if [ -n "${{ inputs.tag_name }}" ]; then
56
+ # Use the tag, stripping 'v' prefix if present
57
+ VERSION=$(echo "${{ inputs.tag_name }}" | sed 's/^v//')
58
+ else
59
+ # For untagged builds, use a dev version without local part
60
+ # Get the dev version from hatch-vcs, then strip +local
61
+ VERSION=$(hatch version | sed 's/+.*//')
62
+ fi
63
+
64
+ # Update pyproject.toml with sed
65
+ sed -i "s/dynamic = \[\"version\"\]/version = \"$VERSION\"\ndynamic = []/" pyproject.toml
66
+
67
+ - name: Build distribution
68
+ run: python -m build
69
+
70
+ - name: Upload build artifacts
71
+ uses: actions/upload-artifact@v6
72
+ with:
73
+ name: python-package-distributions
74
+ path: dist/
75
+
76
+ publish-to-testpypi:
77
+ needs: build
78
+ runs-on: ubuntu-latest
79
+ environment: testpypi
80
+ permissions:
81
+ id-token: write
82
+
83
+ steps:
84
+ - name: Download build artifacts
85
+ uses: actions/download-artifact@v7
86
+ with:
87
+ name: python-package-distributions
88
+ path: dist/
89
+
90
+ - name: Publish to TestPyPI
91
+ uses: pypa/gh-action-pypi-publish@v1.13.0
92
+ with:
93
+ repository-url: https://test.pypi.org/legacy/
94
+ packages-dir: dist/
95
+ verbose: true
@@ -0,0 +1,53 @@
1
+ name: Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ tag_name:
7
+ description: "Tag name for the release (e.g., v1.2.3)"
8
+ required: true
9
+ type: string
10
+ workflow_call:
11
+ inputs:
12
+ tag_name:
13
+ description: "Tag name for the release (e.g., v1.2.3)"
14
+ required: true
15
+ type: string
16
+
17
+ permissions:
18
+ contents: write
19
+
20
+ jobs:
21
+ release:
22
+ runs-on: ubuntu-latest
23
+ permissions:
24
+ contents: write
25
+ steps:
26
+ - uses: actions/checkout@v6
27
+ with:
28
+ fetch-depth: 0
29
+ ref: ${{ inputs.tag_name || github.event.inputs.tag_name }}
30
+
31
+ - name: Generate changelog
32
+ id: changelog
33
+ uses: orhun/git-cliff-action@v4.7.0
34
+ with:
35
+ config: cliff.toml
36
+ args: --current --verbose
37
+ env:
38
+ OUTPUT: CHANGELOG.md
39
+
40
+ - name: Delete draft release
41
+ continue-on-error: true
42
+ run: |
43
+ gh release delete next-release --yes
44
+ env:
45
+ GH_TOKEN: ${{ github.token }}
46
+
47
+ - name: Create Release
48
+ uses: softprops/action-gh-release@v2
49
+ with:
50
+ tag_name: ${{ inputs.tag_name || github.event.inputs.tag_name }}
51
+ body: ${{ steps.changelog.outputs.content }}
52
+ draft: false
53
+ prerelease: ${{ contains(inputs.tag_name || github.event.inputs.tag_name, 'alpha') || contains(inputs.tag_name || github.event.inputs.tag_name, 'beta') }}
@@ -0,0 +1,136 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ #Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__/
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ *.sage.py
103
+
104
+ # Environments
105
+ .env
106
+ .venv
107
+ env/
108
+ venv/
109
+ ENV/
110
+ env.bak/
111
+ venv.bak/
112
+
113
+ # Spyder project settings
114
+ .spyderproject
115
+ .spyproject
116
+
117
+ # Rope project settings
118
+ .ropeproject
119
+
120
+ # mkdocs documentation
121
+ /site
122
+
123
+ # mypy
124
+ .mypy_cache/
125
+ .dmypy.json
126
+ dmypy.json
127
+
128
+ # Pyre type checker
129
+ .pyre/
130
+
131
+ # Mac metadata files
132
+ .DS_Store
133
+
134
+ # Node.js
135
+ node_modules/
136
+ package-lock.json