+4
-2
.env.example
+4
-2
.env.example
+181
-295
Cargo.lock
+181
-295
Cargo.lock
···
122
122
dependencies = [
123
123
"proc-macro2",
124
124
"quote",
125
-
"syn 2.0.66",
125
+
"syn 2.0.67",
126
126
]
127
127
128
128
[[package]]
···
194
194
"bottomify",
195
195
"color-eyre",
196
196
"dotenv",
197
+
"git-tracker",
197
198
"humantime",
198
199
"kittysay",
199
200
"poise",
200
201
"rand 0.8.5",
201
202
"regex",
202
-
"reqwest 0.12.4",
203
+
"reqwest 0.12.5",
204
+
"serde",
203
205
"serenity",
204
206
"tokio",
205
207
]
···
285
287
version = "1.0.99"
286
288
source = "registry+https://github.com/rust-lang/crates.io-index"
287
289
checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"
290
+
dependencies = [
291
+
"jobserver",
292
+
"libc",
293
+
"once_cell",
294
+
]
288
295
289
296
[[package]]
290
297
name = "cfg-if"
···
360
367
"heck",
361
368
"proc-macro2",
362
369
"quote",
363
-
"syn 2.0.66",
370
+
"syn 2.0.67",
364
371
]
365
372
366
373
[[package]]
···
531
538
"proc-macro2",
532
539
"quote",
533
540
"strsim 0.11.1",
534
-
"syn 2.0.66",
541
+
"syn 2.0.67",
535
542
]
536
543
537
544
[[package]]
···
542
549
dependencies = [
543
550
"darling_core",
544
551
"quote",
545
-
"syn 2.0.66",
552
+
"syn 2.0.67",
546
553
]
547
554
548
555
[[package]]
···
594
601
dependencies = [
595
602
"block-buffer",
596
603
"crypto-common",
597
-
]
598
-
599
-
[[package]]
600
-
name = "displaydoc"
601
-
version = "0.2.4"
602
-
source = "registry+https://github.com/rust-lang/crates.io-index"
603
-
checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
604
-
dependencies = [
605
-
"proc-macro2",
606
-
"quote",
607
-
"syn 2.0.66",
608
604
]
609
605
610
606
[[package]]
···
753
749
dependencies = [
754
750
"proc-macro2",
755
751
"quote",
756
-
"syn 2.0.66",
752
+
"syn 2.0.67",
757
753
]
758
754
759
755
[[package]]
···
834
830
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
835
831
836
832
[[package]]
833
+
name = "git-tracker"
834
+
version = "0.2.0"
835
+
source = "git+https://github.com/getchoo/nixpkgs-tracker-bot#b602b445cc4accbbc28c054c900cca85aa17b119"
836
+
dependencies = [
837
+
"git2",
838
+
"log",
839
+
"thiserror",
840
+
]
841
+
842
+
[[package]]
843
+
name = "git2"
844
+
version = "0.18.3"
845
+
source = "registry+https://github.com/rust-lang/crates.io-index"
846
+
checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
847
+
dependencies = [
848
+
"bitflags 2.5.0",
849
+
"libc",
850
+
"libgit2-sys",
851
+
"log",
852
+
"url",
853
+
]
854
+
855
+
[[package]]
837
856
name = "glob"
838
857
version = "0.3.1"
839
858
source = "registry+https://github.com/rust-lang/crates.io-index"
···
962
981
963
982
[[package]]
964
983
name = "httparse"
965
-
version = "1.9.2"
984
+
version = "1.9.4"
966
985
source = "registry+https://github.com/rust-lang/crates.io-index"
967
-
checksum = "9f3935c160d00ac752e09787e6e6bfc26494c2183cc922f1bc678a60d4733bc2"
986
+
checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
968
987
969
988
[[package]]
970
989
name = "httpdate"
···
1037
1056
]
1038
1057
1039
1058
[[package]]
1059
+
name = "hyper-rustls"
1060
+
version = "0.27.2"
1061
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1062
+
checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
1063
+
dependencies = [
1064
+
"futures-util",
1065
+
"http 1.1.0",
1066
+
"hyper 1.3.1",
1067
+
"hyper-util",
1068
+
"rustls 0.23.10",
1069
+
"rustls-pki-types",
1070
+
"tokio",
1071
+
"tokio-rustls 0.26.0",
1072
+
"tower-service",
1073
+
]
1074
+
1075
+
[[package]]
1040
1076
name = "hyper-tls"
1041
1077
version = "0.6.0"
1042
1078
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1096
1132
]
1097
1133
1098
1134
[[package]]
1099
-
name = "icu_collections"
1100
-
version = "1.5.0"
1101
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1102
-
checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
1103
-
dependencies = [
1104
-
"displaydoc",
1105
-
"yoke",
1106
-
"zerofrom",
1107
-
"zerovec",
1108
-
]
1109
-
1110
-
[[package]]
1111
-
name = "icu_locid"
1112
-
version = "1.5.0"
1113
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1114
-
checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
1115
-
dependencies = [
1116
-
"displaydoc",
1117
-
"litemap",
1118
-
"tinystr",
1119
-
"writeable",
1120
-
"zerovec",
1121
-
]
1122
-
1123
-
[[package]]
1124
-
name = "icu_locid_transform"
1125
-
version = "1.5.0"
1126
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1127
-
checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
1128
-
dependencies = [
1129
-
"displaydoc",
1130
-
"icu_locid",
1131
-
"icu_locid_transform_data",
1132
-
"icu_provider",
1133
-
"tinystr",
1134
-
"zerovec",
1135
-
]
1136
-
1137
-
[[package]]
1138
-
name = "icu_locid_transform_data"
1139
-
version = "1.5.0"
1140
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1141
-
checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
1142
-
1143
-
[[package]]
1144
-
name = "icu_normalizer"
1145
-
version = "1.5.0"
1146
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1147
-
checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
1148
-
dependencies = [
1149
-
"displaydoc",
1150
-
"icu_collections",
1151
-
"icu_normalizer_data",
1152
-
"icu_properties",
1153
-
"icu_provider",
1154
-
"smallvec",
1155
-
"utf16_iter",
1156
-
"utf8_iter",
1157
-
"write16",
1158
-
"zerovec",
1159
-
]
1160
-
1161
-
[[package]]
1162
-
name = "icu_normalizer_data"
1163
-
version = "1.5.0"
1164
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1165
-
checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
1166
-
1167
-
[[package]]
1168
-
name = "icu_properties"
1169
-
version = "1.5.0"
1170
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1171
-
checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036"
1172
-
dependencies = [
1173
-
"displaydoc",
1174
-
"icu_collections",
1175
-
"icu_locid_transform",
1176
-
"icu_properties_data",
1177
-
"icu_provider",
1178
-
"tinystr",
1179
-
"zerovec",
1180
-
]
1181
-
1182
-
[[package]]
1183
-
name = "icu_properties_data"
1184
-
version = "1.5.0"
1185
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1186
-
checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
1187
-
1188
-
[[package]]
1189
-
name = "icu_provider"
1190
-
version = "1.5.0"
1191
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1192
-
checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
1193
-
dependencies = [
1194
-
"displaydoc",
1195
-
"icu_locid",
1196
-
"icu_provider_macros",
1197
-
"stable_deref_trait",
1198
-
"tinystr",
1199
-
"writeable",
1200
-
"yoke",
1201
-
"zerofrom",
1202
-
"zerovec",
1203
-
]
1204
-
1205
-
[[package]]
1206
-
name = "icu_provider_macros"
1207
-
version = "1.5.0"
1208
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1209
-
checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
1210
-
dependencies = [
1211
-
"proc-macro2",
1212
-
"quote",
1213
-
"syn 2.0.66",
1214
-
]
1215
-
1216
-
[[package]]
1217
1135
name = "ident_case"
1218
1136
version = "1.0.1"
1219
1137
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1221
1139
1222
1140
[[package]]
1223
1141
name = "idna"
1224
-
version = "1.0.0"
1142
+
version = "0.5.0"
1225
1143
source = "registry+https://github.com/rust-lang/crates.io-index"
1226
-
checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed"
1144
+
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
1227
1145
dependencies = [
1228
-
"icu_normalizer",
1229
-
"icu_properties",
1230
-
"smallvec",
1231
-
"utf8_iter",
1146
+
"unicode-bidi",
1147
+
"unicode-normalization",
1232
1148
]
1233
1149
1234
1150
[[package]]
···
1266
1182
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
1267
1183
1268
1184
[[package]]
1185
+
name = "jobserver"
1186
+
version = "0.1.31"
1187
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1188
+
checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
1189
+
dependencies = [
1190
+
"libc",
1191
+
]
1192
+
1193
+
[[package]]
1269
1194
name = "js-sys"
1270
1195
version = "0.3.69"
1271
1196
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1291
1216
1292
1217
[[package]]
1293
1218
name = "lazy_static"
1294
-
version = "1.4.0"
1219
+
version = "1.5.0"
1295
1220
source = "registry+https://github.com/rust-lang/crates.io-index"
1296
-
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
1221
+
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
1297
1222
1298
1223
[[package]]
1299
1224
name = "levenshtein"
···
1308
1233
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
1309
1234
1310
1235
[[package]]
1311
-
name = "linux-raw-sys"
1312
-
version = "0.4.14"
1236
+
name = "libgit2-sys"
1237
+
version = "0.16.2+1.7.2"
1313
1238
source = "registry+https://github.com/rust-lang/crates.io-index"
1314
-
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
1239
+
checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
1240
+
dependencies = [
1241
+
"cc",
1242
+
"libc",
1243
+
"libz-sys",
1244
+
"pkg-config",
1245
+
]
1315
1246
1316
1247
[[package]]
1317
-
name = "litemap"
1318
-
version = "0.7.3"
1248
+
name = "libz-sys"
1249
+
version = "1.1.18"
1319
1250
source = "registry+https://github.com/rust-lang/crates.io-index"
1320
-
checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
1251
+
checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e"
1252
+
dependencies = [
1253
+
"cc",
1254
+
"libc",
1255
+
"pkg-config",
1256
+
"vcpkg",
1257
+
]
1258
+
1259
+
[[package]]
1260
+
name = "linux-raw-sys"
1261
+
version = "0.4.14"
1262
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1263
+
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
1321
1264
1322
1265
[[package]]
1323
1266
name = "lock_api"
···
1337
1280
1338
1281
[[package]]
1339
1282
name = "memchr"
1340
-
version = "2.7.2"
1283
+
version = "2.7.4"
1341
1284
source = "registry+https://github.com/rust-lang/crates.io-index"
1342
-
checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
1285
+
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
1343
1286
1344
1287
[[package]]
1345
1288
name = "mime"
···
1374
1317
1375
1318
[[package]]
1376
1319
name = "miniz_oxide"
1377
-
version = "0.7.3"
1320
+
version = "0.7.4"
1378
1321
source = "registry+https://github.com/rust-lang/crates.io-index"
1379
-
checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
1322
+
checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
1380
1323
dependencies = [
1381
1324
"adler",
1382
1325
]
···
1473
1416
dependencies = [
1474
1417
"proc-macro2",
1475
1418
"quote",
1476
-
"syn 2.0.66",
1419
+
"syn 2.0.67",
1477
1420
]
1478
1421
1479
1422
[[package]]
···
1584
1527
dependencies = [
1585
1528
"proc-macro2",
1586
1529
"quote",
1587
-
"syn 2.0.66",
1530
+
"syn 2.0.67",
1588
1531
]
1589
1532
1590
1533
[[package]]
···
1631
1574
"darling",
1632
1575
"proc-macro2",
1633
1576
"quote",
1634
-
"syn 2.0.66",
1577
+
"syn 2.0.67",
1635
1578
]
1636
1579
1637
1580
[[package]]
···
1648
1591
1649
1592
[[package]]
1650
1593
name = "proc-macro2"
1651
-
version = "1.0.85"
1594
+
version = "1.0.86"
1652
1595
source = "registry+https://github.com/rust-lang/crates.io-index"
1653
-
checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
1596
+
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
1654
1597
dependencies = [
1655
1598
"unicode-ident",
1656
1599
]
···
1758
1701
1759
1702
[[package]]
1760
1703
name = "redox_syscall"
1761
-
version = "0.5.1"
1704
+
version = "0.5.2"
1762
1705
source = "registry+https://github.com/rust-lang/crates.io-index"
1763
-
checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
1706
+
checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd"
1764
1707
dependencies = [
1765
1708
"bitflags 2.5.0",
1766
1709
]
···
1809
1752
"http 0.2.12",
1810
1753
"http-body 0.4.6",
1811
1754
"hyper 0.14.29",
1812
-
"hyper-rustls",
1755
+
"hyper-rustls 0.24.2",
1813
1756
"ipnet",
1814
1757
"js-sys",
1815
1758
"log",
···
1823
1766
"serde",
1824
1767
"serde_json",
1825
1768
"serde_urlencoded",
1826
-
"sync_wrapper",
1769
+
"sync_wrapper 0.1.2",
1827
1770
"system-configuration",
1828
1771
"tokio",
1829
1772
"tokio-rustls 0.24.1",
···
1840
1783
1841
1784
[[package]]
1842
1785
name = "reqwest"
1843
-
version = "0.12.4"
1786
+
version = "0.12.5"
1844
1787
source = "registry+https://github.com/rust-lang/crates.io-index"
1845
-
checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
1788
+
checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37"
1846
1789
dependencies = [
1847
1790
"base64 0.22.1",
1848
1791
"bytes",
···
1854
1797
"http-body 1.0.0",
1855
1798
"http-body-util",
1856
1799
"hyper 1.3.1",
1800
+
"hyper-rustls 0.27.2",
1857
1801
"hyper-tls",
1858
1802
"hyper-util",
1859
1803
"ipnet",
···
1868
1812
"serde",
1869
1813
"serde_json",
1870
1814
"serde_urlencoded",
1871
-
"sync_wrapper",
1815
+
"sync_wrapper 1.0.1",
1872
1816
"system-configuration",
1873
1817
"tokio",
1874
1818
"tokio-native-tls",
···
1941
1885
]
1942
1886
1943
1887
[[package]]
1888
+
name = "rustls"
1889
+
version = "0.23.10"
1890
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1891
+
checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402"
1892
+
dependencies = [
1893
+
"once_cell",
1894
+
"rustls-pki-types",
1895
+
"rustls-webpki 0.102.4",
1896
+
"subtle",
1897
+
"zeroize",
1898
+
]
1899
+
1900
+
[[package]]
1944
1901
name = "rustls-pemfile"
1945
1902
version = "1.0.4"
1946
1903
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2094
2051
dependencies = [
2095
2052
"proc-macro2",
2096
2053
"quote",
2097
-
"syn 2.0.66",
2054
+
"syn 2.0.67",
2098
2055
]
2099
2056
2100
2057
[[package]]
···
2266
2223
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
2267
2224
2268
2225
[[package]]
2269
-
name = "stable_deref_trait"
2270
-
version = "1.2.0"
2271
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2272
-
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
2273
-
2274
-
[[package]]
2275
2226
name = "static_assertions"
2276
2227
version = "1.1.0"
2277
2228
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2291
2242
2292
2243
[[package]]
2293
2244
name = "subtle"
2294
-
version = "2.5.0"
2245
+
version = "2.6.0"
2295
2246
source = "registry+https://github.com/rust-lang/crates.io-index"
2296
-
checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
2247
+
checksum = "0d0208408ba0c3df17ed26eb06992cb1a1268d41b2c0e12e65203fbe3972cee5"
2297
2248
2298
2249
[[package]]
2299
2250
name = "syn"
···
2308
2259
2309
2260
[[package]]
2310
2261
name = "syn"
2311
-
version = "2.0.66"
2262
+
version = "2.0.67"
2312
2263
source = "registry+https://github.com/rust-lang/crates.io-index"
2313
-
checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
2264
+
checksum = "ff8655ed1d86f3af4ee3fd3263786bc14245ad17c4c7e85ba7187fb3ae028c90"
2314
2265
dependencies = [
2315
2266
"proc-macro2",
2316
2267
"quote",
···
2324
2275
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
2325
2276
2326
2277
[[package]]
2327
-
name = "synstructure"
2328
-
version = "0.13.1"
2278
+
name = "sync_wrapper"
2279
+
version = "1.0.1"
2329
2280
source = "registry+https://github.com/rust-lang/crates.io-index"
2330
-
checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
2331
-
dependencies = [
2332
-
"proc-macro2",
2333
-
"quote",
2334
-
"syn 2.0.66",
2335
-
]
2281
+
checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
2336
2282
2337
2283
[[package]]
2338
2284
name = "system-configuration"
···
2410
2356
dependencies = [
2411
2357
"proc-macro2",
2412
2358
"quote",
2413
-
"syn 2.0.66",
2359
+
"syn 2.0.67",
2414
2360
]
2415
2361
2416
2362
[[package]]
···
2455
2401
]
2456
2402
2457
2403
[[package]]
2458
-
name = "tinystr"
2459
-
version = "0.7.6"
2404
+
name = "tinyvec"
2405
+
version = "1.6.0"
2460
2406
source = "registry+https://github.com/rust-lang/crates.io-index"
2461
-
checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
2407
+
checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
2462
2408
dependencies = [
2463
-
"displaydoc",
2464
-
"zerovec",
2409
+
"tinyvec_macros",
2465
2410
]
2411
+
2412
+
[[package]]
2413
+
name = "tinyvec_macros"
2414
+
version = "0.1.1"
2415
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2416
+
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
2466
2417
2467
2418
[[package]]
2468
2419
name = "tokio"
···
2489
2440
dependencies = [
2490
2441
"proc-macro2",
2491
2442
"quote",
2492
-
"syn 2.0.66",
2443
+
"syn 2.0.67",
2493
2444
]
2494
2445
2495
2446
[[package]]
···
2524
2475
]
2525
2476
2526
2477
[[package]]
2478
+
name = "tokio-rustls"
2479
+
version = "0.26.0"
2480
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2481
+
checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
2482
+
dependencies = [
2483
+
"rustls 0.23.10",
2484
+
"rustls-pki-types",
2485
+
"tokio",
2486
+
]
2487
+
2488
+
[[package]]
2527
2489
name = "tokio-tungstenite"
2528
2490
version = "0.21.0"
2529
2491
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2536
2498
"tokio",
2537
2499
"tokio-rustls 0.25.0",
2538
2500
"tungstenite",
2539
-
"webpki-roots 0.26.2",
2501
+
"webpki-roots 0.26.3",
2540
2502
]
2541
2503
2542
2504
[[package]]
···
2599
2561
dependencies = [
2600
2562
"proc-macro2",
2601
2563
"quote",
2602
-
"syn 2.0.66",
2564
+
"syn 2.0.67",
2603
2565
]
2604
2566
2605
2567
[[package]]
···
2635
2597
2636
2598
[[package]]
2637
2599
name = "triomphe"
2638
-
version = "0.1.12"
2600
+
version = "0.1.13"
2639
2601
source = "registry+https://github.com/rust-lang/crates.io-index"
2640
-
checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90"
2602
+
checksum = "e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369"
2641
2603
2642
2604
[[package]]
2643
2605
name = "try-lock"
···
2704
2666
dependencies = [
2705
2667
"proc-macro2",
2706
2668
"quote",
2707
-
"syn 2.0.66",
2669
+
"syn 2.0.67",
2708
2670
]
2709
2671
2710
2672
[[package]]
···
2717
2679
]
2718
2680
2719
2681
[[package]]
2682
+
name = "unicode-bidi"
2683
+
version = "0.3.15"
2684
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2685
+
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
2686
+
2687
+
[[package]]
2720
2688
name = "unicode-ident"
2721
2689
version = "1.0.12"
2722
2690
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2729
2697
checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
2730
2698
2731
2699
[[package]]
2700
+
name = "unicode-normalization"
2701
+
version = "0.1.23"
2702
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2703
+
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
2704
+
dependencies = [
2705
+
"tinyvec",
2706
+
]
2707
+
2708
+
[[package]]
2732
2709
name = "unicode-width"
2733
2710
version = "0.1.13"
2734
2711
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2742
2719
2743
2720
[[package]]
2744
2721
name = "url"
2745
-
version = "2.5.1"
2722
+
version = "2.5.2"
2746
2723
source = "registry+https://github.com/rust-lang/crates.io-index"
2747
-
checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56"
2724
+
checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
2748
2725
dependencies = [
2749
2726
"form_urlencoded",
2750
2727
"idna",
···
2759
2736
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
2760
2737
2761
2738
[[package]]
2762
-
name = "utf16_iter"
2763
-
version = "1.0.5"
2764
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2765
-
checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
2766
-
2767
-
[[package]]
2768
-
name = "utf8_iter"
2769
-
version = "1.0.4"
2770
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2771
-
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
2772
-
2773
-
[[package]]
2774
2739
name = "utf8parse"
2775
2740
version = "0.2.2"
2776
2741
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2858
2823
"once_cell",
2859
2824
"proc-macro2",
2860
2825
"quote",
2861
-
"syn 2.0.66",
2826
+
"syn 2.0.67",
2862
2827
"wasm-bindgen-shared",
2863
2828
]
2864
2829
···
2892
2857
dependencies = [
2893
2858
"proc-macro2",
2894
2859
"quote",
2895
-
"syn 2.0.66",
2860
+
"syn 2.0.67",
2896
2861
"wasm-bindgen-backend",
2897
2862
"wasm-bindgen-shared",
2898
2863
]
···
2934
2899
2935
2900
[[package]]
2936
2901
name = "webpki-roots"
2937
-
version = "0.26.2"
2902
+
version = "0.26.3"
2938
2903
source = "registry+https://github.com/rust-lang/crates.io-index"
2939
-
checksum = "3c452ad30530b54a4d8e71952716a212b08efd0f3562baa66c29a618b07da7c3"
2904
+
checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
2940
2905
dependencies = [
2941
2906
"rustls-pki-types",
2942
2907
]
···
3141
3106
]
3142
3107
3143
3108
[[package]]
3144
-
name = "write16"
3145
-
version = "1.0.0"
3146
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3147
-
checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
3148
-
3149
-
[[package]]
3150
-
name = "writeable"
3151
-
version = "0.5.5"
3152
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3153
-
checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
3154
-
3155
-
[[package]]
3156
-
name = "yoke"
3157
-
version = "0.7.4"
3158
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3159
-
checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
3160
-
dependencies = [
3161
-
"serde",
3162
-
"stable_deref_trait",
3163
-
"yoke-derive",
3164
-
"zerofrom",
3165
-
]
3166
-
3167
-
[[package]]
3168
-
name = "yoke-derive"
3169
-
version = "0.7.4"
3170
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3171
-
checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
3172
-
dependencies = [
3173
-
"proc-macro2",
3174
-
"quote",
3175
-
"syn 2.0.66",
3176
-
"synstructure",
3177
-
]
3178
-
3179
-
[[package]]
3180
-
name = "zerofrom"
3181
-
version = "0.1.4"
3182
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3183
-
checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
3184
-
dependencies = [
3185
-
"zerofrom-derive",
3186
-
]
3187
-
3188
-
[[package]]
3189
-
name = "zerofrom-derive"
3190
-
version = "0.1.4"
3191
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3192
-
checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
3193
-
dependencies = [
3194
-
"proc-macro2",
3195
-
"quote",
3196
-
"syn 2.0.66",
3197
-
"synstructure",
3198
-
]
3199
-
3200
-
[[package]]
3201
3109
name = "zeroize"
3202
3110
version = "1.8.1"
3203
3111
source = "registry+https://github.com/rust-lang/crates.io-index"
3204
3112
checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
3205
-
3206
-
[[package]]
3207
-
name = "zerovec"
3208
-
version = "0.10.2"
3209
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3210
-
checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c"
3211
-
dependencies = [
3212
-
"yoke",
3213
-
"zerofrom",
3214
-
"zerovec-derive",
3215
-
]
3216
-
3217
-
[[package]]
3218
-
name = "zerovec-derive"
3219
-
version = "0.10.2"
3220
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3221
-
checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7"
3222
-
dependencies = [
3223
-
"proc-macro2",
3224
-
"quote",
3225
-
"syn 2.0.66",
3226
-
]
+15
-2
Cargo.toml
+15
-2
Cargo.toml
···
19
19
poise = "0.6.1"
20
20
rand = "0.8.5"
21
21
regex = "1.10.5"
22
-
reqwest = "0.12.4"
23
22
serenity = "0.12.2"
24
-
tokio = { version = "1.38.0", features = ["macros", "rt-multi-thread"] }
23
+
24
+
[dependencies.serde]
25
+
version = "1.0.203"
26
+
features = ["derive"]
27
+
28
+
[dependencies.reqwest ]
29
+
version = "0.12.4"
30
+
features = ["json"]
31
+
32
+
[dependencies.tokio]
33
+
version = "1.38.0"
34
+
features = ["macros", "rt-multi-thread"]
35
+
36
+
[dependencies.git-tracker]
37
+
git = "https://github.com/getchoo/nixpkgs-tracker-bot"
25
38
26
39
[lints.clippy]
27
40
all = "warn"
+6
-1
default.nix
+6
-1
default.nix
+1
src/commands/misc/mod.rs
+1
src/commands/misc/mod.rs
···
1
+
pub mod nixpkgs;
+87
src/commands/misc/nixpkgs.rs
+87
src/commands/misc/nixpkgs.rs
···
1
+
use color_eyre::eyre::Result;
2
+
use git_tracker::Tracker;
3
+
use poise::{serenity_prelude as serenity, CreateReply};
4
+
use reqwest;
5
+
use serde::Deserialize;
6
+
use std::env;
7
+
8
+
use crate::Context;
9
+
10
+
const NIXPKGS_URL: &str = "https://github.com/NixOS/nixpkgs";
11
+
12
+
/// Track nixpkgs PRs
13
+
#[poise::command(slash_command)]
14
+
pub async fn nixpkgs(
15
+
ctx: Context<'_>,
16
+
#[description = "pr"]
17
+
#[min = 0]
18
+
pr: i32,
19
+
) -> Result<()> {
20
+
ctx.defer().await?;
21
+
22
+
let nixpkgs_path = env::var("NIXPKGS").expect("NIXPKGS not set");
23
+
let github_token = env::var("GITHUB_TOKEN").expect("GITHUB_TOKEN not set");
24
+
let tracker = Tracker::from_path(&nixpkgs_path)?;
25
+
26
+
// find out what commit our PR was merged in
27
+
let Some(commit_sha) = ({
28
+
let url = format!("https://api.github.com/repos/nixos/nixpkgs/pulls/{pr}");
29
+
let resp = reqwest::Client::new()
30
+
.get(&url)
31
+
.header("User-Agent", "blahaj")
32
+
.header("Authorization", format!("Bearer {github_token}"))
33
+
.send()
34
+
.await
35
+
.expect("error fetching")
36
+
.json::<PullRequest>()
37
+
.await?;
38
+
39
+
resp.merge_commit_sha
40
+
}) else {
41
+
ctx.say("It seems this pull request is very old. I can't track it")
42
+
.await?;
43
+
return Ok(());
44
+
};
45
+
46
+
let mut status_results = vec![];
47
+
for branch_name in &[
48
+
"master",
49
+
"staging",
50
+
"nixpkgs-unstable",
51
+
"nixos-unstable-small",
52
+
"nixos-unstable",
53
+
] {
54
+
let full_branch_name = format!("origin/{branch_name}");
55
+
let has_pr = tracker.branch_contains_sha(&full_branch_name, &commit_sha)?;
56
+
57
+
if has_pr {
58
+
status_results.push(format!("`{branch_name}` ✅"));
59
+
} else {
60
+
status_results.push(format!("`{branch_name}` ❌"));
61
+
}
62
+
}
63
+
64
+
// if we don't find the commit in any branches from above, we can pretty safely assume
65
+
// it's an unmerged PR
66
+
let embed_description: String = if status_results.is_empty() {
67
+
"It doesn't look like this PR has been merged yet! (or maybe I just haven't updated)"
68
+
.to_string()
69
+
} else {
70
+
status_results.join("\n")
71
+
};
72
+
73
+
let embed = CreateReply::default().embed(
74
+
serenity::CreateEmbed::new()
75
+
.title(format!("Nixpkgs PR #{pr} Status"))
76
+
.url(format!("{NIXPKGS_URL}/pull/{pr}"))
77
+
.description(embed_description),
78
+
);
79
+
80
+
ctx.send(embed).await?;
81
+
Ok(())
82
+
}
83
+
84
+
#[derive(Clone, Debug, Deserialize)]
85
+
struct PullRequest {
86
+
merge_commit_sha: Option<String>,
87
+
}