| 1 | [package] |
| 2 | name = "git" |
| 3 | description = "Git object reads, attribute resolution, signatures, and pack-transport spawning." |
| 4 | version.workspace = true |
| 5 | edition.workspace = true |
| 6 | rust-version.workspace = true |
| 7 | license.workspace = true |
| 8 | authors.workspace = true |
| 9 | repository.workspace = true |
| 10 | publish.workspace = true |
| 11 | |
| 12 | [dependencies] |
| 13 | model = { workspace = true } |
| 14 | git2 = { workspace = true } |
| 15 | globset = { workspace = true } |
| 16 | moka = { workspace = true } |
| 17 | ssh-key = { workspace = true } |
| 18 | pgp = { workspace = true } |
| 19 | # Async subprocess spawning for pack transport (clone/fetch/push). One code path |
| 20 | # shared by the HTTP (web) and SSH transports. |
| 21 | tokio = { workspace = true } |
| 22 | thiserror = { workspace = true } |
| 23 | # Pin the libgit2 bindings to a build that requires libgit2 <= the version |
| 24 | # nixpkgs ships (1.9.4). git2 0.20's default libgit2-sys (0.18.7, bundling 1.9.6) |
| 25 | # demands >= 1.9.6 and fails against the system lib under LIBGIT2_NO_VENDOR. This |
| 26 | # is a direct pin, not used in code — bump it when nixpkgs bumps libgit2. See |
| 27 | # docs/decisions.md. |
| 28 | libgit2-sys = "=0.18.3" |
| 29 | |
| 30 | [dev-dependencies] |
| 31 | tempfile = { workspace = true } |
| 32 | # Random key generation for the SSH signature fixtures (PrivateKey::random). |
| 33 | rand_core = { workspace = true } |
| 34 | |
| 35 | [features] |
| 36 | # Build libgit2 from source and link it statically, so the runtime image needs no |
| 37 | # system libgit2. Used by the Dockerfile (`--features vendored`); the Nix build |
| 38 | # uses the system libgit2 instead (LIBGIT2_NO_VENDOR=1). |
| 39 | vendored = ["git2/vendored-libgit2"] |
| 40 | |
| 41 | [lints] |
| 42 | workspace = true |