gitoxide 0.1.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.
- gitoxide-0.1.0/.github/dependabot.yml +37 -0
- gitoxide-0.1.0/.github/workflows/CI.yml +68 -0
- gitoxide-0.1.0/.github/workflows/publish.yml +107 -0
- gitoxide-0.1.0/.github/workflows/release-drafter.yml +16 -0
- gitoxide-0.1.0/.gitignore +16 -0
- gitoxide-0.1.0/Cargo.lock +1473 -0
- gitoxide-0.1.0/Cargo.toml +34 -0
- gitoxide-0.1.0/LICENSE-APACHE +202 -0
- gitoxide-0.1.0/LICENSE-MIT +21 -0
- gitoxide-0.1.0/PKG-INFO +205 -0
- gitoxide-0.1.0/README.md +175 -0
- gitoxide-0.1.0/build.rs +37 -0
- gitoxide-0.1.0/pyproject.toml +43 -0
- gitoxide-0.1.0/python/gitoxide/__init__.py +50 -0
- gitoxide-0.1.0/python/gitoxide/_gitoxide.pyi +72 -0
- gitoxide-0.1.0/python/gitoxide/py.typed +0 -0
- gitoxide-0.1.0/src/lib.rs +421 -0
- gitoxide-0.1.0/tests/conftest.py +44 -0
- gitoxide-0.1.0/tests/test_repository.py +123 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: cargo
|
|
4
|
+
directory: /
|
|
5
|
+
schedule:
|
|
6
|
+
interval: weekly
|
|
7
|
+
groups:
|
|
8
|
+
rust-deps:
|
|
9
|
+
patterns:
|
|
10
|
+
- "*"
|
|
11
|
+
commit-message:
|
|
12
|
+
prefix: chore
|
|
13
|
+
include: scope
|
|
14
|
+
|
|
15
|
+
- package-ecosystem: github-actions
|
|
16
|
+
directory: /
|
|
17
|
+
schedule:
|
|
18
|
+
interval: weekly
|
|
19
|
+
groups:
|
|
20
|
+
actions-deps:
|
|
21
|
+
patterns:
|
|
22
|
+
- "*"
|
|
23
|
+
commit-message:
|
|
24
|
+
prefix: chore
|
|
25
|
+
include: scope
|
|
26
|
+
|
|
27
|
+
- package-ecosystem: pip
|
|
28
|
+
directory: /
|
|
29
|
+
schedule:
|
|
30
|
+
interval: weekly
|
|
31
|
+
groups:
|
|
32
|
+
python-deps:
|
|
33
|
+
patterns:
|
|
34
|
+
- "*"
|
|
35
|
+
commit-message:
|
|
36
|
+
prefix: chore
|
|
37
|
+
include: scope
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, master]
|
|
6
|
+
pull_request:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
name: Test (${{ matrix.os }}, py${{ matrix.python-version }})
|
|
15
|
+
runs-on: ${{ matrix.os }}
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
20
|
+
python-version: ["3.9", "3.12", "3.14"]
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
23
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
24
|
+
with:
|
|
25
|
+
python-version: ${{ matrix.python-version }}
|
|
26
|
+
- uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable
|
|
27
|
+
- name: Install test deps
|
|
28
|
+
run: pip install pytest
|
|
29
|
+
- name: Build & install the extension
|
|
30
|
+
# Build via PEP 517 (maturin backend, release profile by default) and
|
|
31
|
+
# install into the runner's Python. Unlike `maturin develop`, this
|
|
32
|
+
# needs no pre-existing virtualenv.
|
|
33
|
+
run: pip install .
|
|
34
|
+
- name: Run tests
|
|
35
|
+
run: pytest -q
|
|
36
|
+
|
|
37
|
+
lint:
|
|
38
|
+
name: Rust lint (fmt + clippy)
|
|
39
|
+
runs-on: ubuntu-latest
|
|
40
|
+
steps:
|
|
41
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
42
|
+
- uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable
|
|
43
|
+
with:
|
|
44
|
+
components: rustfmt, clippy
|
|
45
|
+
- run: cargo fmt --all -- --check
|
|
46
|
+
- run: cargo clippy --all-targets -- -D warnings
|
|
47
|
+
|
|
48
|
+
wheels:
|
|
49
|
+
name: Build wheels (${{ matrix.os }})
|
|
50
|
+
runs-on: ${{ matrix.os }}
|
|
51
|
+
strategy:
|
|
52
|
+
fail-fast: false
|
|
53
|
+
matrix:
|
|
54
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
55
|
+
steps:
|
|
56
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
57
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
58
|
+
with:
|
|
59
|
+
python-version: "3.13"
|
|
60
|
+
- name: Build wheels
|
|
61
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
62
|
+
with:
|
|
63
|
+
args: --release --out dist
|
|
64
|
+
# abi3 wheels are forward-compatible across CPython 3.9+.
|
|
65
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
66
|
+
with:
|
|
67
|
+
name: wheels-${{ matrix.os }}
|
|
68
|
+
path: dist
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
# Build native wheels for every supported platform plus an sdist, then publish
|
|
4
|
+
# to PyPI via the official pypa/gh-action-pypi-publish action.
|
|
5
|
+
#
|
|
6
|
+
# Pre-built wheels are produced for Linux (manylinux, x86_64 + aarch64), macOS
|
|
7
|
+
# (x86_64 + Apple Silicon), and Windows — all using maturin.
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
tags: ["v*"]
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
# Needed by pypa/gh-action-pypi-publish for OIDC trusted publishing.
|
|
16
|
+
id-token: write
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
linux:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
strategy:
|
|
22
|
+
matrix:
|
|
23
|
+
target: [x86_64, aarch64]
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
26
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
27
|
+
with:
|
|
28
|
+
python-version: "3.x"
|
|
29
|
+
- name: Build wheels
|
|
30
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
31
|
+
with:
|
|
32
|
+
target: ${{ matrix.target }}
|
|
33
|
+
args: --release --out dist
|
|
34
|
+
manylinux: auto
|
|
35
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
36
|
+
with:
|
|
37
|
+
name: wheels-linux-${{ matrix.target }}
|
|
38
|
+
path: dist
|
|
39
|
+
|
|
40
|
+
macos:
|
|
41
|
+
runs-on: macos-latest
|
|
42
|
+
strategy:
|
|
43
|
+
matrix:
|
|
44
|
+
target: [x86_64, aarch64]
|
|
45
|
+
steps:
|
|
46
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
47
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
48
|
+
with:
|
|
49
|
+
python-version: "3.x"
|
|
50
|
+
- name: Build wheels
|
|
51
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
52
|
+
with:
|
|
53
|
+
target: ${{ matrix.target }}
|
|
54
|
+
args: --release --out dist
|
|
55
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
56
|
+
with:
|
|
57
|
+
name: wheels-macos-${{ matrix.target }}
|
|
58
|
+
path: dist
|
|
59
|
+
|
|
60
|
+
windows:
|
|
61
|
+
runs-on: windows-latest
|
|
62
|
+
steps:
|
|
63
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
64
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
65
|
+
with:
|
|
66
|
+
python-version: "3.x"
|
|
67
|
+
- name: Build wheels
|
|
68
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
69
|
+
with:
|
|
70
|
+
target: x64
|
|
71
|
+
args: --release --out dist
|
|
72
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
73
|
+
with:
|
|
74
|
+
name: wheels-windows
|
|
75
|
+
path: dist
|
|
76
|
+
|
|
77
|
+
sdist:
|
|
78
|
+
runs-on: ubuntu-latest
|
|
79
|
+
steps:
|
|
80
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
81
|
+
- name: Build sdist
|
|
82
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
83
|
+
with:
|
|
84
|
+
command: sdist
|
|
85
|
+
args: --out dist
|
|
86
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
87
|
+
with:
|
|
88
|
+
name: wheels-sdist
|
|
89
|
+
path: dist
|
|
90
|
+
|
|
91
|
+
publish:
|
|
92
|
+
name: Publish
|
|
93
|
+
runs-on: ubuntu-latest
|
|
94
|
+
needs: [linux, macos, windows, sdist]
|
|
95
|
+
# Only publish from the canonical repo, never from forks.
|
|
96
|
+
if: startsWith(github.repository, 'shenxianpeng')
|
|
97
|
+
steps:
|
|
98
|
+
- name: Download built distributions
|
|
99
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
100
|
+
with:
|
|
101
|
+
pattern: wheels-*
|
|
102
|
+
merge-multiple: true
|
|
103
|
+
path: dist
|
|
104
|
+
- name: Publish to PyPI
|
|
105
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
106
|
+
with:
|
|
107
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: Release Drafter
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- "main"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
update_release_draft:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
# Draft your next Release notes as Pull Requests are merged into the default branch
|
|
14
|
+
- uses: release-drafter/release-drafter@v7
|
|
15
|
+
with:
|
|
16
|
+
config-name: github:shenxianpeng/.github:/.github/release-drafter.yml
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Rust
|
|
2
|
+
/target
|
|
3
|
+
# Cargo.lock is committed on purpose: this crate produces a distributed binary
|
|
4
|
+
# artifact (the wheel), so we want reproducible builds.
|
|
5
|
+
|
|
6
|
+
# Python
|
|
7
|
+
.venv/
|
|
8
|
+
__pycache__/
|
|
9
|
+
*.py[cod]
|
|
10
|
+
*.so
|
|
11
|
+
*.pyd
|
|
12
|
+
.pytest_cache/
|
|
13
|
+
build/
|
|
14
|
+
dist/
|
|
15
|
+
*.egg-info/
|
|
16
|
+
wheels/
|