├── .github └── workflows │ └── ci.yaml ├── .gitignore ├── CHANGELOG.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── src ├── config.rs ├── git_integration.rs ├── install.rs ├── lib.rs ├── llm │ ├── mod.rs │ └── openai.rs ├── main.rs └── uninstall.rs └── tests ├── test_config.rs ├── test_install.rs ├── test_llm_openai.rs └── test_uninstall.rs /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | build_and_test: 10 | name: Build and Test 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout code 14 | uses: actions/checkout@v3 15 | 16 | - name: Set up Rust 17 | uses: actions-rs/toolchain@v1 18 | with: 19 | toolchain: stable 20 | profile: minimal 21 | override: true 22 | 23 | - name: Build 24 | run: cargo build --release --verbose 25 | 26 | - name: Run tests 27 | run: cargo test --verbose 28 | 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | 3 | Cargo.lock 4 | 5 | Config.toml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.1.0 2 | 3 | - Initial release 4 | 5 | ## v0.1.1 6 | 7 | - fix: Updated write_config_to_toml function to return a Result to handle potential errors in file writing operations 8 | 9 | ## v0.1.2 10 | 11 | - chore: Use environment variables for version and author information in CLI arguments 12 | 13 | ## v0.1.3 14 | 15 | fix: Counld not move prompt.toml [issue #1](https://github.com/yzzting/commit_crafter/issues/1) 16 | 17 | ## v0.1.4 18 | 19 | feat: update default OpenAI model to gpt-4o-mini in configuration 20 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "addr2line" 7 | version = "0.21.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "anstream" 22 | version = "0.6.13" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" 25 | dependencies = [ 26 | "anstyle", 27 | "anstyle-parse", 28 | "anstyle-query", 29 | "anstyle-wincon", 30 | "colorchoice", 31 | "utf8parse", 32 | ] 33 | 34 | [[package]] 35 | name = "anstyle" 36 | version = "1.0.6" 37 | source = "registry+https://github.com/rust-lang/crates.io-index" 38 | checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" 39 | 40 | [[package]] 41 | name = "anstyle-parse" 42 | version = "0.2.3" 43 | source = "registry+https://github.com/rust-lang/crates.io-index" 44 | checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" 45 | dependencies = [ 46 | "utf8parse", 47 | ] 48 | 49 | [[package]] 50 | name = "anstyle-query" 51 | version = "1.0.2" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" 54 | dependencies = [ 55 | "windows-sys 0.52.0", 56 | ] 57 | 58 | [[package]] 59 | name = "anstyle-wincon" 60 | version = "3.0.2" 61 | source = "registry+https://github.com/rust-lang/crates.io-index" 62 | checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" 63 | dependencies = [ 64 | "anstyle", 65 | "windows-sys 0.52.0", 66 | ] 67 | 68 | [[package]] 69 | name = "autocfg" 70 | version = "1.2.0" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" 73 | 74 | [[package]] 75 | name = "backtrace" 76 | version = "0.3.71" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" 79 | dependencies = [ 80 | "addr2line", 81 | "cc", 82 | "cfg-if", 83 | "libc", 84 | "miniz_oxide", 85 | "object", 86 | "rustc-demangle", 87 | ] 88 | 89 | [[package]] 90 | name = "base64" 91 | version = "0.22.0" 92 | source = "registry+https://github.com/rust-lang/crates.io-index" 93 | checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" 94 | 95 | [[package]] 96 | name = "bitflags" 97 | version = "1.3.2" 98 | source = "registry+https://github.com/rust-lang/crates.io-index" 99 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 100 | 101 | [[package]] 102 | name = "bitflags" 103 | version = "2.5.0" 104 | source = "registry+https://github.com/rust-lang/crates.io-index" 105 | checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" 106 | 107 | [[package]] 108 | name = "bumpalo" 109 | version = "3.16.0" 110 | source = "registry+https://github.com/rust-lang/crates.io-index" 111 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 112 | 113 | [[package]] 114 | name = "bytes" 115 | version = "1.6.0" 116 | source = "registry+https://github.com/rust-lang/crates.io-index" 117 | checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" 118 | 119 | [[package]] 120 | name = "cc" 121 | version = "1.0.95" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" 124 | 125 | [[package]] 126 | name = "cfg-if" 127 | version = "1.0.0" 128 | source = "registry+https://github.com/rust-lang/crates.io-index" 129 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 130 | 131 | [[package]] 132 | name = "clap" 133 | version = "4.5.4" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" 136 | dependencies = [ 137 | "clap_builder", 138 | "clap_derive", 139 | ] 140 | 141 | [[package]] 142 | name = "clap_builder" 143 | version = "4.5.2" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" 146 | dependencies = [ 147 | "anstream", 148 | "anstyle", 149 | "clap_lex", 150 | "strsim", 151 | ] 152 | 153 | [[package]] 154 | name = "clap_derive" 155 | version = "4.5.4" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" 158 | dependencies = [ 159 | "heck", 160 | "proc-macro2", 161 | "quote", 162 | "syn", 163 | ] 164 | 165 | [[package]] 166 | name = "clap_lex" 167 | version = "0.7.0" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" 170 | 171 | [[package]] 172 | name = "colorchoice" 173 | version = "1.0.0" 174 | source = "registry+https://github.com/rust-lang/crates.io-index" 175 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 176 | 177 | [[package]] 178 | name = "commit_crafter" 179 | version = "0.1.5" 180 | dependencies = [ 181 | "clap", 182 | "reqwest", 183 | "serde", 184 | "serde_json", 185 | "tempfile", 186 | "tokio", 187 | "toml", 188 | ] 189 | 190 | [[package]] 191 | name = "core-foundation" 192 | version = "0.9.4" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 195 | dependencies = [ 196 | "core-foundation-sys", 197 | "libc", 198 | ] 199 | 200 | [[package]] 201 | name = "core-foundation-sys" 202 | version = "0.8.6" 203 | source = "registry+https://github.com/rust-lang/crates.io-index" 204 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 205 | 206 | [[package]] 207 | name = "encoding_rs" 208 | version = "0.8.34" 209 | source = "registry+https://github.com/rust-lang/crates.io-index" 210 | checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" 211 | dependencies = [ 212 | "cfg-if", 213 | ] 214 | 215 | [[package]] 216 | name = "equivalent" 217 | version = "1.0.1" 218 | source = "registry+https://github.com/rust-lang/crates.io-index" 219 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 220 | 221 | [[package]] 222 | name = "errno" 223 | version = "0.3.8" 224 | source = "registry+https://github.com/rust-lang/crates.io-index" 225 | checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 226 | dependencies = [ 227 | "libc", 228 | "windows-sys 0.52.0", 229 | ] 230 | 231 | [[package]] 232 | name = "fastrand" 233 | version = "2.0.2" 234 | source = "registry+https://github.com/rust-lang/crates.io-index" 235 | checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" 236 | 237 | [[package]] 238 | name = "fnv" 239 | version = "1.0.7" 240 | source = "registry+https://github.com/rust-lang/crates.io-index" 241 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 242 | 243 | [[package]] 244 | name = "foreign-types" 245 | version = "0.3.2" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 248 | dependencies = [ 249 | "foreign-types-shared", 250 | ] 251 | 252 | [[package]] 253 | name = "foreign-types-shared" 254 | version = "0.1.1" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 257 | 258 | [[package]] 259 | name = "form_urlencoded" 260 | version = "1.2.1" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 263 | dependencies = [ 264 | "percent-encoding", 265 | ] 266 | 267 | [[package]] 268 | name = "futures-channel" 269 | version = "0.3.30" 270 | source = "registry+https://github.com/rust-lang/crates.io-index" 271 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 272 | dependencies = [ 273 | "futures-core", 274 | "futures-sink", 275 | ] 276 | 277 | [[package]] 278 | name = "futures-core" 279 | version = "0.3.30" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 282 | 283 | [[package]] 284 | name = "futures-io" 285 | version = "0.3.30" 286 | source = "registry+https://github.com/rust-lang/crates.io-index" 287 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 288 | 289 | [[package]] 290 | name = "futures-sink" 291 | version = "0.3.30" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 294 | 295 | [[package]] 296 | name = "futures-task" 297 | version = "0.3.30" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 300 | 301 | [[package]] 302 | name = "futures-util" 303 | version = "0.3.30" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 306 | dependencies = [ 307 | "futures-core", 308 | "futures-io", 309 | "futures-sink", 310 | "futures-task", 311 | "memchr", 312 | "pin-project-lite", 313 | "pin-utils", 314 | "slab", 315 | ] 316 | 317 | [[package]] 318 | name = "gimli" 319 | version = "0.28.1" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 322 | 323 | [[package]] 324 | name = "h2" 325 | version = "0.4.4" 326 | source = "registry+https://github.com/rust-lang/crates.io-index" 327 | checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069" 328 | dependencies = [ 329 | "bytes", 330 | "fnv", 331 | "futures-core", 332 | "futures-sink", 333 | "futures-util", 334 | "http", 335 | "indexmap", 336 | "slab", 337 | "tokio", 338 | "tokio-util", 339 | "tracing", 340 | ] 341 | 342 | [[package]] 343 | name = "hashbrown" 344 | version = "0.14.3" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 347 | 348 | [[package]] 349 | name = "heck" 350 | version = "0.5.0" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 353 | 354 | [[package]] 355 | name = "hermit-abi" 356 | version = "0.3.9" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 359 | 360 | [[package]] 361 | name = "http" 362 | version = "1.1.0" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" 365 | dependencies = [ 366 | "bytes", 367 | "fnv", 368 | "itoa", 369 | ] 370 | 371 | [[package]] 372 | name = "http-body" 373 | version = "1.0.0" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" 376 | dependencies = [ 377 | "bytes", 378 | "http", 379 | ] 380 | 381 | [[package]] 382 | name = "http-body-util" 383 | version = "0.1.1" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" 386 | dependencies = [ 387 | "bytes", 388 | "futures-core", 389 | "http", 390 | "http-body", 391 | "pin-project-lite", 392 | ] 393 | 394 | [[package]] 395 | name = "httparse" 396 | version = "1.8.0" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 399 | 400 | [[package]] 401 | name = "hyper" 402 | version = "1.3.1" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" 405 | dependencies = [ 406 | "bytes", 407 | "futures-channel", 408 | "futures-util", 409 | "h2", 410 | "http", 411 | "http-body", 412 | "httparse", 413 | "itoa", 414 | "pin-project-lite", 415 | "smallvec", 416 | "tokio", 417 | "want", 418 | ] 419 | 420 | [[package]] 421 | name = "hyper-tls" 422 | version = "0.6.0" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 425 | dependencies = [ 426 | "bytes", 427 | "http-body-util", 428 | "hyper", 429 | "hyper-util", 430 | "native-tls", 431 | "tokio", 432 | "tokio-native-tls", 433 | "tower-service", 434 | ] 435 | 436 | [[package]] 437 | name = "hyper-util" 438 | version = "0.1.3" 439 | source = "registry+https://github.com/rust-lang/crates.io-index" 440 | checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" 441 | dependencies = [ 442 | "bytes", 443 | "futures-channel", 444 | "futures-util", 445 | "http", 446 | "http-body", 447 | "hyper", 448 | "pin-project-lite", 449 | "socket2", 450 | "tokio", 451 | "tower", 452 | "tower-service", 453 | "tracing", 454 | ] 455 | 456 | [[package]] 457 | name = "idna" 458 | version = "0.5.0" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 461 | dependencies = [ 462 | "unicode-bidi", 463 | "unicode-normalization", 464 | ] 465 | 466 | [[package]] 467 | name = "indexmap" 468 | version = "2.2.6" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" 471 | dependencies = [ 472 | "equivalent", 473 | "hashbrown", 474 | ] 475 | 476 | [[package]] 477 | name = "ipnet" 478 | version = "2.9.0" 479 | source = "registry+https://github.com/rust-lang/crates.io-index" 480 | checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" 481 | 482 | [[package]] 483 | name = "itoa" 484 | version = "1.0.11" 485 | source = "registry+https://github.com/rust-lang/crates.io-index" 486 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 487 | 488 | [[package]] 489 | name = "js-sys" 490 | version = "0.3.69" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" 493 | dependencies = [ 494 | "wasm-bindgen", 495 | ] 496 | 497 | [[package]] 498 | name = "lazy_static" 499 | version = "1.4.0" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 502 | 503 | [[package]] 504 | name = "libc" 505 | version = "0.2.153" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" 508 | 509 | [[package]] 510 | name = "linux-raw-sys" 511 | version = "0.4.13" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" 514 | 515 | [[package]] 516 | name = "lock_api" 517 | version = "0.4.11" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 520 | dependencies = [ 521 | "autocfg", 522 | "scopeguard", 523 | ] 524 | 525 | [[package]] 526 | name = "log" 527 | version = "0.4.21" 528 | source = "registry+https://github.com/rust-lang/crates.io-index" 529 | checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" 530 | 531 | [[package]] 532 | name = "memchr" 533 | version = "2.7.2" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" 536 | 537 | [[package]] 538 | name = "mime" 539 | version = "0.3.17" 540 | source = "registry+https://github.com/rust-lang/crates.io-index" 541 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 542 | 543 | [[package]] 544 | name = "miniz_oxide" 545 | version = "0.7.2" 546 | source = "registry+https://github.com/rust-lang/crates.io-index" 547 | checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" 548 | dependencies = [ 549 | "adler", 550 | ] 551 | 552 | [[package]] 553 | name = "mio" 554 | version = "0.8.11" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" 557 | dependencies = [ 558 | "libc", 559 | "wasi", 560 | "windows-sys 0.48.0", 561 | ] 562 | 563 | [[package]] 564 | name = "native-tls" 565 | version = "0.2.11" 566 | source = "registry+https://github.com/rust-lang/crates.io-index" 567 | checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" 568 | dependencies = [ 569 | "lazy_static", 570 | "libc", 571 | "log", 572 | "openssl", 573 | "openssl-probe", 574 | "openssl-sys", 575 | "schannel", 576 | "security-framework", 577 | "security-framework-sys", 578 | "tempfile", 579 | ] 580 | 581 | [[package]] 582 | name = "num_cpus" 583 | version = "1.16.0" 584 | source = "registry+https://github.com/rust-lang/crates.io-index" 585 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 586 | dependencies = [ 587 | "hermit-abi", 588 | "libc", 589 | ] 590 | 591 | [[package]] 592 | name = "object" 593 | version = "0.32.2" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 596 | dependencies = [ 597 | "memchr", 598 | ] 599 | 600 | [[package]] 601 | name = "once_cell" 602 | version = "1.19.0" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 605 | 606 | [[package]] 607 | name = "openssl" 608 | version = "0.10.64" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" 611 | dependencies = [ 612 | "bitflags 2.5.0", 613 | "cfg-if", 614 | "foreign-types", 615 | "libc", 616 | "once_cell", 617 | "openssl-macros", 618 | "openssl-sys", 619 | ] 620 | 621 | [[package]] 622 | name = "openssl-macros" 623 | version = "0.1.1" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 626 | dependencies = [ 627 | "proc-macro2", 628 | "quote", 629 | "syn", 630 | ] 631 | 632 | [[package]] 633 | name = "openssl-probe" 634 | version = "0.1.5" 635 | source = "registry+https://github.com/rust-lang/crates.io-index" 636 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 637 | 638 | [[package]] 639 | name = "openssl-sys" 640 | version = "0.9.102" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" 643 | dependencies = [ 644 | "cc", 645 | "libc", 646 | "pkg-config", 647 | "vcpkg", 648 | ] 649 | 650 | [[package]] 651 | name = "parking_lot" 652 | version = "0.12.1" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 655 | dependencies = [ 656 | "lock_api", 657 | "parking_lot_core", 658 | ] 659 | 660 | [[package]] 661 | name = "parking_lot_core" 662 | version = "0.9.9" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" 665 | dependencies = [ 666 | "cfg-if", 667 | "libc", 668 | "redox_syscall", 669 | "smallvec", 670 | "windows-targets 0.48.5", 671 | ] 672 | 673 | [[package]] 674 | name = "percent-encoding" 675 | version = "2.3.1" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 678 | 679 | [[package]] 680 | name = "pin-project" 681 | version = "1.1.5" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" 684 | dependencies = [ 685 | "pin-project-internal", 686 | ] 687 | 688 | [[package]] 689 | name = "pin-project-internal" 690 | version = "1.1.5" 691 | source = "registry+https://github.com/rust-lang/crates.io-index" 692 | checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" 693 | dependencies = [ 694 | "proc-macro2", 695 | "quote", 696 | "syn", 697 | ] 698 | 699 | [[package]] 700 | name = "pin-project-lite" 701 | version = "0.2.14" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 704 | 705 | [[package]] 706 | name = "pin-utils" 707 | version = "0.1.0" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 710 | 711 | [[package]] 712 | name = "pkg-config" 713 | version = "0.3.30" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 716 | 717 | [[package]] 718 | name = "proc-macro2" 719 | version = "1.0.81" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" 722 | dependencies = [ 723 | "unicode-ident", 724 | ] 725 | 726 | [[package]] 727 | name = "quote" 728 | version = "1.0.36" 729 | source = "registry+https://github.com/rust-lang/crates.io-index" 730 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 731 | dependencies = [ 732 | "proc-macro2", 733 | ] 734 | 735 | [[package]] 736 | name = "redox_syscall" 737 | version = "0.4.1" 738 | source = "registry+https://github.com/rust-lang/crates.io-index" 739 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 740 | dependencies = [ 741 | "bitflags 1.3.2", 742 | ] 743 | 744 | [[package]] 745 | name = "reqwest" 746 | version = "0.12.4" 747 | source = "registry+https://github.com/rust-lang/crates.io-index" 748 | checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" 749 | dependencies = [ 750 | "base64", 751 | "bytes", 752 | "encoding_rs", 753 | "futures-channel", 754 | "futures-core", 755 | "futures-util", 756 | "h2", 757 | "http", 758 | "http-body", 759 | "http-body-util", 760 | "hyper", 761 | "hyper-tls", 762 | "hyper-util", 763 | "ipnet", 764 | "js-sys", 765 | "log", 766 | "mime", 767 | "native-tls", 768 | "once_cell", 769 | "percent-encoding", 770 | "pin-project-lite", 771 | "rustls-pemfile", 772 | "serde", 773 | "serde_json", 774 | "serde_urlencoded", 775 | "sync_wrapper", 776 | "system-configuration", 777 | "tokio", 778 | "tokio-native-tls", 779 | "tower-service", 780 | "url", 781 | "wasm-bindgen", 782 | "wasm-bindgen-futures", 783 | "web-sys", 784 | "winreg", 785 | ] 786 | 787 | [[package]] 788 | name = "rustc-demangle" 789 | version = "0.1.23" 790 | source = "registry+https://github.com/rust-lang/crates.io-index" 791 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 792 | 793 | [[package]] 794 | name = "rustix" 795 | version = "0.38.32" 796 | source = "registry+https://github.com/rust-lang/crates.io-index" 797 | checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" 798 | dependencies = [ 799 | "bitflags 2.5.0", 800 | "errno", 801 | "libc", 802 | "linux-raw-sys", 803 | "windows-sys 0.52.0", 804 | ] 805 | 806 | [[package]] 807 | name = "rustls-pemfile" 808 | version = "2.1.2" 809 | source = "registry+https://github.com/rust-lang/crates.io-index" 810 | checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" 811 | dependencies = [ 812 | "base64", 813 | "rustls-pki-types", 814 | ] 815 | 816 | [[package]] 817 | name = "rustls-pki-types" 818 | version = "1.4.1" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" 821 | 822 | [[package]] 823 | name = "ryu" 824 | version = "1.0.17" 825 | source = "registry+https://github.com/rust-lang/crates.io-index" 826 | checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" 827 | 828 | [[package]] 829 | name = "schannel" 830 | version = "0.1.23" 831 | source = "registry+https://github.com/rust-lang/crates.io-index" 832 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 833 | dependencies = [ 834 | "windows-sys 0.52.0", 835 | ] 836 | 837 | [[package]] 838 | name = "scopeguard" 839 | version = "1.2.0" 840 | source = "registry+https://github.com/rust-lang/crates.io-index" 841 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 842 | 843 | [[package]] 844 | name = "security-framework" 845 | version = "2.10.0" 846 | source = "registry+https://github.com/rust-lang/crates.io-index" 847 | checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" 848 | dependencies = [ 849 | "bitflags 1.3.2", 850 | "core-foundation", 851 | "core-foundation-sys", 852 | "libc", 853 | "security-framework-sys", 854 | ] 855 | 856 | [[package]] 857 | name = "security-framework-sys" 858 | version = "2.10.0" 859 | source = "registry+https://github.com/rust-lang/crates.io-index" 860 | checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" 861 | dependencies = [ 862 | "core-foundation-sys", 863 | "libc", 864 | ] 865 | 866 | [[package]] 867 | name = "serde" 868 | version = "1.0.198" 869 | source = "registry+https://github.com/rust-lang/crates.io-index" 870 | checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" 871 | dependencies = [ 872 | "serde_derive", 873 | ] 874 | 875 | [[package]] 876 | name = "serde_derive" 877 | version = "1.0.198" 878 | source = "registry+https://github.com/rust-lang/crates.io-index" 879 | checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" 880 | dependencies = [ 881 | "proc-macro2", 882 | "quote", 883 | "syn", 884 | ] 885 | 886 | [[package]] 887 | name = "serde_json" 888 | version = "1.0.116" 889 | source = "registry+https://github.com/rust-lang/crates.io-index" 890 | checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" 891 | dependencies = [ 892 | "itoa", 893 | "ryu", 894 | "serde", 895 | ] 896 | 897 | [[package]] 898 | name = "serde_spanned" 899 | version = "0.6.5" 900 | source = "registry+https://github.com/rust-lang/crates.io-index" 901 | checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" 902 | dependencies = [ 903 | "serde", 904 | ] 905 | 906 | [[package]] 907 | name = "serde_urlencoded" 908 | version = "0.7.1" 909 | source = "registry+https://github.com/rust-lang/crates.io-index" 910 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 911 | dependencies = [ 912 | "form_urlencoded", 913 | "itoa", 914 | "ryu", 915 | "serde", 916 | ] 917 | 918 | [[package]] 919 | name = "signal-hook-registry" 920 | version = "1.4.1" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 923 | dependencies = [ 924 | "libc", 925 | ] 926 | 927 | [[package]] 928 | name = "slab" 929 | version = "0.4.9" 930 | source = "registry+https://github.com/rust-lang/crates.io-index" 931 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 932 | dependencies = [ 933 | "autocfg", 934 | ] 935 | 936 | [[package]] 937 | name = "smallvec" 938 | version = "1.13.2" 939 | source = "registry+https://github.com/rust-lang/crates.io-index" 940 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 941 | 942 | [[package]] 943 | name = "socket2" 944 | version = "0.5.6" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" 947 | dependencies = [ 948 | "libc", 949 | "windows-sys 0.52.0", 950 | ] 951 | 952 | [[package]] 953 | name = "strsim" 954 | version = "0.11.1" 955 | source = "registry+https://github.com/rust-lang/crates.io-index" 956 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 957 | 958 | [[package]] 959 | name = "syn" 960 | version = "2.0.60" 961 | source = "registry+https://github.com/rust-lang/crates.io-index" 962 | checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" 963 | dependencies = [ 964 | "proc-macro2", 965 | "quote", 966 | "unicode-ident", 967 | ] 968 | 969 | [[package]] 970 | name = "sync_wrapper" 971 | version = "0.1.2" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 974 | 975 | [[package]] 976 | name = "system-configuration" 977 | version = "0.5.1" 978 | source = "registry+https://github.com/rust-lang/crates.io-index" 979 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 980 | dependencies = [ 981 | "bitflags 1.3.2", 982 | "core-foundation", 983 | "system-configuration-sys", 984 | ] 985 | 986 | [[package]] 987 | name = "system-configuration-sys" 988 | version = "0.5.0" 989 | source = "registry+https://github.com/rust-lang/crates.io-index" 990 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 991 | dependencies = [ 992 | "core-foundation-sys", 993 | "libc", 994 | ] 995 | 996 | [[package]] 997 | name = "tempfile" 998 | version = "3.10.1" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" 1001 | dependencies = [ 1002 | "cfg-if", 1003 | "fastrand", 1004 | "rustix", 1005 | "windows-sys 0.52.0", 1006 | ] 1007 | 1008 | [[package]] 1009 | name = "tinyvec" 1010 | version = "1.6.0" 1011 | source = "registry+https://github.com/rust-lang/crates.io-index" 1012 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1013 | dependencies = [ 1014 | "tinyvec_macros", 1015 | ] 1016 | 1017 | [[package]] 1018 | name = "tinyvec_macros" 1019 | version = "0.1.1" 1020 | source = "registry+https://github.com/rust-lang/crates.io-index" 1021 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1022 | 1023 | [[package]] 1024 | name = "tokio" 1025 | version = "1.37.0" 1026 | source = "registry+https://github.com/rust-lang/crates.io-index" 1027 | checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" 1028 | dependencies = [ 1029 | "backtrace", 1030 | "bytes", 1031 | "libc", 1032 | "mio", 1033 | "num_cpus", 1034 | "parking_lot", 1035 | "pin-project-lite", 1036 | "signal-hook-registry", 1037 | "socket2", 1038 | "tokio-macros", 1039 | "windows-sys 0.48.0", 1040 | ] 1041 | 1042 | [[package]] 1043 | name = "tokio-macros" 1044 | version = "2.2.0" 1045 | source = "registry+https://github.com/rust-lang/crates.io-index" 1046 | checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" 1047 | dependencies = [ 1048 | "proc-macro2", 1049 | "quote", 1050 | "syn", 1051 | ] 1052 | 1053 | [[package]] 1054 | name = "tokio-native-tls" 1055 | version = "0.3.1" 1056 | source = "registry+https://github.com/rust-lang/crates.io-index" 1057 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 1058 | dependencies = [ 1059 | "native-tls", 1060 | "tokio", 1061 | ] 1062 | 1063 | [[package]] 1064 | name = "tokio-util" 1065 | version = "0.7.10" 1066 | source = "registry+https://github.com/rust-lang/crates.io-index" 1067 | checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 1068 | dependencies = [ 1069 | "bytes", 1070 | "futures-core", 1071 | "futures-sink", 1072 | "pin-project-lite", 1073 | "tokio", 1074 | "tracing", 1075 | ] 1076 | 1077 | [[package]] 1078 | name = "toml" 1079 | version = "0.8.12" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" 1082 | dependencies = [ 1083 | "serde", 1084 | "serde_spanned", 1085 | "toml_datetime", 1086 | "toml_edit", 1087 | ] 1088 | 1089 | [[package]] 1090 | name = "toml_datetime" 1091 | version = "0.6.5" 1092 | source = "registry+https://github.com/rust-lang/crates.io-index" 1093 | checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" 1094 | dependencies = [ 1095 | "serde", 1096 | ] 1097 | 1098 | [[package]] 1099 | name = "toml_edit" 1100 | version = "0.22.12" 1101 | source = "registry+https://github.com/rust-lang/crates.io-index" 1102 | checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" 1103 | dependencies = [ 1104 | "indexmap", 1105 | "serde", 1106 | "serde_spanned", 1107 | "toml_datetime", 1108 | "winnow", 1109 | ] 1110 | 1111 | [[package]] 1112 | name = "tower" 1113 | version = "0.4.13" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 1116 | dependencies = [ 1117 | "futures-core", 1118 | "futures-util", 1119 | "pin-project", 1120 | "pin-project-lite", 1121 | "tokio", 1122 | "tower-layer", 1123 | "tower-service", 1124 | "tracing", 1125 | ] 1126 | 1127 | [[package]] 1128 | name = "tower-layer" 1129 | version = "0.3.2" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 1132 | 1133 | [[package]] 1134 | name = "tower-service" 1135 | version = "0.3.2" 1136 | source = "registry+https://github.com/rust-lang/crates.io-index" 1137 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1138 | 1139 | [[package]] 1140 | name = "tracing" 1141 | version = "0.1.40" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1144 | dependencies = [ 1145 | "log", 1146 | "pin-project-lite", 1147 | "tracing-core", 1148 | ] 1149 | 1150 | [[package]] 1151 | name = "tracing-core" 1152 | version = "0.1.32" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1155 | dependencies = [ 1156 | "once_cell", 1157 | ] 1158 | 1159 | [[package]] 1160 | name = "try-lock" 1161 | version = "0.2.5" 1162 | source = "registry+https://github.com/rust-lang/crates.io-index" 1163 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 1164 | 1165 | [[package]] 1166 | name = "unicode-bidi" 1167 | version = "0.3.15" 1168 | source = "registry+https://github.com/rust-lang/crates.io-index" 1169 | checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" 1170 | 1171 | [[package]] 1172 | name = "unicode-ident" 1173 | version = "1.0.12" 1174 | source = "registry+https://github.com/rust-lang/crates.io-index" 1175 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1176 | 1177 | [[package]] 1178 | name = "unicode-normalization" 1179 | version = "0.1.23" 1180 | source = "registry+https://github.com/rust-lang/crates.io-index" 1181 | checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" 1182 | dependencies = [ 1183 | "tinyvec", 1184 | ] 1185 | 1186 | [[package]] 1187 | name = "url" 1188 | version = "2.5.0" 1189 | source = "registry+https://github.com/rust-lang/crates.io-index" 1190 | checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 1191 | dependencies = [ 1192 | "form_urlencoded", 1193 | "idna", 1194 | "percent-encoding", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "utf8parse" 1199 | version = "0.2.1" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 1202 | 1203 | [[package]] 1204 | name = "vcpkg" 1205 | version = "0.2.15" 1206 | source = "registry+https://github.com/rust-lang/crates.io-index" 1207 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1208 | 1209 | [[package]] 1210 | name = "want" 1211 | version = "0.3.1" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1214 | dependencies = [ 1215 | "try-lock", 1216 | ] 1217 | 1218 | [[package]] 1219 | name = "wasi" 1220 | version = "0.11.0+wasi-snapshot-preview1" 1221 | source = "registry+https://github.com/rust-lang/crates.io-index" 1222 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1223 | 1224 | [[package]] 1225 | name = "wasm-bindgen" 1226 | version = "0.2.92" 1227 | source = "registry+https://github.com/rust-lang/crates.io-index" 1228 | checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" 1229 | dependencies = [ 1230 | "cfg-if", 1231 | "wasm-bindgen-macro", 1232 | ] 1233 | 1234 | [[package]] 1235 | name = "wasm-bindgen-backend" 1236 | version = "0.2.92" 1237 | source = "registry+https://github.com/rust-lang/crates.io-index" 1238 | checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" 1239 | dependencies = [ 1240 | "bumpalo", 1241 | "log", 1242 | "once_cell", 1243 | "proc-macro2", 1244 | "quote", 1245 | "syn", 1246 | "wasm-bindgen-shared", 1247 | ] 1248 | 1249 | [[package]] 1250 | name = "wasm-bindgen-futures" 1251 | version = "0.4.42" 1252 | source = "registry+https://github.com/rust-lang/crates.io-index" 1253 | checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" 1254 | dependencies = [ 1255 | "cfg-if", 1256 | "js-sys", 1257 | "wasm-bindgen", 1258 | "web-sys", 1259 | ] 1260 | 1261 | [[package]] 1262 | name = "wasm-bindgen-macro" 1263 | version = "0.2.92" 1264 | source = "registry+https://github.com/rust-lang/crates.io-index" 1265 | checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" 1266 | dependencies = [ 1267 | "quote", 1268 | "wasm-bindgen-macro-support", 1269 | ] 1270 | 1271 | [[package]] 1272 | name = "wasm-bindgen-macro-support" 1273 | version = "0.2.92" 1274 | source = "registry+https://github.com/rust-lang/crates.io-index" 1275 | checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" 1276 | dependencies = [ 1277 | "proc-macro2", 1278 | "quote", 1279 | "syn", 1280 | "wasm-bindgen-backend", 1281 | "wasm-bindgen-shared", 1282 | ] 1283 | 1284 | [[package]] 1285 | name = "wasm-bindgen-shared" 1286 | version = "0.2.92" 1287 | source = "registry+https://github.com/rust-lang/crates.io-index" 1288 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" 1289 | 1290 | [[package]] 1291 | name = "web-sys" 1292 | version = "0.3.69" 1293 | source = "registry+https://github.com/rust-lang/crates.io-index" 1294 | checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" 1295 | dependencies = [ 1296 | "js-sys", 1297 | "wasm-bindgen", 1298 | ] 1299 | 1300 | [[package]] 1301 | name = "windows-sys" 1302 | version = "0.48.0" 1303 | source = "registry+https://github.com/rust-lang/crates.io-index" 1304 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1305 | dependencies = [ 1306 | "windows-targets 0.48.5", 1307 | ] 1308 | 1309 | [[package]] 1310 | name = "windows-sys" 1311 | version = "0.52.0" 1312 | source = "registry+https://github.com/rust-lang/crates.io-index" 1313 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1314 | dependencies = [ 1315 | "windows-targets 0.52.5", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "windows-targets" 1320 | version = "0.48.5" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1323 | dependencies = [ 1324 | "windows_aarch64_gnullvm 0.48.5", 1325 | "windows_aarch64_msvc 0.48.5", 1326 | "windows_i686_gnu 0.48.5", 1327 | "windows_i686_msvc 0.48.5", 1328 | "windows_x86_64_gnu 0.48.5", 1329 | "windows_x86_64_gnullvm 0.48.5", 1330 | "windows_x86_64_msvc 0.48.5", 1331 | ] 1332 | 1333 | [[package]] 1334 | name = "windows-targets" 1335 | version = "0.52.5" 1336 | source = "registry+https://github.com/rust-lang/crates.io-index" 1337 | checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" 1338 | dependencies = [ 1339 | "windows_aarch64_gnullvm 0.52.5", 1340 | "windows_aarch64_msvc 0.52.5", 1341 | "windows_i686_gnu 0.52.5", 1342 | "windows_i686_gnullvm", 1343 | "windows_i686_msvc 0.52.5", 1344 | "windows_x86_64_gnu 0.52.5", 1345 | "windows_x86_64_gnullvm 0.52.5", 1346 | "windows_x86_64_msvc 0.52.5", 1347 | ] 1348 | 1349 | [[package]] 1350 | name = "windows_aarch64_gnullvm" 1351 | version = "0.48.5" 1352 | source = "registry+https://github.com/rust-lang/crates.io-index" 1353 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1354 | 1355 | [[package]] 1356 | name = "windows_aarch64_gnullvm" 1357 | version = "0.52.5" 1358 | source = "registry+https://github.com/rust-lang/crates.io-index" 1359 | checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" 1360 | 1361 | [[package]] 1362 | name = "windows_aarch64_msvc" 1363 | version = "0.48.5" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1366 | 1367 | [[package]] 1368 | name = "windows_aarch64_msvc" 1369 | version = "0.52.5" 1370 | source = "registry+https://github.com/rust-lang/crates.io-index" 1371 | checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" 1372 | 1373 | [[package]] 1374 | name = "windows_i686_gnu" 1375 | version = "0.48.5" 1376 | source = "registry+https://github.com/rust-lang/crates.io-index" 1377 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1378 | 1379 | [[package]] 1380 | name = "windows_i686_gnu" 1381 | version = "0.52.5" 1382 | source = "registry+https://github.com/rust-lang/crates.io-index" 1383 | checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" 1384 | 1385 | [[package]] 1386 | name = "windows_i686_gnullvm" 1387 | version = "0.52.5" 1388 | source = "registry+https://github.com/rust-lang/crates.io-index" 1389 | checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" 1390 | 1391 | [[package]] 1392 | name = "windows_i686_msvc" 1393 | version = "0.48.5" 1394 | source = "registry+https://github.com/rust-lang/crates.io-index" 1395 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1396 | 1397 | [[package]] 1398 | name = "windows_i686_msvc" 1399 | version = "0.52.5" 1400 | source = "registry+https://github.com/rust-lang/crates.io-index" 1401 | checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" 1402 | 1403 | [[package]] 1404 | name = "windows_x86_64_gnu" 1405 | version = "0.48.5" 1406 | source = "registry+https://github.com/rust-lang/crates.io-index" 1407 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1408 | 1409 | [[package]] 1410 | name = "windows_x86_64_gnu" 1411 | version = "0.52.5" 1412 | source = "registry+https://github.com/rust-lang/crates.io-index" 1413 | checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" 1414 | 1415 | [[package]] 1416 | name = "windows_x86_64_gnullvm" 1417 | version = "0.48.5" 1418 | source = "registry+https://github.com/rust-lang/crates.io-index" 1419 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1420 | 1421 | [[package]] 1422 | name = "windows_x86_64_gnullvm" 1423 | version = "0.52.5" 1424 | source = "registry+https://github.com/rust-lang/crates.io-index" 1425 | checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" 1426 | 1427 | [[package]] 1428 | name = "windows_x86_64_msvc" 1429 | version = "0.48.5" 1430 | source = "registry+https://github.com/rust-lang/crates.io-index" 1431 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1432 | 1433 | [[package]] 1434 | name = "windows_x86_64_msvc" 1435 | version = "0.52.5" 1436 | source = "registry+https://github.com/rust-lang/crates.io-index" 1437 | checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" 1438 | 1439 | [[package]] 1440 | name = "winnow" 1441 | version = "0.6.6" 1442 | source = "registry+https://github.com/rust-lang/crates.io-index" 1443 | checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352" 1444 | dependencies = [ 1445 | "memchr", 1446 | ] 1447 | 1448 | [[package]] 1449 | name = "winreg" 1450 | version = "0.52.0" 1451 | source = "registry+https://github.com/rust-lang/crates.io-index" 1452 | checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" 1453 | dependencies = [ 1454 | "cfg-if", 1455 | "windows-sys 0.48.0", 1456 | ] 1457 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "commit_crafter" 3 | version = "0.1.5" 4 | edition = "2021" 5 | authors = ["ZenYang "] 6 | license = "MIT" 7 | readme = "README.md" 8 | homepage = "https://github.com/yzzting/commit_crafter" 9 | repository = "https://github.com/yzzting/commit_crafter" 10 | keywords = ["git", "commit-message", "ai", "nlp", "productivity"] 11 | categories = ["development-tools", "text-processing", "command-line-utilities"] 12 | description = "AI powered tool for Git commit message generator" 13 | 14 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 15 | 16 | [dependencies] 17 | toml = "0.8.12" 18 | reqwest = { version = "0.12.3", features = ["blocking", "json"] } 19 | serde = { version = "1.0", features = ["derive"] } 20 | serde_json = "1.0.116" 21 | tokio = { version = "1", features = ["full"] } 22 | clap = { version = "4.5.4", features = ["derive"] } 23 | tempfile = "3.10.1" -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 ZenYang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Commit Crafter 2 | 3 | ## Installation 4 | 5 | ```bash 6 | cargo install --locked commit_crafter 7 | ``` 8 | 9 | In the git project, install the prepare-commit-msg hook and set up the OpenAI API key to use it. If it is the first time installing and using it. 10 | 11 | ```bash 12 | commit_crafter install 13 | ``` 14 | 15 | After executing the installation command, you must first set up a key in order to use it normally. 16 | 17 | ```bash 18 | commit_crafter config set openai_api_key 19 | ``` 20 | 21 | ## Options 22 | 23 | ```bash 24 | // openai api key 25 | commit_crafter config set openai_api_key 26 | 27 | // openai url 28 | commit_crafter config set openai_url 29 | 30 | // openai model 31 | commit_crafter config set openai_model 32 | 33 | // prompt language 34 | commit_crafter config set user_language 35 | 36 | // get config options 37 | commit_crafter config get