Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(webserver, db): refactor gitlab and github integrations into unified integration / third party repository services #2088

Merged
merged 24 commits into from May 17, 2024

Conversation

boxbeam
Copy link
Collaborator

@boxbeam boxbeam commented May 10, 2024

No description provided.

Copy link

codecov bot commented May 13, 2024

Codecov Report

Attention: Patch coverage is 11.40496% with 536 lines in your changes are missing coverage. Please review.

Project coverage is 50.75%. Comparing base (6b6b700) to head (133c7ef).
Report is 15 commits behind head on main.

Files Patch % Lines
...by-webserver/src/service/repository/third_party.rs 18.07% 136 Missing ⚠️
ee/tabby-schema/src/dao.rs 0.00% 80 Missing ⚠️
ee/tabby-schema/src/schema/mod.rs 0.00% 77 Missing ⚠️
.../service/background_job/third_party_integration.rs 0.00% 51 Missing ⚠️
ee/tabby-webserver/src/service/integration.rs 34.78% 45 Missing ⚠️
...src/service/repository/third_party/fetch/gitlab.rs 0.00% 31 Missing ⚠️
...src/service/repository/third_party/fetch/github.rs 0.00% 29 Missing ⚠️
.../tabby-webserver/src/service/background_job/mod.rs 0.00% 19 Missing ⚠️
ee/tabby-db/src/integration_access_tokens.rs 5.55% 17 Missing ⚠️
...server/src/service/repository/third_party/fetch.rs 0.00% 16 Missing ⚠️
... and 6 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2088      +/-   ##
==========================================
- Coverage   51.83%   50.75%   -1.09%     
==========================================
  Files         153      157       +4     
  Lines       13487    13836     +349     
==========================================
+ Hits         6991     7022      +31     
- Misses       6496     6814     +318     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

github-actions bot commented May 13, 2024

🤠 Cargo bloat for toolchain stable-x86_64-unknown-linux-gnu 🤠

@@ Size breakdown @@

- Size       86.68 MB
+ Size       87.15 MB  +491.05 KB
- Text Size  26.51 MB
+ Text Size  26.76 MB  +255.38 KB
Size difference per crate

Note: The numbers below are not 100% accurate, use them as a rough estimate.

@@ Breakdown per crate @@

- tabby_webserver  3.51 MB
+ tabby_webserver  3.64 MB
- std              2.64 MB
+ std              2.67 MB
- octocrab         554.6 KB
+ octocrab         580.87 KB
- tabby_schema     548.41 KB
+ tabby_schema     532.31 KB
- serde_json       352.04 KB
+ serde_json       347.9 KB
- tokio            320.77 KB
+ tokio            313.44 KB
- tabby            313.61 KB
+ tabby            280.07 KB
- sqlx_core        179.91 KB
+ sqlx_core        188.68 KB
- hashbrown        104.88 KB
+ hashbrown        146.86 KB
- utoipa           122.23 KB
+ utoipa           115.59 KB
- futures_util     47.99 KB
+ futures_util     96.46 KB
- gitlab           76.79 KB
+ gitlab           83.78 KB
Dependency tree
@@ Dependency tree @@
Count: 1798

├─ anyhow v1.0.83
├─ async-stream v0.3.5
│  ├─ async-stream-impl v0.3.5 (proc-macro)
│  │  ├─ proc-macro2 v1.0.78
│  │  │  └─ unicode-ident v1.0.9
│  │  ├─ quote v1.0.35
│  │  │  └─ proc-macro2 v1.0.78 
│  │  └─ syn v2.0.52
│  │     ├─ proc-macro2 v1.0.78 
│  │     ├─ quote v1.0.35 
│  │     └─ unicode-ident v1.0.9
│  ├─ futures-core v0.3.29
│  └─ pin-project-lite v0.2.13
├─ async-trait v0.1.80 (proc-macro)
│  ├─ proc-macro2 v1.0.78 
│  ├─ quote v1.0.35 
│  └─ syn v2.0.52 
├─ axum v0.7.5
│  ├─ async-trait v0.1.80 (proc-macro) 
│  ├─ axum-core v0.4.3
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ bytes v1.5.0
│  │  ├─ futures-util v0.3.29
│  │  │  ├─ futures-channel v0.3.29
│  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  └─ futures-sink v0.3.29
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-io v0.3.29
│  │  │  ├─ futures-macro v0.3.29 (proc-macro)
│  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  ├─ quote v1.0.35 
│  │  │  │  └─ syn v2.0.52 
│  │  │  ├─ futures-sink v0.3.29
│  │  │  ├─ futures-task v0.3.29
│  │  │  ├─ memchr v2.7.2
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ pin-utils v0.1.0
│  │  │  └─ slab v0.4.8
│  │  │     └─ autocfg v1.1.0
│  │  ├─ http v1.1.0
│  │  │  ├─ bytes v1.5.0
│  │  │  ├─ fnv v1.0.7
│  │  │  └─ itoa v1.0.6
│  │  ├─ http-body v1.0.0
│  │  │  ├─ bytes v1.5.0
│  │  │  └─ http v1.1.0 
│  │  ├─ http-body-util v0.1.1
│  │  │  ├─ bytes v1.5.0
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ http v1.1.0 
│  │  │  ├─ http-body v1.0.0 
│  │  │  └─ pin-project-lite v0.2.13
│  │  ├─ mime v0.3.17
│  │  ├─ pin-project-lite v0.2.13
│  │  ├─ sync_wrapper v0.1.2
│  │  ├─ tower-layer v0.3.2
│  │  ├─ tower-service v0.3.2
│  │  ├─ tracing v0.1.37
│  │  │  ├─ cfg-if v1.0.0
│  │  │  ├─ log v0.4.20
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ tracing-attributes v0.1.24 (proc-macro)
│  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  ├─ quote v1.0.35 
│  │  │  │  └─ syn v2.0.52 
│  │  │  └─ tracing-core v0.1.31
│  │  │     └─ once_cell v1.19.0
│  │  └─ rustversion v1.0.14 (proc-macro)
│  ├─ base64 v0.21.5
│  ├─ bytes v1.5.0
│  ├─ futures-util v0.3.29 
│  ├─ http v1.1.0 
│  ├─ http-body v1.0.0 
│  ├─ http-body-util v0.1.1 
│  ├─ hyper v1.3.1
│  │  ├─ bytes v1.5.0
│  │  ├─ futures-channel v0.3.29 
│  │  ├─ futures-util v0.3.29 
│  │  ├─ h2 v0.4.4
│  │  │  ├─ bytes v1.5.0
│  │  │  ├─ fnv v1.0.7
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-sink v0.3.29
│  │  │  ├─ futures-util v0.3.29 
│  │  │  ├─ http v1.1.0 
│  │  │  ├─ indexmap v2.2.6
│  │  │  │  ├─ equivalent v1.0.1
│  │  │  │  ├─ hashbrown v0.14.3
│  │  │  │  │  ├─ ahash v0.8.11
│  │  │  │  │  │  ├─ cfg-if v1.0.0
│  │  │  │  │  │  ├─ getrandom v0.2.11
│  │  │  │  │  │  │  ├─ cfg-if v1.0.0
│  │  │  │  │  │  │  └─ libc v0.2.154
│  │  │  │  │  │  ├─ once_cell v1.19.0
│  │  │  │  │  │  ├─ zerocopy v0.7.32
│  │  │  │  │  │  └─ version_check v0.9.4
│  │  │  │  │  └─ allocator-api2 v0.2.16
│  │  │  │  └─ serde v1.0.199
│  │  │  │     └─ serde_derive v1.0.199 (proc-macro)
│  │  │  │        ├─ proc-macro2 v1.0.78 
│  │  │  │        ├─ quote v1.0.35 
│  │  │  │        └─ syn v2.0.52 
│  │  │  ├─ slab v0.4.8 
│  │  │  ├─ tokio v1.35.0
│  │  │  │  ├─ bytes v1.5.0
│  │  │  │  ├─ libc v0.2.154
│  │  │  │  ├─ mio v0.8.10
│  │  │  │  │  └─ libc v0.2.154
│  │  │  │  ├─ num_cpus v1.15.0
│  │  │  │  │  └─ libc v0.2.154
│  │  │  │  ├─ parking_lot v0.12.1
│  │  │  │  │  ├─ lock_api v0.4.10
│  │  │  │  │  │  ├─ scopeguard v1.1.0
│  │  │  │  │  │  └─ autocfg v1.1.0
│  │  │  │  │  └─ parking_lot_core v0.9.8
│  │  │  │  │     ├─ cfg-if v1.0.0
│  │  │  │  │     ├─ libc v0.2.154
│  │  │  │  │     └─ smallvec v1.13.2
│  │  │  │  ├─ pin-project-lite v0.2.13
│  │  │  │  ├─ signal-hook-registry v1.4.1
│  │  │  │  │  └─ libc v0.2.154
│  │  │  │  ├─ socket2 v0.5.5
│  │  │  │  │  └─ libc v0.2.154
│  │  │  │  └─ tokio-macros v2.2.0 (proc-macro)
│  │  │  │     ├─ proc-macro2 v1.0.78 
│  │  │  │     ├─ quote v1.0.35 
│  │  │  │     └─ syn v2.0.52 
│  │  │  ├─ tokio-util v0.7.10
│  │  │  │  ├─ bytes v1.5.0
│  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  ├─ futures-io v0.3.29
│  │  │  │  ├─ futures-sink v0.3.29
│  │  │  │  ├─ futures-util v0.3.29 
│  │  │  │  ├─ pin-project-lite v0.2.13
│  │  │  │  ├─ slab v0.4.8 
│  │  │  │  ├─ tokio v1.35.0 
│  │  │  │  └─ tracing v0.1.37 
│  │  │  └─ tracing v0.1.37 
│  │  ├─ http v1.1.0 
│  │  ├─ http-body v1.0.0 
│  │  ├─ httparse v1.8.0
│  │  ├─ httpdate v1.0.2
│  │  ├─ itoa v1.0.6
│  │  ├─ pin-project-lite v0.2.13
│  │  ├─ smallvec v1.13.2
│  │  ├─ tokio v1.35.0 
│  │  └─ want v0.3.0
│  │     ├─ log v0.4.20
│  │     └─ try-lock v0.2.4
│  ├─ hyper-util v0.1.3
│  │  ├─ bytes v1.5.0
│  │  ├─ futures-channel v0.3.29 
│  │  ├─ futures-util v0.3.29 
│  │  ├─ http v1.1.0 
│  │  ├─ http-body v1.0.0 
│  │  ├─ hyper v1.3.1 
│  │  ├─ pin-project-lite v0.2.13
│  │  ├─ socket2 v0.5.5 
│  │  ├─ tokio v1.35.0 
│  │  ├─ tower v0.4.13
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-util v0.3.29 
│  │  │  ├─ pin-project v1.1.3
│  │  │  │  └─ pin-project-internal v1.1.3 (proc-macro)
│  │  │  │     ├─ proc-macro2 v1.0.78 
│  │  │  │     ├─ quote v1.0.35 
│  │  │  │     └─ syn v2.0.52 
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ tokio v1.35.0 
│  │  │  ├─ tokio-util v0.7.10 
│  │  │  ├─ tower-layer v0.3.2
│  │  │  ├─ tower-service v0.3.2
│  │  │  └─ tracing v0.1.37 
│  │  ├─ tower-service v0.3.2
│  │  └─ tracing v0.1.37 
│  ├─ itoa v1.0.6
│  ├─ matchit v0.7.0
│  ├─ memchr v2.7.2
│  ├─ mime v0.3.17
│  ├─ percent-encoding v2.3.1
│  ├─ pin-project-lite v0.2.13
│  ├─ serde v1.0.199 
│  ├─ serde_json v1.0.116
│  │  ├─ itoa v1.0.6
│  │  ├─ ryu v1.0.13
│  │  └─ serde v1.0.199 
│  ├─ serde_path_to_error v0.1.11
│  │  └─ serde v1.0.199 
│  ├─ serde_urlencoded v0.7.1
│  │  ├─ form_urlencoded v1.2.1
│  │  │  └─ percent-encoding v2.3.1
│  │  ├─ itoa v1.0.6
│  │  ├─ ryu v1.0.13
│  │  └─ serde v1.0.199 
│  ├─ sha1 v0.10.6
│  │  ├─ cfg-if v1.0.0
│  │  ├─ cpufeatures v0.2.11
│  │  └─ digest v0.10.7
│  │     ├─ block-buffer v0.10.4
│  │     │  └─ generic-array v0.14.7
│  │     │     ├─ typenum v1.16.0
│  │     │     └─ version_check v0.9.4
│  │     ├─ crypto-common v0.1.6
│  │     │  ├─ generic-array v0.14.7 
│  │     │  └─ typenum v1.16.0
│  │     └─ subtle v2.5.0
│  ├─ sync_wrapper v1.0.1
│  ├─ tokio v1.35.0 
│  ├─ tokio-tungstenite v0.21.0
│  │  ├─ futures-util v0.3.29 
│  │  ├─ log v0.4.20
│  │  ├─ tokio v1.35.0 
│  │  └─ tungstenite v0.21.0
│  │     ├─ byteorder v1.4.3
│  │     ├─ bytes v1.5.0
│  │     ├─ data-encoding v2.4.0
│  │     ├─ http v1.1.0 
│  │     ├─ httparse v1.8.0
│  │     ├─ log v0.4.20
│  │     ├─ rand v0.8.5
│  │     │  ├─ libc v0.2.154
│  │     │  ├─ rand_chacha v0.3.1
│  │     │  │  ├─ ppv-lite86 v0.2.17
│  │     │  │  └─ rand_core v0.6.4
│  │     │  │     └─ getrandom v0.2.11 
│  │     │  └─ rand_core v0.6.4 
│  │     ├─ sha1 v0.10.6 
│  │     ├─ thiserror v1.0.59
│  │     │  └─ thiserror-impl v1.0.59 (proc-macro)
│  │     │     ├─ proc-macro2 v1.0.78 
│  │     │     ├─ quote v1.0.35 
│  │     │     └─ syn v2.0.52 
│  │     ├─ url v2.5.0
│  │     │  ├─ form_urlencoded v1.2.1 
│  │     │  ├─ idna v0.5.0
│  │     │  │  ├─ unicode-bidi v0.3.13
│  │     │  │  └─ unicode-normalization v0.1.22
│  │     │  │     └─ tinyvec v1.6.0
│  │     │  │        └─ tinyvec_macros v0.1.1
│  │     │  ├─ percent-encoding v2.3.1
│  │     │  └─ serde v1.0.199 
│  │     └─ utf-8 v0.7.6
│  ├─ tower v0.4.13 
│  ├─ tower-layer v0.3.2
│  ├─ tower-service v0.3.2
│  ├─ tracing v0.1.37 
│  └─ rustversion v1.0.14 (proc-macro)
├─ axum-extra v0.9.3
│  ├─ axum v0.7.5 
│  ├─ axum-core v0.4.3 
│  ├─ bytes v1.5.0
│  ├─ futures-util v0.3.29 
│  ├─ headers v0.4.0
│  │  ├─ base64 v0.21.5
│  │  ├─ bytes v1.5.0
│  │  ├─ headers-core v0.3.0
│  │  │  └─ http v1.1.0 
│  │  ├─ http v1.1.0 
│  │  ├─ httpdate v1.0.2
│  │  ├─ mime v0.3.17
│  │  └─ sha1 v0.10.6 
│  ├─ http v1.1.0 
│  ├─ http-body v1.0.0 
│  ├─ http-body-util v0.1.1 
│  ├─ mime v0.3.17
│  ├─ pin-project-lite v0.2.13
│  ├─ serde v1.0.199 
│  ├─ tower v0.4.13 
│  ├─ tower-layer v0.3.2
│  ├─ tower-service v0.3.2
│  └─ tracing v0.1.37 
├─ axum-prometheus v0.6.1
│  ├─ axum v0.7.5 
│  ├─ bytes v1.5.0
│  ├─ futures v0.3.28
│  │  ├─ futures-channel v0.3.29 
│  │  ├─ futures-core v0.3.29
│  │  ├─ futures-executor v0.3.28
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-task v0.3.29
│  │  │  └─ futures-util v0.3.29 
│  │  ├─ futures-io v0.3.29
│  │  ├─ futures-sink v0.3.29
│  │  ├─ futures-task v0.3.29
│  │  └─ futures-util v0.3.29 
│  ├─ futures-core v0.3.29
│  ├─ http v1.1.0 
│  ├─ http-body v1.0.0 
│  ├─ matchit v0.7.0
│  ├─ metrics v0.22.3
│  │  └─ ahash v0.8.11 
│  ├─ metrics-exporter-prometheus v0.13.1
│  │  ├─ base64 v0.21.5
│  │  ├─ hyper v0.14.27
│  │  │  ├─ bytes v1.5.0
│  │  │  ├─ futures-channel v0.3.29 
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-util v0.3.29 
│  │  │  ├─ h2 v0.3.19
│  │  │  │  ├─ bytes v1.5.0
│  │  │  │  ├─ fnv v1.0.7
│  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  ├─ futures-sink v0.3.29
│  │  │  │  ├─ futures-util v0.3.29 
│  │  │  │  ├─ http v0.2.11
│  │  │  │  │  ├─ bytes v1.5.0
│  │  │  │  │  ├─ fnv v1.0.7
│  │  │  │  │  └─ itoa v1.0.6
│  │  │  │  ├─ indexmap v1.9.3
│  │  │  │  │  ├─ hashbrown v0.12.3
│  │  │  │  │  └─ autocfg v1.1.0
│  │  │  │  ├─ slab v0.4.8 
│  │  │  │  ├─ tokio v1.35.0 
│  │  │  │  ├─ tokio-util v0.7.10 
│  │  │  │  └─ tracing v0.1.37 
│  │  │  ├─ http v0.2.11 
│  │  │  ├─ http-body v0.4.5
│  │  │  │  ├─ bytes v1.5.0
│  │  │  │  ├─ http v0.2.11 
│  │  │  │  └─ pin-project-lite v0.2.13
│  │  │  ├─ httparse v1.8.0
│  │  │  ├─ httpdate v1.0.2
│  │  │  ├─ itoa v1.0.6
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ socket2 v0.4.9
│  │  │  │  └─ libc v0.2.154
│  │  │  ├─ tokio v1.35.0 
│  │  │  ├─ tower-service v0.3.2
│  │  │  ├─ tracing v0.1.37 
│  │  │  └─ want v0.3.0 
│  │  ├─ indexmap v2.2.6 
│  │  ├─ ipnet v2.7.2
│  │  ├─ metrics v0.22.3 
│  │  ├─ metrics-util v0.16.3
│  │  │  ├─ crossbeam-epoch v0.9.14
│  │  │  │  ├─ cfg-if v1.0.0
│  │  │  │  ├─ crossbeam-utils v0.8.19
│  │  │  │  ├─ memoffset v0.8.0
│  │  │  │  │  └─ autocfg v1.1.0
│  │  │  │  ├─ scopeguard v1.1.0
│  │  │  │  └─ autocfg v1.1.0
│  │  │  ├─ crossbeam-utils v0.8.19
│  │  │  ├─ hashbrown v0.14.3 
│  │  │  ├─ metrics v0.22.3 
│  │  │  ├─ num_cpus v1.15.0 
│  │  │  ├─ quanta v0.12.3
│  │  │  │  ├─ crossbeam-utils v0.8.19
│  │  │  │  ├─ libc v0.2.154
│  │  │  │  ├─ once_cell v1.19.0
│  │  │  │  └─ raw-cpuid v11.0.2
│  │  │  │     └─ bitflags v2.4.0
│  │  │  └─ sketches-ddsketch v0.2.1
│  │  │     └─ serde v1.0.199 
│  │  ├─ quanta v0.12.3 
│  │  ├─ thiserror v1.0.59 
│  │  └─ tokio v1.35.0 
│  ├─ once_cell v1.19.0
│  ├─ pin-project v1.1.3 
│  ├─ tokio v1.35.0 
│  ├─ tower v0.4.13 
│  └─ tower-http v0.5.2
│     ├─ bitflags v2.4.0
│     ├─ bytes v1.5.0
│     ├─ futures-util v0.3.29 
│     ├─ http v1.1.0 
│     ├─ http-body v1.0.0 
│     ├─ http-body-util v0.1.1 
│     ├─ http-range-header v0.4.0
│     ├─ httpdate v1.0.2
│     ├─ iri-string v0.7.2
│     ├─ mime v0.3.17
│     ├─ mime_guess v2.0.4
│     │  ├─ mime v0.3.17
│     │  ├─ unicase v2.7.0
│     │  │  └─ version_check v0.9.4
│     │  └─ unicase v2.7.0 
│     ├─ percent-encoding v2.3.1
│     ├─ pin-project-lite v0.2.13
│     ├─ tokio v1.35.0 
│     ├─ tokio-util v0.7.10 
│     ├─ tower v0.4.13 
│     ├─ tower-layer v0.3.2
│     ├─ tower-service v0.3.2
│     └─ tracing v0.1.37 
├─ cached v0.49.3
│  ├─ ahash v0.8.11 
│  ├─ async-trait v0.1.80 (proc-macro) 
│  ├─ cached_proc_macro v0.20.0 (proc-macro)
│  │  ├─ darling v0.14.4
│  │  │  ├─ darling_core v0.14.4
│  │  │  │  ├─ fnv v1.0.7
│  │  │  │  ├─ ident_case v1.0.1
│  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  ├─ quote v1.0.35 
│  │  │  │  ├─ strsim v0.10.0
│  │  │  │  └─ syn v1.0.109
│  │  │  │     ├─ proc-macro2 v1.0.78 
│  │  │  │     ├─ quote v1.0.35 
│  │  │  │     └─ unicode-ident v1.0.9
│  │  │  └─ darling_macro v0.14.4 (proc-macro)
│  │  │     ├─ darling_core v0.14.4 
│  │  │     ├─ quote v1.0.35 
│  │  │     └─ syn v1.0.109 
│  │  ├─ proc-macro2 v1.0.78 
│  │  ├─ quote v1.0.35 
│  │  └─ syn v1.0.109 
│  ├─ cached_proc_macro_types v0.1.1
│  ├─ futures v0.3.28 
│  ├─ hashbrown v0.14.3 
│  ├─ instant v0.1.12
│  │  └─ cfg-if v1.0.0
│  ├─ once_cell v1.19.0
│  ├─ thiserror v1.0.59 
│  └─ tokio v1.35.0 
├─ chrono v0.4.31
│  ├─ iana-time-zone v0.1.57
│  ├─ num-traits v0.2.17
│  │  ├─ libm v0.2.8
│  │  └─ autocfg v1.1.0
│  └─ serde v1.0.199 
├─ clap v4.4.11
│  ├─ clap_builder v4.4.11
│  │  ├─ anstream v0.6.4
│  │  │  ├─ anstyle v1.0.0
│  │  │  ├─ anstyle-parse v0.2.0
│  │  │  │  └─ utf8parse v0.2.1
│  │  │  ├─ anstyle-query v1.0.0
│  │  │  ├─ colorchoice v1.0.0
│  │  │  └─ utf8parse v0.2.1
│  │  ├─ anstyle v1.0.0
│  │  ├─ clap_lex v0.6.0
│  │  └─ strsim v0.10.0
│  └─ clap_derive v4.4.7 (proc-macro)
│     ├─ heck v0.4.1
│     │  └─ unicode-segmentation v1.11.0
│     ├─ proc-macro2 v1.0.78 
│     ├─ quote v1.0.35 
│     └─ syn v2.0.52 
├─ color-eyre v0.6.3
│  ├─ backtrace v0.3.67
│  │  ├─ addr2line v0.19.0
│  │  │  └─ gimli v0.27.2
│  │  ├─ cfg-if v1.0.0
│  │  ├─ libc v0.2.154
│  │  ├─ miniz_oxide v0.6.2
│  │  │  └─ adler v1.0.2
│  │  ├─ object v0.30.3
│  │  │  └─ memchr v2.7.2
│  │  ├─ rustc-demangle v0.1.23
│  │  └─ cc v1.0.83
│  │     ├─ jobserver v0.1.26
│  │     │  └─ libc v0.2.154
│  │     └─ libc v0.2.154
│  ├─ color-spantrace v0.2.1
│  │  ├─ once_cell v1.19.0
│  │  ├─ owo-colors v3.5.0
│  │  ├─ tracing-core v0.1.31 
│  │  └─ tracing-error v0.2.0
│  │     ├─ tracing v0.1.37 
│  │     └─ tracing-subscriber v0.3.17
│  │        ├─ matchers v0.1.0
│  │        │  └─ regex-automata v0.1.10
│  │        │     └─ regex-syntax v0.6.29
│  │        ├─ nu-ansi-term v0.46.0
│  │        │  └─ overload v0.1.1
│  │        ├─ once_cell v1.19.0
│  │        ├─ regex v1.10.4
│  │        │  ├─ aho-corasick v1.1.2
│  │        │  │  └─ memchr v2.7.2
│  │        │  ├─ memchr v2.7.2
│  │        │  ├─ regex-automata v0.4.6
│  │        │  │  ├─ aho-corasick v1.1.2 
│  │        │  │  ├─ memchr v2.7.2
│  │        │  │  └─ regex-syntax v0.8.2
│  │        │  └─ regex-syntax v0.8.2
│  │        ├─ sharded-slab v0.1.4
│  │        │  └─ lazy_static v1.4.0
│  │        ├─ smallvec v1.13.2
│  │        ├─ thread_local v1.1.7
│  │        │  ├─ cfg-if v1.0.0
│  │        │  └─ once_cell v1.19.0
│  │        ├─ tracing v0.1.37 
│  │        ├─ tracing-core v0.1.31 
│  │        └─ tracing-log v0.1.3
│  │           ├─ lazy_static v1.4.0
│  │           ├─ log v0.4.20
│  │           └─ tracing-core v0.1.31 
│  ├─ eyre v0.6.12
│  │  ├─ indenter v0.3.3
│  │  └─ once_cell v1.19.0
│  ├─ indenter v0.3.3
│  ├─ once_cell v1.19.0
│  ├─ owo-colors v3.5.0
│  └─ tracing-error v0.2.0 
├─ derive_builder v0.12.0
│  └─ derive_builder_macro v0.12.0 (proc-macro)
│     ├─ derive_builder_core v0.12.0
│     │  ├─ darling v0.14.4 
│     │  ├─ proc-macro2 v1.0.78 
│     │  ├─ quote v1.0.35 
│     │  └─ syn v1.0.109 
│     └─ syn v1.0.109 
├─ futures v0.3.28 
├─ http-api-bindings v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/http-api-bindings)
│  ├─ anyhow v1.0.83
│  ├─ async-openai v0.20.0
│  │  ├─ async-convert v1.0.0
│  │  │  └─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ backoff v0.4.0
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ getrandom v0.2.11 
│  │  │  ├─ instant v0.1.12 
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ rand v0.8.5 
│  │  │  └─ tokio v1.35.0 
│  │  ├─ base64 v0.22.0
│  │  ├─ bytes v1.5.0
│  │  ├─ derive_builder v0.20.0
│  │  │  └─ derive_builder_macro v0.20.0 (proc-macro)
│  │  │     ├─ derive_builder_core v0.20.0
│  │  │     │  ├─ darling v0.20.8
│  │  │     │  │  ├─ darling_core v0.20.8
│  │  │     │  │  │  ├─ fnv v1.0.7
│  │  │     │  │  │  ├─ ident_case v1.0.1
│  │  │     │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │     │  │  │  ├─ quote v1.0.35 
│  │  │     │  │  │  ├─ strsim v0.10.0
│  │  │     │  │  │  └─ syn v2.0.52 
│  │  │     │  │  └─ darling_macro v0.20.8 (proc-macro)
│  │  │     │  │     ├─ darling_core v0.20.8 
│  │  │     │  │     ├─ quote v1.0.35 
│  │  │     │  │     └─ syn v2.0.52 
│  │  │     │  ├─ proc-macro2 v1.0.78 
│  │  │     │  ├─ quote v1.0.35 
│  │  │     │  └─ syn v2.0.52 
│  │  │     └─ syn v2.0.52 
│  │  ├─ futures v0.3.28 
│  │  ├─ rand v0.8.5 
│  │  ├─ reqwest v0.12.4
│  │  │  ├─ base64 v0.22.0
│  │  │  ├─ bytes v1.5.0
│  │  │  ├─ encoding_rs v0.8.32
│  │  │  │  └─ cfg-if v1.0.0
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-util v0.3.29 
│  │  │  ├─ h2 v0.4.4 
│  │  │  ├─ http v1.1.0 
│  │  │  ├─ http-body v1.0.0 
│  │  │  ├─ http-body-util v0.1.1 
│  │  │  ├─ hyper v1.3.1 
│  │  │  ├─ hyper-rustls v0.26.0
│  │  │  │  ├─ futures-util v0.3.29 
│  │  │  │  ├─ http v1.1.0 
│  │  │  │  ├─ hyper v1.3.1 
│  │  │  │  ├─ hyper-util v0.1.3 
│  │  │  │  ├─ log v0.4.20
│  │  │  │  ├─ rustls v0.22.4
│  │  │  │  │  ├─ log v0.4.20
│  │  │  │  │  ├─ ring v0.17.5
│  │  │  │  │  │  ├─ getrandom v0.2.11 
│  │  │  │  │  │  ├─ libc v0.2.154
│  │  │  │  │  │  ├─ spin v0.9.8
│  │  │  │  │  │  │  └─ lock_api v0.4.10 
│  │  │  │  │  │  ├─ untrusted v0.9.0
│  │  │  │  │  │  └─ cc v1.0.83 
│  │  │  │  │  ├─ rustls-pki-types v1.5.0
│  │  │  │  │  ├─ rustls-webpki v0.102.3
│  │  │  │  │  │  ├─ ring v0.17.5 
│  │  │  │  │  │  ├─ rustls-pki-types v1.5.0
│  │  │  │  │  │  └─ untrusted v0.9.0
│  │  │  │  │  ├─ subtle v2.5.0
│  │  │  │  │  └─ zeroize v1.7.0
│  │  │  │  ├─ rustls-native-certs v0.7.0
│  │  │  │  │  ├─ openssl-probe v0.1.5
│  │  │  │  │  ├─ rustls-pemfile v2.1.2
│  │  │  │  │  │  ├─ base64 v0.22.0
│  │  │  │  │  │  └─ rustls-pki-types v1.5.0
│  │  │  │  │  └─ rustls-pki-types v1.5.0
│  │  │  │  ├─ rustls-pki-types v1.5.0
│  │  │  │  ├─ tokio v1.35.0 
│  │  │  │  ├─ tokio-rustls v0.25.0
│  │  │  │  │  ├─ rustls v0.22.4 
│  │  │  │  │  ├─ rustls-pki-types v1.5.0
│  │  │  │  │  └─ tokio v1.35.0 
│  │  │  │  └─ tower-service v0.3.2
│  │  │  ├─ hyper-tls v0.6.0
│  │  │  │  ├─ bytes v1.5.0
│  │  │  │  ├─ http-body-util v0.1.1 
│  │  │  │  ├─ hyper v1.3.1 
│  │  │  │  ├─ hyper-util v0.1.3 
│  │  │  │  ├─ native-tls v0.2.11
│  │  │  │  │  ├─ log v0.4.20
│  │  │  │  │  ├─ openssl v0.10.61
│  │  │  │  │  │  ├─ bitflags v2.4.0
│  │  │  │  │  │  ├─ cfg-if v1.0.0
│  │  │  │  │  │  ├─ foreign-types v0.3.2
│  │  │  │  │  │  │  └─ foreign-types-shared v0.1.1
│  │  │  │  │  │  ├─ libc v0.2.154
│  │  │  │  │  │  ├─ once_cell v1.19.0
│  │  │  │  │  │  ├─ openssl-macros v0.1.1 (proc-macro)
│  │  │  │  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  │  │  │  ├─ quote v1.0.35 
│  │  │  │  │  │  │  └─ syn v2.0.52 
│  │  │  │  │  │  └─ openssl-sys v0.9.97
│  │  │  │  │  │     ├─ libc v0.2.154
│  │  │  │  │  │     ├─ cc v1.0.83 
│  │  │  │  │  │     ├─ pkg-config v0.3.27
│  │  │  │  │  │     └─ vcpkg v0.2.15
│  │  │  │  │  ├─ openssl-probe v0.1.5
│  │  │  │  │  └─ openssl-sys v0.9.97 
│  │  │  │  ├─ tokio v1.35.0 
│  │  │  │  ├─ tokio-native-tls v0.3.1
│  │  │  │  │  ├─ native-tls v0.2.11 
│  │  │  │  │  └─ tokio v1.35.0 
│  │  │  │  └─ tower-service v0.3.2
│  │  │  ├─ hyper-util v0.1.3 
│  │  │  ├─ ipnet v2.7.2
│  │  │  ├─ log v0.4.20
│  │  │  ├─ mime v0.3.17
│  │  │  ├─ mime_guess v2.0.4 
│  │  │  ├─ native-tls v0.2.11 
│  │  │  ├─ once_cell v1.19.0
│  │  │  ├─ percent-encoding v2.3.1
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ rustls v0.22.4 
│  │  │  ├─ rustls-native-certs v0.7.0 
│  │  │  ├─ rustls-pemfile v2.1.2 
│  │  │  ├─ rustls-pki-types v1.5.0
│  │  │  ├─ serde v1.0.199 
│  │  │  ├─ serde_json v1.0.116 
│  │  │  ├─ serde_urlencoded v0.7.1 
│  │  │  ├─ sync_wrapper v0.1.2
│  │  │  ├─ tokio v1.35.0 
│  │  │  ├─ tokio-native-tls v0.3.1 
│  │  │  ├─ tokio-rustls v0.25.0 
│  │  │  ├─ tokio-util v0.7.10 
│  │  │  ├─ tower-service v0.3.2
│  │  │  └─ url v2.5.0 
│  │  ├─ reqwest-eventsource v0.6.0
│  │  │  ├─ eventsource-stream v0.2.3
│  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  ├─ nom v7.1.3
│  │  │  │  │  ├─ memchr v2.7.2
│  │  │  │  │  └─ minimal-lexical v0.2.1
│  │  │  │  └─ pin-project-lite v0.2.13
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-timer v3.0.2
│  │  │  ├─ mime v0.3.17
│  │  │  ├─ nom v7.1.3 
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ reqwest v0.12.4 
│  │  │  └─ thiserror v1.0.59 
│  │  ├─ secrecy v0.8.0
│  │  │  ├─ serde v1.0.199 
│  │  │  └─ zeroize v1.7.0
│  │  ├─ serde v1.0.199 
│  │  ├─ serde_json v1.0.116 
│  │  ├─ thiserror v1.0.59 
│  │  ├─ tokio v1.35.0 
│  │  ├─ tokio-stream v0.1.14
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  └─ tokio v1.35.0 
│  │  ├─ tokio-util v0.7.10 
│  │  └─ tracing v0.1.37 
│  ├─ async-stream v0.3.5 
│  ├─ async-trait v0.1.80 (proc-macro) 
│  ├─ futures v0.3.28 
│  ├─ reqwest v0.12.4 
│  ├─ reqwest-eventsource v0.6.0 
│  ├─ serde v1.0.199 
│  ├─ serde_json v1.0.116 
│  ├─ tabby-common v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-common)
│  │  ├─ anyhow v1.0.83
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ derive_builder v0.12.0 
│  │  ├─ home v0.5.9
│  │  ├─ lazy_static v1.4.0
│  │  ├─ regex v1.10.4 
│  │  ├─ reqwest v0.12.4 
│  │  ├─ serde v1.0.199 
│  │  ├─ serde_json v1.0.116 
│  │  ├─ serdeconv v0.4.1
│  │  │  ├─ rmp-serde v1.1.1
│  │  │  │  ├─ byteorder v1.4.3
│  │  │  │  ├─ rmp v0.8.11
│  │  │  │  │  ├─ byteorder v1.4.3
│  │  │  │  │  ├─ num-traits v0.2.17 
│  │  │  │  │  └─ paste v1.0.12 (proc-macro)
│  │  │  │  └─ serde v1.0.199 
│  │  │  ├─ serde v1.0.199 
│  │  │  ├─ serde_json v1.0.116 
│  │  │  ├─ toml v0.7.4
│  │  │  │  ├─ serde v1.0.199 
│  │  │  │  ├─ serde_spanned v0.6.2
│  │  │  │  │  └─ serde v1.0.199 
│  │  │  │  ├─ toml_datetime v0.6.2
│  │  │  │  │  └─ serde v1.0.199 
│  │  │  │  └─ toml_edit v0.19.10
│  │  │  │     ├─ indexmap v1.9.3 
│  │  │  │     ├─ serde v1.0.199 
│  │  │  │     ├─ serde_spanned v0.6.2 
│  │  │  │     ├─ toml_datetime v0.6.2 
│  │  │  │     └─ winnow v0.4.6
│  │  │  └─ trackable v1.3.0
│  │  │     └─ trackable_derive v1.0.0 (proc-macro)
│  │  │        ├─ quote v1.0.35 
│  │  │        └─ syn v1.0.109 
│  │  ├─ tantivy v0.22.0
│  │  │  ├─ aho-corasick v1.1.2 
│  │  │  ├─ arc-swap v1.6.0
│  │  │  ├─ base64 v0.22.0
│  │  │  ├─ bitpacking v0.9.2
│  │  │  │  └─ crunchy v0.2.2
│  │  │  ├─ byteorder v1.4.3
│  │  │  ├─ census v0.4.2
│  │  │  ├─ crc32fast v1.3.2
│  │  │  │  └─ cfg-if v1.0.0
│  │  │  ├─ crossbeam-channel v0.5.8
│  │  │  │  ├─ cfg-if v1.0.0
│  │  │  │  └─ crossbeam-utils v0.8.19
│  │  │  ├─ downcast-rs v1.2.0
│  │  │  ├─ fastdivide v0.4.0
│  │  │  ├─ fnv v1.0.7
│  │  │  ├─ fs4 v0.8.3
│  │  │  │  └─ rustix v0.38.34
│  │  │  │     ├─ bitflags v2.4.0
│  │  │  │     └─ linux-raw-sys v0.4.13
│  │  │  ├─ htmlescape v0.3.1
│  │  │  ├─ itertools v0.12.1
│  │  │  │  └─ either v1.11.0
│  │  │  │     └─ serde v1.0.199 
│  │  │  ├─ levenshtein_automata v0.2.1
│  │  │  ├─ log v0.4.20
│  │  │  ├─ lru v0.12.3
│  │  │  │  └─ hashbrown v0.14.3 
│  │  │  ├─ lz4_flex v0.11.1
│  │  │  ├─ measure_time v0.8.2
│  │  │  │  ├─ instant v0.1.12 
│  │  │  │  └─ log v0.4.20
│  │  │  ├─ memmap2 v0.9.4
│  │  │  │  └─ libc v0.2.154
│  │  │  ├─ num_cpus v1.15.0 
│  │  │  ├─ once_cell v1.19.0
│  │  │  ├─ oneshot v0.1.5
│  │  │  ├─ rayon v1.10.0
│  │  │  │  ├─ either v1.11.0 
│  │  │  │  └─ rayon-core v1.12.1
│  │  │  │     ├─ crossbeam-deque v0.8.3
│  │  │  │     │  ├─ cfg-if v1.0.0
│  │  │  │     │  ├─ crossbeam-epoch v0.9.14 
│  │  │  │     │  └─ crossbeam-utils v0.8.19
│  │  │  │     └─ crossbeam-utils v0.8.19
│  │  │  ├─ regex v1.10.4 
│  │  │  ├─ rust-stemmers v1.2.0
│  │  │  │  ├─ serde v1.0.199 
│  │  │  │  └─ serde_derive v1.0.199 (proc-macro) 
│  │  │  ├─ rustc-hash v1.1.0
│  │  │  ├─ serde v1.0.199 
│  │  │  ├─ serde_json v1.0.116 
│  │  │  ├─ sketches-ddsketch v0.2.1 
│  │  │  ├─ smallvec v1.13.2
│  │  │  ├─ tantivy-bitpacker v0.6.0
│  │  │  │  └─ bitpacking v0.9.2 
│  │  │  ├─ tantivy-columnar v0.3.0
│  │  │  │  ├─ downcast-rs v1.2.0
│  │  │  │  ├─ fastdivide v0.4.0
│  │  │  │  ├─ itertools v0.12.1 
│  │  │  │  ├─ serde v1.0.199 
│  │  │  │  ├─ tantivy-bitpacker v0.6.0 
│  │  │  │  ├─ tantivy-common v0.7.0
│  │  │  │  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  │  │  │  ├─ byteorder v1.4.3
│  │  │  │  │  ├─ ownedbytes v0.7.0
│  │  │  │  │  │  └─ stable_deref_trait v1.2.0
│  │  │  │  │  ├─ serde v1.0.199 
│  │  │  │  │  └─ time v0.3.36
│  │  │  │  │     ├─ deranged v0.3.11
│  │  │  │  │     │  ├─ powerfmt v0.2.0
│  │  │  │  │     │  └─ serde v1.0.199 
│  │  │  │  │     ├─ itoa v1.0.6
│  │  │  │  │     ├─ libc v0.2.154
│  │  │  │  │     ├─ num-conv v0.1.0
│  │  │  │  │     ├─ num_threads v0.1.6
│  │  │  │  │     ├─ powerfmt v0.2.0
│  │  │  │  │     ├─ serde v1.0.199 
│  │  │  │  │     ├─ time-core v0.1.2
│  │  │  │  │     └─ time-macros v0.2.18 (proc-macro)
│  │  │  │  │        ├─ num-conv v0.1.0
│  │  │  │  │        └─ time-core v0.1.2
│  │  │  │  ├─ tantivy-sstable v0.3.0
│  │  │  │  │  ├─ tantivy-bitpacker v0.6.0 
│  │  │  │  │  ├─ tantivy-common v0.7.0 
│  │  │  │  │  ├─ tantivy-fst v0.5.0
│  │  │  │  │  │  ├─ byteorder v1.4.3
│  │  │  │  │  │  ├─ regex-syntax v0.8.2
│  │  │  │  │  │  └─ utf8-ranges v1.0.5
│  │  │  │  │  └─ zstd v0.13.1
│  │  │  │  │     └─ zstd-safe v7.1.0
│  │  │  │  │        └─ zstd-sys v2.0.10+zstd.1.5.6
│  │  │  │  │           ├─ cc v1.0.83 
│  │  │  │  │           └─ pkg-config v0.3.27
│  │  │  │  └─ tantivy-stacker v0.3.0
│  │  │  │     ├─ murmurhash32 v0.3.0
│  │  │  │     ├─ rand_distr v0.4.3
│  │  │  │     │  ├─ num-traits v0.2.17 
│  │  │  │     │  └─ rand v0.8.5 
│  │  │  │     └─ tantivy-common v0.7.0 
│  │  │  ├─ tantivy-common v0.7.0 
│  │  │  ├─ tantivy-fst v0.5.0 
│  │  │  ├─ tantivy-query-grammar v0.22.0
│  │  │  │  └─ nom v7.1.3 
│  │  │  ├─ tantivy-stacker v0.3.0 
│  │  │  ├─ tantivy-tokenizer-api v0.3.0
│  │  │  │  └─ serde v1.0.199 
│  │  │  ├─ tempfile v3.5.0
│  │  │  │  ├─ cfg-if v1.0.0
│  │  │  │  ├─ fastrand v1.9.0
│  │  │  │  └─ rustix v0.37.19
│  │  │  │     ├─ bitflags v1.3.2
│  │  │  │     ├─ io-lifetimes v1.0.11
│  │  │  │     │  └─ libc v0.2.154
│  │  │  │     ├─ libc v0.2.154
│  │  │  │     └─ linux-raw-sys v0.3.8
│  │  │  ├─ thiserror v1.0.59 
│  │  │  ├─ time v0.3.36 
│  │  │  └─ uuid v1.6.1
│  │  │     ├─ getrandom v0.2.11 
│  │  │     ├─ rand v0.8.5 
│  │  │     ├─ serde v1.0.199 
│  │  │     └─ uuid-macro-internal v1.6.1 (proc-macro)
│  │  │        ├─ proc-macro2 v1.0.78 
│  │  │        ├─ quote v1.0.35 
│  │  │        └─ syn v2.0.52 
│  │  ├─ thiserror v1.0.59 
│  │  ├─ url v2.5.0 
│  │  ├─ utoipa v4.2.0
│  │  │  ├─ indexmap v2.2.6 
│  │  │  ├─ serde v1.0.199 
│  │  │  ├─ serde_json v1.0.116 
│  │  │  └─ utoipa-gen v4.2.0 (proc-macro)
│  │  │     ├─ proc-macro-error v1.0.4
│  │  │     │  ├─ proc-macro-error-attr v1.0.4 (proc-macro)
│  │  │     │  │  ├─ proc-macro2 v1.0.78 
│  │  │     │  │  ├─ quote v1.0.35 
│  │  │     │  │  └─ version_check v0.9.4
│  │  │     │  ├─ proc-macro2 v1.0.78 
│  │  │     │  ├─ quote v1.0.35 
│  │  │     │  ├─ syn v1.0.109 
│  │  │     │  └─ version_check v0.9.4
│  │  │     ├─ proc-macro2 v1.0.78 
│  │  │     ├─ quote v1.0.35 
│  │  │     ├─ regex v1.10.4 
│  │  │     └─ syn v2.0.52 
│  │  └─ uuid v1.6.1 
│  ├─ tabby-inference v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-inference)
│  │  ├─ anyhow v1.0.83
│  │  ├─ async-stream v0.3.5 
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ dashmap v5.5.3
│  │  │  ├─ cfg-if v1.0.0
│  │  │  ├─ hashbrown v0.14.3 
│  │  │  ├─ lock_api v0.4.10 
│  │  │  ├─ once_cell v1.19.0
│  │  │  └─ parking_lot_core v0.9.8 
│  │  ├─ derive_builder v0.12.0 
│  │  ├─ futures v0.3.28 
│  │  ├─ tabby-common v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-common) 
│  │  └─ trie-rs v0.1.1
│  │     └─ louds-rs v0.4.0
│  │        └─ fid-rs v0.1.1
│  │           └─ rayon v1.10.0 
│  └─ tracing v0.1.37 
├─ hyper v1.3.1 
├─ lazy_static v1.4.0
├─ llama-cpp-server v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/llama-cpp-server)
│  ├─ anyhow v1.0.83
│  ├─ async-trait v0.1.80 (proc-macro) 
│  ├─ futures v0.3.28 
│  ├─ http-api-bindings v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/http-api-bindings) 
│  ├─ reqwest v0.12.4 
│  ├─ tabby-common v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-common) 
│  ├─ tabby-inference v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-inference) 
│  ├─ tokio v1.35.0 
│  ├─ tracing v0.1.37 
│  ├─ which v6.0.1
│  │  ├─ either v1.11.0 
│  │  ├─ home v0.5.9
│  │  └─ rustix v0.38.34 
│  ├─ cmake v0.1.50
│  │  └─ cc v1.0.83 
│  └─ omnicopy_to_output v0.1.1
│     ├─ anyhow v1.0.83
│     ├─ build-target v0.4.0
│     ├─ fs_extra v1.3.0
│     └─ project-root v0.2.2
├─ minijinja v1.0.8
│  ├─ memo-map v0.3.2
│  ├─ self_cell v1.0.1
│  └─ serde v1.0.199 
├─ nvml-wrapper v0.9.0
│  ├─ bitflags v1.3.2
│  ├─ libloading v0.7.4
│  │  └─ cfg-if v1.0.0
│  ├─ nvml-wrapper-sys v0.7.0
│  │  └─ libloading v0.7.4 
│  ├─ static_assertions v1.1.0
│  ├─ thiserror v1.0.59 
│  └─ wrapcenum-derive v0.4.0 (proc-macro)
│     ├─ darling v0.10.2
│     │  ├─ darling_core v0.10.2
│     │  │  ├─ fnv v1.0.7
│     │  │  ├─ ident_case v1.0.1
│     │  │  ├─ proc-macro2 v1.0.78 
│     │  │  ├─ quote v1.0.35 
│     │  │  ├─ strsim v0.9.3
│     │  │  └─ syn v1.0.109 
│     │  └─ darling_macro v0.10.2 (proc-macro)
│     │     ├─ darling_core v0.10.2 
│     │     ├─ quote v1.0.35 
│     │     └─ syn v1.0.109 
│     ├─ proc-macro2 v1.0.78 
│     ├─ quote v1.0.35 
│     └─ syn v1.0.109 
├─ parse-git-url v0.5.1
│  ├─ tracing v0.1.37 
│  └─ url v2.5.0 
├─ reqwest v0.12.4 
├─ serde v1.0.199 
├─ serde_json v1.0.116 
├─ serdeconv v0.4.1 
├─ strfmt v0.2.4
├─ strum v0.24.1
│  └─ strum_macros v0.24.3 (proc-macro)
│     ├─ heck v0.4.1 
│     ├─ proc-macro2 v1.0.78 
│     ├─ quote v1.0.35 
│     ├─ rustversion v1.0.14 (proc-macro)
│     └─ syn v1.0.109 
├─ sysinfo v0.29.8
│  ├─ cfg-if v1.0.0
│  ├─ libc v0.2.154
│  ├─ once_cell v1.19.0
│  └─ rayon v1.10.0 
├─ tabby-common v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-common) 
├─ tabby-download v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-download)
│  ├─ aim-downloader v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/aim-downloader)
│  │  ├─ async-stream v0.3.5 
│  │  ├─ clap v4.4.11 
│  │  ├─ custom_error v1.9.2
│  │  ├─ dotenvy v0.15.7
│  │  ├─ futures-util v0.3.29 
│  │  ├─ home v0.5.9
│  │  ├─ indicatif v0.17.7
│  │  │  ├─ console v0.15.7
│  │  │  │  ├─ lazy_static v1.4.0
│  │  │  │  ├─ libc v0.2.154
│  │  │  │  └─ unicode-width v0.1.10
│  │  │  ├─ number_prefix v0.4.0
│  │  │  ├─ portable-atomic v1.3.2
│  │  │  └─ unicode-width v0.1.10
│  │  ├─ netrc v0.4.1
│  │  ├─ regex v1.10.4 
│  │  ├─ reqwest v0.12.4 
│  │  ├─ sha2 v0.10.8
│  │  │  ├─ cfg-if v1.0.0
│  │  │  ├─ cpufeatures v0.2.11
│  │  │  └─ digest v0.10.7 
│  │  ├─ strfmt v0.2.4
│  │  ├─ tokio v1.35.0 
│  │  ├─ tokio-util v0.7.10 
│  │  └─ url-parse v1.0.7
│  │     └─ regex v1.10.4 
│  ├─ anyhow v1.0.83
│  ├─ sha256 v1.4.0
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ bytes v1.5.0
│  │  ├─ hex v0.4.3
│  │  ├─ sha2 v0.10.8 
│  │  └─ tokio v1.35.0 
│  ├─ tabby-common v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-common) 
│  ├─ tokio-retry v0.3.0
│  │  ├─ pin-project v1.1.3 
│  │  ├─ rand v0.8.5 
│  │  └─ tokio v1.35.0 
│  └─ tracing v0.1.37 
├─ tabby-inference v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-inference) 
├─ tabby-scheduler v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-scheduler)
│  ├─ anyhow v1.0.83
│  ├─ async-stream v0.3.5 
│  ├─ futures v0.3.28 
│  ├─ git2 v0.18.3
│  │  ├─ bitflags v2.4.0
│  │  ├─ libc v0.2.154
│  │  ├─ libgit2-sys v0.16.2+1.7.2
│  │  │  ├─ libc v0.2.154
│  │  │  ├─ libssh2-sys v0.3.0
│  │  │  │  ├─ libc v0.2.154
│  │  │  │  ├─ libz-sys v1.1.16
│  │  │  │  │  ├─ libc v0.2.154
│  │  │  │  │  ├─ cc v1.0.83 
│  │  │  │  │  ├─ pkg-config v0.3.27
│  │  │  │  │  └─ vcpkg v0.2.15
│  │  │  │  ├─ openssl-sys v0.9.97 
│  │  │  │  ├─ cc v1.0.83 
│  │  │  │  └─ pkg-config v0.3.27
│  │  │  ├─ libz-sys v1.1.16 
│  │  │  ├─ openssl-sys v0.9.97 
│  │  │  ├─ cc v1.0.83 
│  │  │  └─ pkg-config v0.3.27
│  │  ├─ log v0.4.20
│  │  ├─ openssl-probe v0.1.5
│  │  ├─ openssl-sys v0.9.97 
│  │  └─ url v2.5.0 
│  ├─ ignore v0.4.22
│  │  ├─ crossbeam-deque v0.8.3 
│  │  ├─ globset v0.4.14
│  │  │  ├─ aho-corasick v1.1.2 
│  │  │  ├─ bstr v1.7.0
│  │  │  │  └─ memchr v2.7.2
│  │  │  ├─ log v0.4.20
│  │  │  ├─ regex-automata v0.4.6 
│  │  │  └─ regex-syntax v0.8.2
│  │  ├─ log v0.4.20
│  │  ├─ memchr v2.7.2
│  │  ├─ regex-automata v0.4.6 
│  │  ├─ same-file v1.0.6
│  │  └─ walkdir v2.5.0
│  │     └─ same-file v1.0.6
│  ├─ kv v0.24.0
│  │  ├─ pin-project-lite v0.2.13
│  │  ├─ serde v1.0.199 
│  │  ├─ serde_json v1.0.116 
│  │  ├─ sled v0.34.7
│  │  │  ├─ crc32fast v1.3.2 
│  │  │  ├─ crossbeam-epoch v0.9.14 
│  │  │  ├─ crossbeam-utils v0.8.19
│  │  │  ├─ fs2 v0.4.3
│  │  │  │  └─ libc v0.2.154
│  │  │  ├─ fxhash v0.2.1
│  │  │  │  └─ byteorder v1.4.3
│  │  │  ├─ libc v0.2.154
│  │  │  ├─ log v0.4.20
│  │  │  └─ parking_lot v0.11.2
│  │  │     ├─ instant v0.1.12 
│  │  │     ├─ lock_api v0.4.10 
│  │  │     └─ parking_lot_core v0.8.6
│  │  │        ├─ cfg-if v1.0.0
│  │  │        ├─ instant v0.1.12 
│  │  │        ├─ libc v0.2.154
│  │  │        └─ smallvec v1.13.2
│  │  ├─ thiserror v1.0.59 
│  │  └─ toml v0.5.11
│  │     └─ serde v1.0.199 
│  ├─ lazy_static v1.4.0
│  ├─ mdka v1.2.4
│  │  ├─ html5ever v0.26.0
│  │  │  ├─ log v0.4.20
│  │  │  ├─ mac v0.1.1
│  │  │  ├─ markup5ever v0.11.0
│  │  │  │  ├─ log v0.4.20
│  │  │  │  ├─ phf v0.10.1
│  │  │  │  │  └─ phf_shared v0.10.0
│  │  │  │  │     └─ siphasher v0.3.11
│  │  │  │  ├─ string_cache v0.8.7
│  │  │  │  │  ├─ new_debug_unreachable v1.0.6
│  │  │  │  │  ├─ once_cell v1.19.0
│  │  │  │  │  ├─ parking_lot v0.12.1 
│  │  │  │  │  ├─ phf_shared v0.10.0 
│  │  │  │  │  ├─ precomputed-hash v0.1.1
│  │  │  │  │  └─ serde v1.0.199 
│  │  │  │  ├─ tendril v0.4.3
│  │  │  │  │  ├─ futf v0.1.5
│  │  │  │  │  │  ├─ mac v0.1.1
│  │  │  │  │  │  └─ new_debug_unreachable v1.0.6
│  │  │  │  │  ├─ mac v0.1.1
│  │  │  │  │  └─ utf-8 v0.7.6
│  │  │  │  ├─ phf_codegen v0.10.0
│  │  │  │  │  ├─ phf_generator v0.10.0
│  │  │  │  │  │  ├─ phf_shared v0.10.0 
│  │  │  │  │  │  └─ rand v0.8.5 
│  │  │  │  │  └─ phf_shared v0.10.0 
│  │  │  │  └─ string_cache_codegen v0.5.2
│  │  │  │     ├─ phf_generator v0.10.0 
│  │  │  │     ├─ phf_shared v0.10.0 
│  │  │  │     ├─ proc-macro2 v1.0.78 
│  │  │  │     └─ quote v1.0.35 
│  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  ├─ quote v1.0.35 
│  │  │  └─ syn v1.0.109 
│  │  └─ markup5ever_rcdom v0.2.0
│  │     ├─ html5ever v0.26.0 
│  │     ├─ markup5ever v0.11.0 
│  │     ├─ tendril v0.4.3 
│  │     └─ xml5ever v0.17.0
│  │        ├─ log v0.4.20
│  │        ├─ mac v0.1.1
│  │        └─ markup5ever v0.11.0 
│  ├─ readable-readability v0.4.0
│  │  ├─ html5ever v0.25.2
│  │  │  ├─ log v0.4.20
│  │  │  ├─ mac v0.1.1
│  │  │  ├─ markup5ever v0.10.1
│  │  │  │  ├─ log v0.4.20
│  │  │  │  ├─ phf v0.8.0
│  │  │  │  │  ├─ phf_macros v0.8.0 (proc-macro)
│  │  │  │  │  │  ├─ phf_generator v0.8.0
│  │  │  │  │  │  │  ├─ phf_shared v0.8.0
│  │  │  │  │  │  │  │  └─ siphasher v0.3.11
│  │  │  │  │  │  │  └─ rand v0.7.3
│  │  │  │  │  │  │     ├─ getrandom v0.1.16
│  │  │  │  │  │  │     │  ├─ cfg-if v1.0.0
│  │  │  │  │  │  │     │  └─ libc v0.2.154
│  │  │  │  │  │  │     ├─ libc v0.2.154
│  │  │  │  │  │  │     ├─ rand_chacha v0.2.2
│  │  │  │  │  │  │     │  ├─ ppv-lite86 v0.2.17
│  │  │  │  │  │  │     │  └─ rand_core v0.5.1
│  │  │  │  │  │  │     │     └─ getrandom v0.1.16 
│  │  │  │  │  │  │     ├─ rand_core v0.5.1 
│  │  │  │  │  │  │     └─ rand_pcg v0.2.1
│  │  │  │  │  │  │        └─ rand_core v0.5.1 
│  │  │  │  │  │  ├─ phf_shared v0.8.0 
│  │  │  │  │  │  ├─ proc-macro-hack v0.5.20+deprecated (proc-macro)
│  │  │  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  │  │  ├─ quote v1.0.35 
│  │  │  │  │  │  └─ syn v1.0.109 
│  │  │  │  │  ├─ phf_shared v0.8.0 
│  │  │  │  │  └─ proc-macro-hack v0.5.20+deprecated (proc-macro)
│  │  │  │  ├─ string_cache v0.8.7 
│  │  │  │  ├─ tendril v0.4.3 
│  │  │  │  ├─ phf_codegen v0.8.0
│  │  │  │  │  ├─ phf_generator v0.8.0 
│  │  │  │  │  └─ phf_shared v0.8.0 
│  │  │  │  └─ string_cache_codegen v0.5.2 
│  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  ├─ quote v1.0.35 
│  │  │  └─ syn v1.0.109 
│  │  ├─ kuchiki v0.8.1
│  │  │  ├─ cssparser v0.27.2
│  │  │  │  ├─ cssparser-macros v0.6.1 (proc-macro)
│  │  │  │  │  ├─ quote v1.0.35 
│  │  │  │  │  └─ syn v2.0.52 
│  │  │  │  ├─ dtoa-short v0.3.4
│  │  │  │  │  └─ dtoa v1.0.9
│  │  │  │  ├─ itoa v0.4.8
│  │  │  │  ├─ matches v0.1.10
│  │  │  │  ├─ phf v0.8.0 
│  │  │  │  ├─ smallvec v1.13.2
│  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  ├─ quote v1.0.35 
│  │  │  │  └─ syn v1.0.109 
│  │  │  ├─ html5ever v0.25.2 
│  │  │  ├─ matches v0.1.10
│  │  │  └─ selectors v0.22.0
│  │  │     ├─ bitflags v1.3.2
│  │  │     ├─ cssparser v0.27.2 
│  │  │     ├─ derive_more v0.99.17 (proc-macro)
│  │  │     │  ├─ convert_case v0.4.0
│  │  │     │  ├─ proc-macro2 v1.0.78 
│  │  │     │  ├─ quote v1.0.35 
│  │  │     │  ├─ syn v1.0.109 
│  │  │     │  └─ rustc_version v0.4.0
│  │  │     │     └─ semver v1.0.20
│  │  │     ├─ fxhash v0.2.1 
│  │  │     ├─ log v0.4.20
│  │  │     ├─ matches v0.1.10
│  │  │     ├─ phf v0.8.0 
│  │  │     ├─ precomputed-hash v0.1.1
│  │  │     ├─ servo_arc v0.1.1
│  │  │     │  ├─ nodrop v0.1.14
│  │  │     │  └─ stable_deref_trait v1.2.0
│  │  │     ├─ smallvec v1.13.2
│  │  │     ├─ thin-slice v0.1.1
│  │  │     └─ phf_codegen v0.8.0 
│  │  ├─ lazy_static v1.4.0
│  │  ├─ log v0.4.20
│  │  ├─ regex v1.10.4 
│  │  └─ url v2.5.0 
│  ├─ serde v1.0.199 
│  ├─ serde_json v1.0.116 
│  ├─ tabby-common v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-common) 
│  ├─ tabby-inference v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-inference) 
│  ├─ tantivy v0.22.0 
│  ├─ text-splitter v0.10.0
│  │  ├─ ahash v0.8.11 
│  │  ├─ auto_enums v0.8.5 (proc-macro)
│  │  │  ├─ derive_utils v0.14.1
│  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  ├─ quote v1.0.35 
│  │  │  │  └─ syn v2.0.52 
│  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  ├─ quote v1.0.35 
│  │  │  └─ syn v2.0.52 
│  │  ├─ either v1.11.0 
│  │  ├─ itertools v0.12.1 
│  │  ├─ once_cell v1.19.0
│  │  ├─ regex v1.10.4 
│  │  └─ unicode-segmentation v1.11.0
│  ├─ tokio v1.35.0 
│  ├─ tokio-cron-scheduler v0.9.4
│  │  ├─ chrono v0.4.31 
│  │  ├─ cron v0.12.1
│  │  │  ├─ chrono v0.4.31 
│  │  │  ├─ nom v7.1.3 
│  │  │  └─ once_cell v1.19.0
│  │  ├─ num-derive v0.3.3 (proc-macro)
│  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  ├─ quote v1.0.35 
│  │  │  └─ syn v1.0.109 
│  │  ├─ num-traits v0.2.17 
│  │  ├─ tokio v1.35.0 
│  │  ├─ tracing v0.1.37 
│  │  └─ uuid v1.6.1 
│  ├─ tracing v0.1.37 
│  ├─ tree-sitter-c v0.20.6 (https://github.com/tree-sitter/tree-sitter-c/?rev=212a80f#212a80f8)
│  │  ├─ tree-sitter v0.20.10
│  │  │  ├─ regex v1.10.4 
│  │  │  └─ cc v1.0.83 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-c-sharp v0.20.0
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-cpp v0.20.3 (https://github.com/tree-sitter/tree-sitter-cpp?rev=a714740#a7147402)
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-go v0.20.0
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-java v0.20.2
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-kotlin v0.3.1
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-python v0.20.2
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-ruby v0.20.0
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-rust v0.20.3
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-solidity v0.0.3 (https://github.com/JoranHonig/tree-sitter-solidity?rev=b239a95#b239a95f)
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ tree-sitter-tags v0.20.2
│  │  ├─ memchr v2.7.2
│  │  ├─ regex v1.10.4 
│  │  ├─ thiserror v1.0.59 
│  │  └─ tree-sitter v0.20.10 
│  ├─ tree-sitter-typescript v0.20.3
│  │  ├─ tree-sitter v0.20.10 
│  │  └─ cc v1.0.83 
│  ├─ url v2.5.0 
│  └─ voca_rs v1.15.2
│     ├─ regex v1.10.4 
│     ├─ stfu8 v0.2.7
│     └─ unicode-segmentation v1.11.0
├─ tabby-webserver v0.12.0-dev.0 (/home/runner/work/tabby/tabby/ee/tabby-webserver)
│  ├─ anyhow v1.0.83
│  ├─ apalis v0.5.1 (https://github.com/wsxiaoys/apalis?rev=91526e8#91526e81)
│  │  ├─ apalis-core v0.5.1 (https://github.com/wsxiaoys/apalis?rev=91526e8#91526e81)
│  │  │  ├─ async-oneshot v0.5.9
│  │  │  │  └─ futures-micro v0.5.0
│  │  │  │     └─ pin-project-lite v0.2.13
│  │  │  ├─ futures v0.3.28 
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ serde v1.0.199 
│  │  │  ├─ serde_json v1.0.116 
│  │  │  ├─ thiserror v1.0.59 
│  │  │  ├─ tokio v1.35.0 
│  │  │  ├─ tower v0.4.13 
│  │  │  └─ ulid v1.1.2
│  │  │     └─ rand v0.8.5 
│  │  ├─ apalis-cron v0.5.1 (https://github.com/wsxiaoys/apalis?rev=91526e8#91526e81)
│  │  │  ├─ apalis-core v0.5.1 (https://github.com/wsxiaoys/apalis?rev=91526e8#91526e81) 
│  │  │  ├─ async-stream v0.3.5 
│  │  │  ├─ chrono v0.4.31 
│  │  │  ├─ cron v0.12.1 
│  │  │  ├─ futures v0.3.28 
│  │  │  └─ tower v0.4.13 
│  │  ├─ apalis-sql v0.5.1 (https://github.com/wsxiaoys/apalis?rev=91526e8#91526e81)
│  │  │  ├─ apalis-core v0.5.1 (https://github.com/wsxiaoys/apalis?rev=91526e8#91526e81) 
│  │  │  ├─ async-stream v0.3.5 
│  │  │  ├─ futures v0.3.28 
│  │  │  ├─ futures-lite v2.3.0
│  │  │  │  ├─ fastrand v2.0.1
│  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  ├─ futures-io v0.3.29
│  │  │  │  ├─ parking v2.2.0
│  │  │  │  └─ pin-project-lite v0.2.13
│  │  │  ├─ log v0.4.20
│  │  │  ├─ serde v1.0.199 
│  │  │  ├─ serde_json v1.0.116 
│  │  │  ├─ sqlx v0.7.4
│  │  │  │  ├─ sqlx-core v0.7.4
│  │  │  │  │  ├─ ahash v0.8.11 
│  │  │  │  │  ├─ atoi v2.0.0
│  │  │  │  │  │  └─ num-traits v0.2.17 
│  │  │  │  │  ├─ byteorder v1.4.3
│  │  │  │  │  ├─ bytes v1.5.0
│  │  │  │  │  ├─ chrono v0.4.31 
│  │  │  │  │  ├─ crc v3.0.1
│  │  │  │  │  │  └─ crc-catalog v2.4.0
│  │  │  │  │  ├─ crossbeam-queue v0.3.11
│  │  │  │  │  │  └─ crossbeam-utils v0.8.19
│  │  │  │  │  ├─ either v1.11.0 
│  │  │  │  │  ├─ event-listener v2.5.3
│  │  │  │  │  ├─ futures-channel v0.3.29 
│  │  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  │  ├─ futures-intrusive v0.5.0
│  │  │  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  │  │  ├─ lock_api v0.4.10 
│  │  │  │  │  │  └─ parking_lot v0.12.1 
│  │  │  │  │  ├─ futures-io v0.3.29
│  │  │  │  │  ├─ futures-util v0.3.29 
│  │  │  │  │  ├─ hashlink v0.8.4
│  │  │  │  │  │  └─ hashbrown v0.14.3 
│  │  │  │  │  ├─ hex v0.4.3
│  │  │  │  │  ├─ indexmap v2.2.6 
│  │  │  │  │  ├─ log v0.4.20
│  │  │  │  │  ├─ memchr v2.7.2
│  │  │  │  │  ├─ once_cell v1.19.0
│  │  │  │  │  ├─ paste v1.0.12 (proc-macro)
│  │  │  │  │  ├─ percent-encoding v2.3.1
│  │  │  │  │  ├─ rustls v0.21.10
│  │  │  │  │  │  ├─ log v0.4.20
│  │  │  │  │  │  ├─ ring v0.17.5 
│  │  │  │  │  │  ├─ rustls-webpki v0.101.7
│  │  │  │  │  │  │  ├─ ring v0.17.5 
│  │  │  │  │  │  │  └─ untrusted v0.9.0
│  │  │  │  │  │  └─ sct v0.7.1
│  │  │  │  │  │     ├─ ring v0.17.5 
│  │  │  │  │  │     └─ untrusted v0.9.0
│  │  │  │  │  ├─ rustls-pemfile v1.0.4
│  │  │  │  │  │  └─ base64 v0.21.5
│  │  │  │  │  ├─ serde v1.0.199 
│  │  │  │  │  ├─ serde_json v1.0.116 
│  │  │  │  │  ├─ sha2 v0.10.8 
│  │  │  │  │  ├─ smallvec v1.13.2
│  │  │  │  │  ├─ sqlformat v0.2.3
│  │  │  │  │  │  ├─ itertools v0.12.1 
│  │  │  │  │  │  ├─ nom v7.1.3 
│  │  │  │  │  │  └─ unicode_categories v0.1.1
│  │  │  │  │  ├─ thiserror v1.0.59 
│  │  │  │  │  ├─ tokio v1.35.0 
│  │  │  │  │  ├─ tokio-stream v0.1.14 
│  │  │  │  │  ├─ tracing v0.1.37 
│  │  │  │  │  ├─ url v2.5.0 
│  │  │  │  │  └─ webpki-roots v0.25.4
│  │  │  │  ├─ sqlx-macros v0.7.4 (proc-macro)
│  │  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  │  ├─ quote v1.0.35 
│  │  │  │  │  ├─ sqlx-core v0.7.4 
│  │  │  │  │  ├─ sqlx-macros-core v0.7.4
│  │  │  │  │  │  ├─ dotenvy v0.15.7
│  │  │  │  │  │  ├─ either v1.11.0 
│  │  │  │  │  │  ├─ heck v0.4.1 
│  │  │  │  │  │  ├─ hex v0.4.3
│  │  │  │  │  │  ├─ once_cell v1.19.0
│  │  │  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  │  │  ├─ quote v1.0.35 
│  │  │  │  │  │  ├─ serde v1.0.199 
│  │  │  │  │  │  ├─ serde_json v1.0.116 
│  │  │  │  │  │  ├─ sha2 v0.10.8 
│  │  │  │  │  │  ├─ sqlx-core v0.7.4 
│  │  │  │  │  │  ├─ sqlx-sqlite v0.7.4
│  │  │  │  │  │  │  ├─ atoi v2.0.0 
│  │  │  │  │  │  │  ├─ chrono v0.4.31 
│  │  │  │  │  │  │  ├─ flume v0.11.0
│  │  │  │  │  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  │  │  │  │  ├─ futures-sink v0.3.29
│  │  │  │  │  │  │  │  └─ spin v0.9.8 
│  │  │  │  │  │  │  ├─ futures-channel v0.3.29 
│  │  │  │  │  │  │  ├─ futures-core v0.3.29
│  │  │  │  │  │  │  ├─ futures-executor v0.3.28 
│  │  │  │  │  │  │  ├─ futures-intrusive v0.5.0 
│  │  │  │  │  │  │  ├─ futures-util v0.3.29 
│  │  │  │  │  │  │  ├─ libsqlite3-sys v0.27.0
│  │  │  │  │  │  │  │  ├─ cc v1.0.83 
│  │  │  │  │  │  │  │  ├─ pkg-config v0.3.27
│  │  │  │  │  │  │  │  └─ vcpkg v0.2.15
│  │  │  │  │  │  │  ├─ log v0.4.20
│  │  │  │  │  │  │  ├─ percent-encoding v2.3.1
│  │  │  │  │  │  │  ├─ serde v1.0.199 
│  │  │  │  │  │  │  ├─ sqlx-core v0.7.4 
│  │  │  │  │  │  │  ├─ tracing v0.1.37 
│  │  │  │  │  │  │  ├─ url v2.5.0 
│  │  │  │  │  │  │  └─ urlencoding v2.1.3
│  │  │  │  │  │  ├─ syn v1.0.109 
│  │  │  │  │  │  ├─ tempfile v3.5.0 
│  │  │  │  │  │  ├─ tokio v1.35.0 
│  │  │  │  │  │  └─ url v2.5.0 
│  │  │  │  │  └─ syn v1.0.109 
│  │  │  │  └─ sqlx-sqlite v0.7.4 
│  │  │  └─ tokio v1.35.0 
│  │  ├─ futures v0.3.28 
│  │  ├─ pin-project-lite v0.2.13
│  │  ├─ serde v1.0.199 
│  │  ├─ thiserror v1.0.59 
│  │  ├─ tokio v1.35.0 
│  │  ├─ tower v0.4.13 
│  │  ├─ tracing v0.1.37 
│  │  └─ tracing-futures v0.2.5
│  │     └─ tracing v0.1.37 
│  ├─ argon2 v0.5.2
│  │  ├─ base64ct v1.6.0
│  │  ├─ blake2 v0.10.6
│  │  │  └─ digest v0.10.7 
│  │  ├─ cpufeatures v0.2.11
│  │  └─ password-hash v0.5.0
│  │     ├─ base64ct v1.6.0
│  │     ├─ rand_core v0.6.4 
│  │     └─ subtle v2.5.0
│  ├─ async-trait v0.1.80 (proc-macro) 
│  ├─ axum v0.7.5 
│  ├─ axum-extra v0.9.3 
│  ├─ bincode v1.3.3
│  │  └─ serde v1.0.199 
│  ├─ chrono v0.4.31 
│  ├─ fs_extra v1.3.0
│  ├─ futures v0.3.28 
│  ├─ gitlab v0.1610.0
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ base64 v0.13.1
│  │  ├─ bytes v1.5.0
│  │  ├─ chrono v0.4.31 
│  │  ├─ cron v0.12.1 
│  │  ├─ derive_builder v0.11.2
│  │  │  └─ derive_builder_macro v0.11.2 (proc-macro)
│  │  │     ├─ derive_builder_core v0.11.2
│  │  │     │  ├─ darling v0.14.4 
│  │  │     │  ├─ proc-macro2 v1.0.78 
│  │  │     │  ├─ quote v1.0.35 
│  │  │     │  └─ syn v1.0.109 
│  │  │     └─ syn v1.0.109 
│  │  ├─ futures-util v0.3.29 
│  │  ├─ graphql_client v0.11.0
│  │  │  ├─ graphql_query_derive v0.11.0 (proc-macro)
│  │  │  │  ├─ graphql_client_codegen v0.11.0
│  │  │  │  │  ├─ graphql-introspection-query v0.2.0
│  │  │  │  │  │  └─ serde v1.0.199 
│  │  │  │  │  ├─ graphql-parser v0.4.0
│  │  │  │  │  │  ├─ combine v3.8.1
│  │  │  │  │  │  │  ├─ ascii v0.9.3
│  │  │  │  │  │  │  ├─ byteorder v1.4.3
│  │  │  │  │  │  │  ├─ either v1.11.0 
│  │  │  │  │  │  │  ├─ memchr v2.7.2
│  │  │  │  │  │  │  └─ unreachable v1.0.0
│  │  │  │  │  │  │     └─ void v1.0.2
│  │  │  │  │  │  └─ thiserror v1.0.59 
│  │  │  │  │  ├─ heck v0.4.1 
│  │  │  │  │  ├─ lazy_static v1.4.0
│  │  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  │  ├─ quote v1.0.35 
│  │  │  │  │  ├─ serde v1.0.199 
│  │  │  │  │  ├─ serde_json v1.0.116 
│  │  │  │  │  └─ syn v1.0.109 
│  │  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  │  └─ syn v1.0.109 
│  │  │  ├─ serde v1.0.199 
│  │  │  └─ serde_json v1.0.116 
│  │  ├─ http v0.2.11 
│  │  ├─ itertools v0.10.5
│  │  │  └─ either v1.11.0 
│  │  ├─ log v0.4.20
│  │  ├─ percent-encoding v2.3.1
│  │  ├─ reqwest v0.11.22
│  │  │  ├─ base64 v0.21.5
│  │  │  ├─ bytes v1.5.0
│  │  │  ├─ encoding_rs v0.8.32 
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-util v0.3.29 
│  │  │  ├─ h2 v0.3.19 
│  │  │  ├─ http v0.2.11 
│  │  │  ├─ http-body v0.4.5 
│  │  │  ├─ hyper v0.14.27 
│  │  │  ├─ hyper-rustls v0.24.2
│  │  │  │  ├─ futures-util v0.3.29 
│  │  │  │  ├─ http v0.2.11 
│  │  │  │  ├─ hyper v0.14.27 
│  │  │  │  ├─ rustls v0.21.10 
│  │  │  │  ├─ tokio v1.35.0 
│  │  │  │  └─ tokio-rustls v0.24.1
│  │  │  │     ├─ rustls v0.21.10 
│  │  │  │     └─ tokio v1.35.0 
│  │  │  ├─ ipnet v2.7.2
│  │  │  ├─ log v0.4.20
│  │  │  ├─ mime v0.3.17
│  │  │  ├─ once_cell v1.19.0
│  │  │  ├─ percent-encoding v2.3.1
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ rustls v0.21.10 
│  │  │  ├─ rustls-pemfile v1.0.4 
│  │  │  ├─ serde v1.0.199 
│  │  │  ├─ serde_json v1.0.116 
│  │  │  ├─ serde_urlencoded v0.7.1 
│  │  │  ├─ tokio v1.35.0 
│  │  │  ├─ tokio-rustls v0.24.1 
│  │  │  ├─ tower-service v0.3.2
│  │  │  ├─ url v2.5.0 
│  │  │  └─ webpki-roots v0.25.4
│  │  ├─ serde v1.0.199 
│  │  ├─ serde_json v1.0.116 
│  │  ├─ serde_urlencoded v0.7.1 
│  │  ├─ thiserror v1.0.59 
│  │  └─ url v2.5.0 
│  ├─ hyper v1.3.1 
│  ├─ jsonwebtoken v9.1.0
│  │  ├─ base64 v0.21.5
│  │  ├─ pem v3.0.2
│  │  │  └─ base64 v0.21.5
│  │  ├─ ring v0.17.5 
│  │  ├─ serde v1.0.199 
│  │  ├─ serde_json v1.0.116 
│  │  └─ simple_asn1 v0.6.2
│  │     ├─ num-bigint v0.4.4
│  │     │  ├─ num-integer v0.1.45
│  │     │  │  ├─ num-traits v0.2.17 
│  │     │  │  └─ autocfg v1.1.0
│  │     │  ├─ num-traits v0.2.17 
│  │     │  └─ autocfg v1.1.0
│  │     ├─ num-traits v0.2.17 
│  │     ├─ thiserror v1.0.59 
│  │     └─ time v0.3.36 
│  ├─ juniper v0.16.1
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ auto_enums v0.8.5 (proc-macro) 
│  │  ├─ chrono v0.4.31 
│  │  ├─ fnv v1.0.7
│  │  ├─ futures v0.3.28 
│  │  ├─ indexmap v2.2.6 
│  │  ├─ juniper_codegen v0.16.0 (proc-macro)
│  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  ├─ quote v1.0.35 
│  │  │  ├─ syn v2.0.52 
│  │  │  └─ url v2.5.0 
│  │  ├─ serde v1.0.199 
│  │  ├─ smartstring v1.0.1
│  │  │  ├─ static_assertions v1.1.0
│  │  │  ├─ autocfg v1.1.0
│  │  │  └─ version_check v0.9.4
│  │  └─ static_assertions v1.1.0
│  ├─ juniper_axum v0.1.0
│  │  ├─ axum v0.7.5 
│  │  ├─ bytes v1.5.0
│  │  ├─ juniper v0.16.1 
│  │  ├─ juniper_graphql_ws v0.4.0
│  │  │  ├─ juniper v0.16.1 
│  │  │  ├─ juniper_subscriptions v0.17.0
│  │  │  │  ├─ futures v0.3.28 
│  │  │  │  └─ juniper v0.16.1 
│  │  │  ├─ serde v1.0.199 
│  │  │  └─ tokio v1.35.0 
│  │  ├─ serde v1.0.199 
│  │  └─ serde_json v1.0.116 
│  ├─ juniper_graphql_ws v0.4.0 
│  ├─ lazy_static v1.4.0
│  ├─ lettre v0.11.3
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ base64 v0.21.5
│  │  ├─ chumsky v0.9.3
│  │  │  ├─ hashbrown v0.14.3 
│  │  │  └─ stacker v0.1.15
│  │  │     ├─ cfg-if v1.0.0
│  │  │     ├─ libc v0.2.154
│  │  │     ├─ psm v0.1.21
│  │  │     │  └─ cc v1.0.83 
│  │  │     └─ cc v1.0.83 
│  │  ├─ email-encoding v0.2.0
│  │  │  ├─ base64 v0.21.5
│  │  │  └─ memchr v2.7.2
│  │  ├─ email_address v0.2.4
│  │  ├─ fastrand v2.0.1
│  │  ├─ futures-io v0.3.29
│  │  ├─ futures-util v0.3.29 
│  │  ├─ hostname v0.3.1
│  │  │  ├─ libc v0.2.154
│  │  │  └─ match_cfg v0.1.0
│  │  ├─ httpdate v1.0.2
│  │  ├─ idna v0.5.0 
│  │  ├─ mime v0.3.17
│  │  ├─ native-tls v0.2.11 
│  │  ├─ nom v7.1.3 
│  │  ├─ quoted_printable v0.5.0
│  │  ├─ socket2 v0.5.5 
│  │  ├─ tokio v1.35.0 
│  │  ├─ tokio-native-tls v0.3.1 
│  │  └─ url v2.5.0 
│  ├─ mime_guess v2.0.4 
│  ├─ octocrab v0.38.0
│  │  ├─ arc-swap v1.6.0
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ base64 v0.22.0
│  │  ├─ bytes v1.5.0
│  │  ├─ cfg-if v1.0.0
│  │  ├─ chrono v0.4.31 
│  │  ├─ either v1.11.0 
│  │  ├─ futures v0.3.28 
│  │  ├─ futures-util v0.3.29 
│  │  ├─ http v1.1.0 
│  │  ├─ http-body v1.0.0 
│  │  ├─ http-body-util v0.1.1 
│  │  ├─ hyper v1.3.1 
│  │  ├─ hyper-rustls v0.26.0 
│  │  ├─ hyper-timeout v0.5.1
│  │  │  ├─ hyper v1.3.1 
│  │  │  ├─ hyper-util v0.1.3 
│  │  │  ├─ pin-project-lite v0.2.13
│  │  │  ├─ tokio v1.35.0 
│  │  │  └─ tower-service v0.3.2
│  │  ├─ hyper-util v0.1.3 
│  │  ├─ jsonwebtoken v9.1.0 
│  │  ├─ once_cell v1.19.0
│  │  ├─ percent-encoding v2.3.1
│  │  ├─ pin-project v1.1.3 
│  │  ├─ secrecy v0.8.0 
│  │  ├─ serde v1.0.199 
│  │  ├─ serde_json v1.0.116 
│  │  ├─ serde_path_to_error v0.1.11 
│  │  ├─ serde_urlencoded v0.7.1 
│  │  ├─ snafu v0.8.2
│  │  │  └─ snafu-derive v0.8.2 (proc-macro)
│  │  │     ├─ heck v0.4.1 
│  │  │     ├─ proc-macro2 v1.0.78 
│  │  │     ├─ quote v1.0.35 
│  │  │     └─ syn v2.0.52 
│  │  ├─ tokio v1.35.0 
│  │  ├─ tower v0.4.13 
│  │  ├─ tower-http v0.5.2 
│  │  ├─ tracing v0.1.37 
│  │  └─ url v2.5.0 
│  ├─ pin-project v1.1.3 
│  ├─ querystring v1.1.0
│  ├─ reqwest v0.12.4 
│  ├─ rust-embed v8.0.0
│  │  ├─ rust-embed-impl v8.0.0 (proc-macro)
│  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  ├─ quote v1.0.35 
│  │  │  ├─ rust-embed-utils v8.0.0
│  │  │  │  ├─ sha2 v0.10.8 
│  │  │  │  └─ walkdir v2.5.0 
│  │  │  ├─ syn v2.0.52 
│  │  │  └─ walkdir v2.5.0 
│  │  ├─ rust-embed-utils v8.0.0 
│  │  └─ walkdir v2.5.0 
│  ├─ serde v1.0.199 
│  ├─ serde_json v1.0.116 
│  ├─ tabby-common v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-common) 
│  ├─ tabby-db v0.12.0-dev.0 (/home/runner/work/tabby/tabby/ee/tabby-db)
│  │  ├─ anyhow v1.0.83
│  │  ├─ cached v0.49.3 
│  │  ├─ chrono v0.4.31 
│  │  ├─ hash-ids v0.2.1
│  │  ├─ lazy_static v1.4.0
│  │  ├─ sql_query_builder v2.1.0
│  │  ├─ sqlx v0.7.4 
│  │  ├─ tabby-db-macros v0.12.0-dev.0 (proc-macro) (/home/runner/work/tabby/tabby/ee/tabby-db-macros)
│  │  │  ├─ quote v1.0.35 
│  │  │  └─ syn v2.0.52 
│  │  ├─ tokio v1.35.0 
│  │  └─ uuid v1.6.1 
│  ├─ tabby-scheduler v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-scheduler) 
│  ├─ tabby-schema v0.12.0-dev.0 (/home/runner/work/tabby/tabby/ee/tabby-schema)
│  │  ├─ anyhow v1.0.83
│  │  ├─ async-trait v0.1.80 (proc-macro) 
│  │  ├─ axum v0.7.5 
│  │  ├─ base64 v0.22.0
│  │  ├─ chrono v0.4.31 
│  │  ├─ futures v0.3.28 
│  │  ├─ hash-ids v0.2.1
│  │  ├─ juniper v0.16.1 
│  │  ├─ lazy_static v1.4.0
│  │  ├─ regex v1.10.4 
│  │  ├─ serde v1.0.199 
│  │  ├─ strum v0.24.1 
│  │  ├─ tabby-common v0.12.0-dev.0 (/home/runner/work/tabby/tabby/crates/tabby-common) 
│  │  ├─ tabby-db v0.12.0-dev.0 (/home/runner/work/tabby/tabby/ee/tabby-db) 
│  │  ├─ thiserror v1.0.59 
│  │  ├─ tokio v1.35.0 
│  │  ├─ tracing v0.1.37 
│  │  └─ validator v0.16.1
│  │     ├─ idna v0.4.0
│  │     │  ├─ unicode-bidi v0.3.13
│  │     │  └─ unicode-normalization v0.1.22 
│  │     ├─ lazy_static v1.4.0
│  │     ├─ regex v1.10.4 
│  │     ├─ serde v1.0.199 
│  │     ├─ serde_derive v1.0.199 (proc-macro) 
│  │     ├─ serde_json v1.0.116 
│  │     ├─ url v2.5.0 
│  │     └─ validator_derive v0.16.0 (proc-macro)
│  │        ├─ if_chain v1.0.2
│  │        ├─ lazy_static v1.4.0
│  │        ├─ proc-macro-error v1.0.4 
│  │        ├─ proc-macro2 v1.0.78 
│  │        ├─ quote v1.0.35 
│  │        ├─ regex v1.10.4 
│  │        ├─ syn v1.0.109 
│  │        └─ validator_types v0.16.0
│  │           ├─ proc-macro2 v1.0.78 
│  │           └─ syn v1.0.109 
│  ├─ tabby-search v0.12.0-dev.0 (/home/runner/work/tabby/tabby/ee/tabby-search)
│  │  ├─ anyhow v1.0.83
│  │  ├─ git2 v0.18.3 
│  │  ├─ nucleo v0.5.0
│  │  │  ├─ nucleo-matcher v0.3.1
│  │  │  │  ├─ memchr v2.7.2
│  │  │  │  └─ unicode-segmentation v1.11.0
│  │  │  ├─ parking_lot v0.12.1 
│  │  │  └─ rayon v1.10.0 
│  │  └─ temp_testdir v0.2.3
│  ├─ tarpc v0.33.0
│  │  ├─ anyhow v1.0.83
│  │  ├─ fnv v1.0.7
│  │  ├─ futures v0.3.28 
│  │  ├─ humantime v2.1.0
│  │  ├─ opentelemetry v0.18.0
│  │  │  ├─ opentelemetry_api v0.18.0
│  │  │  │  ├─ futures-channel v0.3.29 
│  │  │  │  ├─ futures-util v0.3.29 
│  │  │  │  ├─ indexmap v1.9.3 
│  │  │  │  ├─ once_cell v1.19.0
│  │  │  │  ├─ pin-project-lite v0.2.13
│  │  │  │  └─ thiserror v1.0.59 
│  │  │  └─ opentelemetry_sdk v0.18.0
│  │  │     ├─ async-trait v0.1.80 (proc-macro) 
│  │  │     ├─ crossbeam-channel v0.5.8 
│  │  │     ├─ futures-channel v0.3.29 
│  │  │     ├─ futures-executor v0.3.28 
│  │  │     ├─ futures-util v0.3.29 
│  │  │     ├─ once_cell v1.19.0
│  │  │     ├─ opentelemetry_api v0.18.0 
│  │  │     ├─ percent-encoding v2.3.1
│  │  │     ├─ rand v0.8.5 
│  │  │     └─ thiserror v1.0.59 
│  │  ├─ pin-project v1.1.3 
│  │  ├─ rand v0.8.5 
│  │  ├─ serde v1.0.199 
│  │  ├─ static_assertions v1.1.0
│  │  ├─ tarpc-plugins v0.12.0 (proc-macro)
│  │  │  ├─ proc-macro2 v1.0.78 
│  │  │  ├─ quote v1.0.35 
│  │  │  └─ syn v1.0.109 
│  │  ├─ thiserror v1.0.59 
│  │  ├─ tokio v1.35.0 
│  │  ├─ tokio-serde v0.8.0
│  │  │  ├─ bytes v1.5.0
│  │  │  ├─ futures-core v0.3.29
│  │  │  ├─ futures-sink v0.3.29
│  │  │  └─ pin-project v1.1.3 
│  │  ├─ tokio-util v0.7.10 
│  │  ├─ tracing v0.1.37 
│  │  └─ tracing-opentelemetry v0.18.0
│  │     ├─ once_cell v1.19.0
│  │     ├─ opentelemetry v0.18.0 
│  │     ├─ tracing v0.1.37 
│  │     ├─ tracing-core v0.1.31 
│  │     └─ tracing-subscriber v0.3.17 
│  ├─ thiserror v1.0.59 
│  ├─ tokio v1.35.0 
│  ├─ tokio-tungstenite v0.21.0 
│  ├─ tower v0.4.13 
│  ├─ tower-http v0.5.2 
│  ├─ tracing v0.1.37 
│  ├─ url v2.5.0 
│  ├─ urlencoding v2.1.3
│  └─ uuid v1.6.1 
├─ tantivy v0.22.0 
├─ textdistance v1.0.2
├─ thiserror v1.0.59 
├─ tokio v1.35.0 
├─ tower-http v0.5.2 
├─ tracing v0.1.37 
├─ tracing-subscriber v0.3.17 
├─ utoipa v4.2.0 
├─ utoipa-swagger-ui v6.0.0
│  ├─ axum v0.7.5 
│  ├─ mime_guess v2.0.4 
│  ├─ rust-embed v8.0.0 
│  ├─ serde v1.0.199 
│  ├─ serde_json v1.0.116 
│  ├─ utoipa v4.2.0 
│  ├─ regex v1.10.4 
│  └─ zip v0.6.6
│     ├─ byteorder v1.4.3
│     ├─ crc32fast v1.3.2 
│     └─ flate2 v1.0.26
│        ├─ crc32fast v1.3.2 
│        └─ miniz_oxide v0.7.1
│           └─ adler v1.0.2
├─ uuid v1.6.1 
└─ vergen v8.2.4
   ├─ anyhow v1.0.83
   ├─ time v0.3.36 
   └─ rustversion v1.0.14 (proc-macro)

Commit: 2efde54 (Compare with baseline commit)

@boxbeam
Copy link
Collaborator Author

boxbeam commented May 15, 2024

Todo in follow-up PRs:

  • Delete old code:
    • Old database code
    • Old service code
    • Old background job code
  • Write unit tests
  • Add support for self-hosted GitHub / GitLab
  • Rename integration_access_tokens to integrations
  • Change synced_at to synced, a boolean which is set to false whenever the token is created / updated
  • Migrate repositories as well as tokens
  • (Eventually) Merge GraphQL endpoints

@boxbeam boxbeam changed the title draft: begin implementing integration / third party repository service feat(webserver, db): refactor gitlab and github integrations into unified integration / third party repository services May 16, 2024
@boxbeam
Copy link
Collaborator Author

boxbeam commented May 16, 2024

Big PR, but nearly all of the "added" code is just copied from other locations. This includes all of the database code and service code, with minor tweaks to differentiate kinds.

@@ -1,3 +1,3 @@
[submodule "crates/llama-cpp-bindings/llama.cpp"]
[submodule "crates/llama-cpp-server/llama.cpp"]
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to be a bug introduced by a previous PR? Tests were failing until making this change

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did rebase against main

@boxbeam boxbeam marked this pull request as ready for review May 16, 2024 21:25
ee/tabby-db/migrations/0029_merged-provider-tables.up.sql Outdated Show resolved Hide resolved
ee/tabby-schema/graphql/schema.graphql Outdated Show resolved Hide resolved
ee/tabby-schema/src/dao.rs Outdated Show resolved Hide resolved
ee/tabby-schema/src/schema/mod.rs Outdated Show resolved Hide resolved
Comment on lines 102 to 103
fn github(&self) -> Arc<dyn GithubRepositoryService>;
fn gitlab(&self) -> Arc<dyn GitlabRepositoryService>;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
fn github(&self) -> Arc<dyn GithubRepositoryService>;
fn gitlab(&self) -> Arc<dyn GitlabRepositoryService>;

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing this code in follow-up pr

ee/tabby-schema/src/schema/repository/third_party.rs Outdated Show resolved Hide resolved
ee/tabby-webserver/src/service/repository/mod.rs Outdated Show resolved Hide resolved
@boxbeam boxbeam requested a review from wsxiaoys May 17, 2024 18:28
@boxbeam boxbeam enabled auto-merge (squash) May 17, 2024 18:44
@boxbeam boxbeam merged commit 39175ae into main May 17, 2024
7 of 9 checks passed
@boxbeam boxbeam deleted the provider-service branch May 17, 2024 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants