git2py 0.0.5__tar.gz → 0.0.7__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.
- git2py-0.0.7/.github/workflows/ci.yml +30 -0
- {git2py-0.0.5 → git2py-0.0.7}/PKG-INFO +1 -1
- {git2py-0.0.5 → git2py-0.0.7}/pyproject.toml +1 -1
- git2py-0.0.5/.github/workflows/ci.yml +0 -256
- {git2py-0.0.5 → git2py-0.0.7}/.gitattributes +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/.gitignore +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/LICENSE +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/README.md +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/docsrc/.gitignore +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/docsrc/Makefile +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/docsrc/conf.py +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/docsrc/index.rst +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/docsrc/make.bat +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/git2py/__init__.py +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/git2py/gitlab_utils.py +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/git2py/migration.py +0 -0
- {git2py-0.0.5 → git2py-0.0.7}/tests/test_smoke.py +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# wads CI — calls the reusable workflow hosted in i2mint/wads.
|
|
2
|
+
#
|
|
3
|
+
# All configuration comes from this repo's pyproject.toml [tool.wads.ci.*].
|
|
4
|
+
# To customize the workflow itself (rare), replace this file with the
|
|
5
|
+
# full inline template `wads/data/github_ci_uv.yml` from i2mint/wads.
|
|
6
|
+
#
|
|
7
|
+
# Pinning: `@master` floats with wads. If you need version stability for
|
|
8
|
+
# a release-sensitive repo, change `@master` to a wads tag (e.g. `@v0.1.81`).
|
|
9
|
+
# CI failure does not block a published release — it blocks the publish
|
|
10
|
+
# step itself — so floating master is generally safe.
|
|
11
|
+
#
|
|
12
|
+
# Permissions: GitHub validates that the caller grants AT LEAST the
|
|
13
|
+
# permissions any job in the called workflow requests — at workflow-parse
|
|
14
|
+
# time, not at run-time, even if the job would be skipped via `if:`.
|
|
15
|
+
# The reusable workflow needs:
|
|
16
|
+
# contents: write for the publish job's version-bump push-back
|
|
17
|
+
# pages: write for the github-pages publish (if enabled)
|
|
18
|
+
# id-token: write for the github-pages OIDC handshake (if enabled)
|
|
19
|
+
# Granting these in the stub keeps it working on any caller, including
|
|
20
|
+
# personal-account repos where id-token is not write-by-default.
|
|
21
|
+
name: Continuous Integration
|
|
22
|
+
on: [push, pull_request]
|
|
23
|
+
jobs:
|
|
24
|
+
ci:
|
|
25
|
+
uses: i2mint/wads/.github/workflows/uv-ci.yml@master
|
|
26
|
+
permissions:
|
|
27
|
+
contents: write
|
|
28
|
+
pages: write
|
|
29
|
+
id-token: write
|
|
30
|
+
secrets: inherit
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
name: Continuous Integration (uv)
|
|
2
|
-
# MIGRATION NOTE: Old CI uses pylint - new CI uses ruff for linting
|
|
3
|
-
on: [push, pull_request]
|
|
4
|
-
|
|
5
|
-
# Workflow-level env vars from [tool.wads.ci.env] in pyproject.toml.
|
|
6
|
-
# Populated by wads-migrate / wads init via template substitution.
|
|
7
|
-
# Includes PROJECT_NAME, literal defaults from env.defaults, and secret-
|
|
8
|
-
# backed vars from required_envvars / test_envvars / extra_envvars,
|
|
9
|
-
# rendered as `KEY: secrets.KEY || ''` so missing secrets don't fail parsing.
|
|
10
|
-
env:
|
|
11
|
-
PROJECT_NAME: git2py
|
|
12
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN || '' }}
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
# First job: Read configuration from pyproject.toml
|
|
16
|
-
setup:
|
|
17
|
-
name: Read Configuration
|
|
18
|
-
runs-on: ubuntu-latest
|
|
19
|
-
outputs:
|
|
20
|
-
project-name: ${{ steps.config.outputs.project-name }}
|
|
21
|
-
python-versions: ${{ steps.config.outputs.python-versions }}
|
|
22
|
-
pytest-args: ${{ steps.config.outputs.pytest-args }}
|
|
23
|
-
coverage-enabled: ${{ steps.config.outputs.coverage-enabled }}
|
|
24
|
-
exclude-paths: ${{ steps.config.outputs.exclude-paths }}
|
|
25
|
-
test-on-windows: ${{ steps.config.outputs.test-on-windows }}
|
|
26
|
-
tests-enabled: ${{ steps.config.outputs.tests-enabled }}
|
|
27
|
-
build-sdist: ${{ steps.config.outputs.build-sdist }}
|
|
28
|
-
build-wheel: ${{ steps.config.outputs.build-wheel }}
|
|
29
|
-
metrics-enabled: ${{ steps.config.outputs.metrics-enabled }}
|
|
30
|
-
metrics-config-path: ${{ steps.config.outputs.metrics-config-path }}
|
|
31
|
-
metrics-storage-branch: ${{ steps.config.outputs.metrics-storage-branch }}
|
|
32
|
-
metrics-python-version: ${{ steps.config.outputs.metrics-python-version }}
|
|
33
|
-
metrics-force-run: ${{ steps.config.outputs.metrics-force-run }}
|
|
34
|
-
ruff-enabled: ${{ steps.config.outputs.ruff-enabled }}
|
|
35
|
-
black-enabled: ${{ steps.config.outputs.black-enabled }}
|
|
36
|
-
mypy-enabled: ${{ steps.config.outputs.mypy-enabled }}
|
|
37
|
-
docs-enabled: ${{ steps.config.outputs.docs-enabled }}
|
|
38
|
-
publish-enabled: ${{ steps.config.outputs.publish-enabled }}
|
|
39
|
-
skip-ci-marker: ${{ steps.config.outputs.skip-ci-marker }}
|
|
40
|
-
publish-marker: ${{ steps.config.outputs.publish-marker }}
|
|
41
|
-
|
|
42
|
-
steps:
|
|
43
|
-
- uses: actions/checkout@v6
|
|
44
|
-
|
|
45
|
-
- name: Set up uv
|
|
46
|
-
uses: astral-sh/setup-uv@v7
|
|
47
|
-
|
|
48
|
-
- name: Set up Python
|
|
49
|
-
run: uv python install 3.11
|
|
50
|
-
|
|
51
|
-
- name: Read CI Config
|
|
52
|
-
id: config
|
|
53
|
-
uses: i2mint/wads/actions/read-ci-config@master
|
|
54
|
-
with:
|
|
55
|
-
pyproject-path: .
|
|
56
|
-
|
|
57
|
-
# Second job: Validation using the config
|
|
58
|
-
validation:
|
|
59
|
-
name: Validation
|
|
60
|
-
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
|
61
|
-
needs: setup
|
|
62
|
-
runs-on: ubuntu-latest
|
|
63
|
-
strategy:
|
|
64
|
-
matrix:
|
|
65
|
-
python-version: ${{ fromJson(needs.setup.outputs.python-versions) }}
|
|
66
|
-
|
|
67
|
-
steps:
|
|
68
|
-
- uses: actions/checkout@v6
|
|
69
|
-
|
|
70
|
-
- name: Set up uv
|
|
71
|
-
uses: astral-sh/setup-uv@v7
|
|
72
|
-
with:
|
|
73
|
-
enable-cache: true
|
|
74
|
-
|
|
75
|
-
- name: Set up Python ${{ matrix.python-version }}
|
|
76
|
-
uses: i2mint/wads/actions/setup-python-uv@master
|
|
77
|
-
with:
|
|
78
|
-
python-version: ${{ matrix.python-version }}
|
|
79
|
-
|
|
80
|
-
- name: Install System Dependencies
|
|
81
|
-
uses: i2mint/wads/actions/install-system-deps@master
|
|
82
|
-
with:
|
|
83
|
-
pyproject-path: .
|
|
84
|
-
|
|
85
|
-
- name: Install Dependencies
|
|
86
|
-
uses: i2mint/wads/actions/install-deps-uv@master
|
|
87
|
-
|
|
88
|
-
- name: Format Source Code
|
|
89
|
-
if: needs.setup.outputs.ruff-enabled != 'false'
|
|
90
|
-
run: uvx ruff format .
|
|
91
|
-
|
|
92
|
-
- name: Format Source Code (black)
|
|
93
|
-
if: needs.setup.outputs.black-enabled == 'true'
|
|
94
|
-
run: uvx black .
|
|
95
|
-
|
|
96
|
-
- name: Lint Validation
|
|
97
|
-
if: needs.setup.outputs.ruff-enabled != 'false'
|
|
98
|
-
run: uvx ruff check --output-format=github ${{ needs.setup.outputs.project-name }}
|
|
99
|
-
|
|
100
|
-
- name: Type Check (mypy)
|
|
101
|
-
if: needs.setup.outputs.mypy-enabled == 'true'
|
|
102
|
-
run: uvx mypy ${{ needs.setup.outputs.project-name }}
|
|
103
|
-
|
|
104
|
-
- name: Run Tests
|
|
105
|
-
if: needs.setup.outputs.tests-enabled != 'false'
|
|
106
|
-
uses: i2mint/wads/actions/run-tests-uv@master
|
|
107
|
-
with:
|
|
108
|
-
root-dir: ${{ needs.setup.outputs.project-name }}
|
|
109
|
-
pytest-args: ${{ needs.setup.outputs.pytest-args }}
|
|
110
|
-
exclude-paths: ${{ needs.setup.outputs.exclude-paths }}
|
|
111
|
-
coverage: ${{ needs.setup.outputs.coverage-enabled }}
|
|
112
|
-
|
|
113
|
-
- name: Track Code Metrics
|
|
114
|
-
if: needs.setup.outputs.metrics-enabled == 'true'
|
|
115
|
-
uses: i2mint/umpyre/actions/track-metrics@master
|
|
116
|
-
continue-on-error: true
|
|
117
|
-
with:
|
|
118
|
-
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
119
|
-
config-path: ${{ needs.setup.outputs.metrics-config-path }}
|
|
120
|
-
storage-branch: ${{ needs.setup.outputs.metrics-storage-branch }}
|
|
121
|
-
python-version: ${{ needs.setup.outputs.metrics-python-version }}
|
|
122
|
-
force-run: ${{ needs.setup.outputs.metrics-force-run }}
|
|
123
|
-
|
|
124
|
-
# Optional Windows testing (if enabled in config)
|
|
125
|
-
windows-validation:
|
|
126
|
-
name: Windows Tests
|
|
127
|
-
if: "!contains(github.event.head_commit.message, '[skip ci]') && needs.setup.outputs.test-on-windows == 'true' && needs.setup.outputs.tests-enabled != 'false'"
|
|
128
|
-
needs: setup
|
|
129
|
-
runs-on: windows-latest
|
|
130
|
-
continue-on-error: true
|
|
131
|
-
env:
|
|
132
|
-
# PEP 540 UTF-8 mode: avoid cp1252 UnicodeDecode/EncodeError when test
|
|
133
|
-
# code reads source files or scripts print non-ASCII characters.
|
|
134
|
-
PYTHONUTF8: "1"
|
|
135
|
-
PYTHONIOENCODING: "utf-8"
|
|
136
|
-
|
|
137
|
-
steps:
|
|
138
|
-
- uses: actions/checkout@v6
|
|
139
|
-
|
|
140
|
-
- name: Set up uv
|
|
141
|
-
uses: astral-sh/setup-uv@v7
|
|
142
|
-
with:
|
|
143
|
-
enable-cache: true
|
|
144
|
-
|
|
145
|
-
- name: Set up Python
|
|
146
|
-
uses: i2mint/wads/actions/setup-python-uv@master
|
|
147
|
-
with:
|
|
148
|
-
python-version: ${{ fromJson(needs.setup.outputs.python-versions)[0] }}
|
|
149
|
-
|
|
150
|
-
- name: Install System Dependencies
|
|
151
|
-
uses: i2mint/wads/actions/install-system-deps@master
|
|
152
|
-
with:
|
|
153
|
-
pyproject-path: .
|
|
154
|
-
|
|
155
|
-
- name: Install Dependencies
|
|
156
|
-
uses: i2mint/wads/actions/install-deps-uv@master
|
|
157
|
-
|
|
158
|
-
- name: Run Tests
|
|
159
|
-
uses: i2mint/wads/actions/run-tests-uv@master
|
|
160
|
-
with:
|
|
161
|
-
root-dir: ${{ needs.setup.outputs.project-name }}
|
|
162
|
-
pytest-args: ${{ needs.setup.outputs.pytest-args }}
|
|
163
|
-
exclude-paths: ${{ needs.setup.outputs.exclude-paths }}
|
|
164
|
-
|
|
165
|
-
# Publishing job
|
|
166
|
-
#
|
|
167
|
-
# Gated by [tool.wads.ci.publish] in pyproject.toml (read via the setup job):
|
|
168
|
-
# - skip-ci-marker : when publishing is enabled, a commit message containing
|
|
169
|
-
# this substring skips the publish job (default "[skip ci]").
|
|
170
|
-
# - publish-enabled : whether publishing runs at all (default true).
|
|
171
|
-
# - publish-marker : when publishing is disabled, a commit message containing
|
|
172
|
-
# this substring forces the publish job (default "[publish]").
|
|
173
|
-
# The publish-enabled check uses `== 'true'` (fail-closed): if an older wads
|
|
174
|
-
# without these outputs is installed by read-ci-config, publishing is skipped
|
|
175
|
-
# rather than run unintentionally.
|
|
176
|
-
publish:
|
|
177
|
-
name: Publish
|
|
178
|
-
permissions:
|
|
179
|
-
contents: write
|
|
180
|
-
if: "!contains(github.event.head_commit.message, needs.setup.outputs.skip-ci-marker) && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && (needs.setup.outputs.publish-enabled == 'true' || contains(github.event.head_commit.message, needs.setup.outputs.publish-marker))"
|
|
181
|
-
needs: [setup, validation]
|
|
182
|
-
runs-on: ubuntu-latest
|
|
183
|
-
|
|
184
|
-
steps:
|
|
185
|
-
- uses: actions/checkout@v6
|
|
186
|
-
with:
|
|
187
|
-
fetch-depth: 0
|
|
188
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
189
|
-
|
|
190
|
-
- name: Set up uv
|
|
191
|
-
uses: astral-sh/setup-uv@v7
|
|
192
|
-
|
|
193
|
-
- name: Set up Python
|
|
194
|
-
uses: i2mint/wads/actions/setup-python-uv@master
|
|
195
|
-
with:
|
|
196
|
-
python-version: ${{ fromJson(needs.setup.outputs.python-versions)[0] }}
|
|
197
|
-
create-venv: "false"
|
|
198
|
-
|
|
199
|
-
- name: Format Source Code
|
|
200
|
-
if: needs.setup.outputs.ruff-enabled != 'false'
|
|
201
|
-
run: uvx ruff format .
|
|
202
|
-
|
|
203
|
-
- name: Format Source Code (black)
|
|
204
|
-
if: needs.setup.outputs.black-enabled == 'true'
|
|
205
|
-
run: uvx black .
|
|
206
|
-
|
|
207
|
-
- name: Update Version Number
|
|
208
|
-
id: version
|
|
209
|
-
uses: i2mint/isee/actions/bump-version-number@master
|
|
210
|
-
|
|
211
|
-
- name: Build Distribution
|
|
212
|
-
uses: i2mint/wads/actions/build-dist-uv@master
|
|
213
|
-
with:
|
|
214
|
-
sdist: ${{ needs.setup.outputs.build-sdist }}
|
|
215
|
-
wheel: ${{ needs.setup.outputs.build-wheel }}
|
|
216
|
-
|
|
217
|
-
- name: Publish to PyPI
|
|
218
|
-
uses: i2mint/wads/actions/pypi-publish-uv@master
|
|
219
|
-
with:
|
|
220
|
-
pypi-token: ${{ secrets.PYPI_PASSWORD }}
|
|
221
|
-
|
|
222
|
-
- name: Force SSH for git remote
|
|
223
|
-
run: git remote set-url origin git@github.com:${{ github.repository }}.git
|
|
224
|
-
|
|
225
|
-
- name: Commit Changes
|
|
226
|
-
uses: i2mint/wads/actions/git-commit@master
|
|
227
|
-
with:
|
|
228
|
-
commit-message: "**CI** Formatted code + Updated version to ${{ env.VERSION }} [skip ci]"
|
|
229
|
-
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
230
|
-
push: true
|
|
231
|
-
|
|
232
|
-
- name: Tag Repository
|
|
233
|
-
uses: i2mint/wads/actions/git-tag@master
|
|
234
|
-
with:
|
|
235
|
-
tag: ${{ env.VERSION }}
|
|
236
|
-
message: "Release version ${{ env.VERSION }}"
|
|
237
|
-
push: true
|
|
238
|
-
|
|
239
|
-
# Optional GitHub Pages (skipped when [tool.wads.ci.docs].enabled = false)
|
|
240
|
-
# Depends on validation (not publish) so docs still publish when the publish
|
|
241
|
-
# job is disabled via [tool.wads.ci.publish].enabled = false.
|
|
242
|
-
github-pages:
|
|
243
|
-
name: Publish GitHub Pages
|
|
244
|
-
permissions:
|
|
245
|
-
contents: write
|
|
246
|
-
pages: write
|
|
247
|
-
id-token: write
|
|
248
|
-
if: "!contains(github.event.head_commit.message, '[skip ci]') && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && needs.setup.outputs.docs-enabled != 'false'"
|
|
249
|
-
needs: [setup, validation]
|
|
250
|
-
runs-on: ubuntu-latest
|
|
251
|
-
|
|
252
|
-
steps:
|
|
253
|
-
- uses: i2mint/epythet/actions/publish-github-pages@master
|
|
254
|
-
with:
|
|
255
|
-
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
256
|
-
ignore: "tests/,scrap/,examples/"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|