mirror of
https://github.com/gofiber/storage.git
synced 2025-09-27 21:02:20 +08:00
Compare commits
1731 Commits
azureblob/
...
Update-pkg
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f01f10c006 | ||
![]() |
3bfea340e7 | ||
![]() |
0fe8e5fda3 | ||
![]() |
ff55ec3477 | ||
![]() |
ff83043d09 | ||
![]() |
5a6ee123cf | ||
![]() |
a9f76af4ba | ||
![]() |
2aa6a93b98 | ||
![]() |
33e4479ce7 | ||
![]() |
adea65d290 | ||
![]() |
537b31756b | ||
![]() |
3b91f93611 | ||
![]() |
42831dcee6 | ||
![]() |
89a0a97fe8 | ||
![]() |
86f1b406e3 | ||
![]() |
102acc252b | ||
![]() |
40a6167b74 | ||
![]() |
e4d46ce66c | ||
![]() |
386b6f431f | ||
![]() |
d2af2eb76b | ||
![]() |
395f8a80da | ||
![]() |
76c52119bf | ||
![]() |
87c2b454f8 | ||
![]() |
12ea6b4978 | ||
![]() |
cce70b9e7f | ||
![]() |
f8776d0233 | ||
![]() |
740eed9579 | ||
![]() |
baaf5c76e0 | ||
![]() |
9fa1710604 | ||
![]() |
674175ded7 | ||
![]() |
fae399ccdc | ||
![]() |
381f0c134e | ||
![]() |
9013b623ea | ||
![]() |
512c66712a | ||
![]() |
692f78abb0 | ||
![]() |
1a7044aded | ||
![]() |
88906bb82b | ||
![]() |
5d095dc16b | ||
![]() |
a18385a6ba | ||
![]() |
1da3514e71 | ||
![]() |
a0d6e6df5a | ||
![]() |
603305cf39 | ||
![]() |
f9f9ee6734 | ||
![]() |
cb106882f0 | ||
![]() |
a5f954c505 | ||
![]() |
53c5ec01a5 | ||
![]() |
f7b7345f06 | ||
![]() |
cd119d0f9e | ||
![]() |
2f1c0cbba5 | ||
![]() |
4a558d04d2 | ||
![]() |
29406b2354 | ||
![]() |
6f09eca26d | ||
![]() |
304babaae6 | ||
![]() |
fe56bc56be | ||
![]() |
d2c20a1452 | ||
![]() |
8a873c0c1d | ||
![]() |
8d24b7710e | ||
![]() |
2c3433f532 | ||
![]() |
f35a941b18 | ||
![]() |
01d0e07203 | ||
![]() |
07d3b2ee60 | ||
![]() |
91125ae1ff | ||
![]() |
8987519886 | ||
![]() |
ae1a58f409 | ||
![]() |
6cd2a04347 | ||
![]() |
d6045366f3 | ||
![]() |
eba6a80a13 | ||
![]() |
d296a7f0da | ||
![]() |
30d1c4aeb1 | ||
![]() |
c9bf60b822 | ||
![]() |
526f70b1de | ||
![]() |
46b8c41b07 | ||
![]() |
920adaf9d1 | ||
![]() |
33479fdf80 | ||
![]() |
b8e131cbdc | ||
![]() |
efae25917f | ||
![]() |
87cb35a875 | ||
![]() |
b54ef2f223 | ||
![]() |
f0d3888c13 | ||
![]() |
f6e1c398df | ||
![]() |
fffd10e474 | ||
![]() |
a5e5b6c392 | ||
![]() |
730aba1fc4 | ||
![]() |
8819ff54b7 | ||
![]() |
3b5fbcdce6 | ||
![]() |
9942341b72 | ||
![]() |
9e27843919 | ||
![]() |
7c94391d11 | ||
![]() |
c3094e4ae5 | ||
![]() |
5e11a89904 | ||
![]() |
20c2931600 | ||
![]() |
448cdd08e2 | ||
![]() |
ea41c3d45e | ||
![]() |
662c591519 | ||
![]() |
d129128328 | ||
![]() |
aa21992fd5 | ||
![]() |
b02937835f | ||
![]() |
7907504d75 | ||
![]() |
2886d67714 | ||
![]() |
eee0d7df2c | ||
![]() |
60b43cf9d6 | ||
![]() |
fe3cc059c4 | ||
![]() |
b648905d66 | ||
![]() |
69e62f0b54 | ||
![]() |
ec227440cd | ||
![]() |
0344cbd5f0 | ||
![]() |
da28b6f39d | ||
![]() |
dec716bf98 | ||
![]() |
5da8c389a1 | ||
![]() |
bf3ba3e751 | ||
![]() |
e23626edef | ||
![]() |
897a80879d | ||
![]() |
2aa7735a92 | ||
![]() |
2cea147aa4 | ||
![]() |
920bb093a4 | ||
![]() |
b5f9269fff | ||
![]() |
04fb90595f | ||
![]() |
8b1d41dde3 | ||
![]() |
b784766b97 | ||
![]() |
f520ae0b54 | ||
![]() |
e38586e901 | ||
![]() |
df05331a78 | ||
![]() |
4ba6faaa00 | ||
![]() |
76acc99239 | ||
![]() |
43d47119b3 | ||
![]() |
d72125bb60 | ||
![]() |
e4aaaf76a8 | ||
![]() |
0cc27ea7ce | ||
![]() |
9524b39ca6 | ||
![]() |
13a14cd6fb | ||
![]() |
1fb6cd1a3f | ||
![]() |
9209ae4617 | ||
![]() |
cfd5f691c9 | ||
![]() |
39412ce785 | ||
![]() |
ea065c4ab8 | ||
![]() |
337546b077 | ||
![]() |
f9d76aa3d6 | ||
![]() |
d2d34d8777 | ||
![]() |
f25f8b8446 | ||
![]() |
acb19da9e9 | ||
![]() |
66c8914256 | ||
![]() |
038a286c3b | ||
![]() |
0701e6f1c3 | ||
![]() |
e744bc09fa | ||
![]() |
0228c63316 | ||
![]() |
f27f7b1055 | ||
![]() |
ad10412020 | ||
![]() |
13e9acc454 | ||
![]() |
f4bd2a5db4 | ||
![]() |
5304e96e7c | ||
![]() |
773d4f2e73 | ||
![]() |
7c81cf0dd5 | ||
![]() |
d237896b37 | ||
![]() |
f7fab78724 | ||
![]() |
6c59a5f1a3 | ||
![]() |
662c06d9c7 | ||
![]() |
b0d06ae093 | ||
![]() |
88b0adfcef | ||
![]() |
95d5b96b36 | ||
![]() |
7fb2efee17 | ||
![]() |
be0f16541b | ||
![]() |
eea17d4cd7 | ||
![]() |
d872a8574b | ||
![]() |
6b75862f66 | ||
![]() |
f4ee2db62c | ||
![]() |
4311191155 | ||
![]() |
78138c978a | ||
![]() |
9a1f09c741 | ||
![]() |
275be22a4c | ||
![]() |
292cee6539 | ||
![]() |
d27ee3679c | ||
![]() |
bf0d8fc9d0 | ||
![]() |
1f3a53a755 | ||
![]() |
0887a66d65 | ||
![]() |
2db9736872 | ||
![]() |
492df714dd | ||
![]() |
06cf69e024 | ||
![]() |
7c1ec06ddc | ||
![]() |
b52bac5100 | ||
![]() |
7fab4c8cbb | ||
![]() |
543f422b30 | ||
![]() |
626ede4760 | ||
![]() |
eef89b1660 | ||
![]() |
895dc1f61a | ||
![]() |
de58d8c006 | ||
![]() |
3e9063102a | ||
![]() |
c70e44944d | ||
![]() |
ad436b5d82 | ||
![]() |
c62c0af76c | ||
![]() |
3ef00028e6 | ||
![]() |
169c891474 | ||
![]() |
5434d25098 | ||
![]() |
f5b36b4517 | ||
![]() |
e5cb562af7 | ||
![]() |
17f0d6da43 | ||
![]() |
25dc910491 | ||
![]() |
d1087b6477 | ||
![]() |
50e94bf6fe | ||
![]() |
9b92a5ed83 | ||
![]() |
e000f78db3 | ||
![]() |
05dff2a932 | ||
![]() |
41dea6c121 | ||
![]() |
6c74d0b864 | ||
![]() |
6f85e022d4 | ||
![]() |
bbae53fb35 | ||
![]() |
16f9e43d82 | ||
![]() |
0231178416 | ||
![]() |
4c2a305e61 | ||
![]() |
fae42e4592 | ||
![]() |
9b24adebf2 | ||
![]() |
f1de042f2d | ||
![]() |
6817772063 | ||
![]() |
d91341723b | ||
![]() |
9ae9f31fe9 | ||
![]() |
e768b04589 | ||
![]() |
f2ddd06660 | ||
![]() |
ef93d8635c | ||
![]() |
4ebd332f94 | ||
![]() |
78b024645f | ||
![]() |
2077c74abc | ||
![]() |
fc586597bd | ||
![]() |
cb3a645bda | ||
![]() |
d2ef1c22bd | ||
![]() |
cf99591f15 | ||
![]() |
5991f3a5e2 | ||
![]() |
b121644251 | ||
![]() |
57dedb7d10 | ||
![]() |
91d99c4d77 | ||
![]() |
87d722a8bb | ||
![]() |
78f9e38ef6 | ||
![]() |
e8f8290853 | ||
![]() |
0fd13ff4dd | ||
![]() |
58d9dd4d40 | ||
![]() |
1ab83b0150 | ||
![]() |
ce553f5f1c | ||
![]() |
f088e43dce | ||
![]() |
800262d044 | ||
![]() |
9e2901b3d4 | ||
![]() |
b35dab26c8 | ||
![]() |
9a0102b257 | ||
![]() |
024059f926 | ||
![]() |
2ce70bcb0e | ||
![]() |
442c85f4ea | ||
![]() |
6a9e104b0a | ||
![]() |
ef7df44543 | ||
![]() |
a2eb0d6b3f | ||
![]() |
35c0f4bab3 | ||
![]() |
cd0ee7e84d | ||
![]() |
2ee9860581 | ||
![]() |
7ef423aa2f | ||
![]() |
ba68a75e60 | ||
![]() |
6f20abd7d6 | ||
![]() |
ffaa1494ed | ||
![]() |
57784bac1b | ||
![]() |
1291405328 | ||
![]() |
271a8b8eeb | ||
![]() |
0324ab518e | ||
![]() |
45a3e9719c | ||
![]() |
6321a10f61 | ||
![]() |
bda840986b | ||
![]() |
5aa5e4ea92 | ||
![]() |
32c98e7637 | ||
![]() |
ab57036636 | ||
![]() |
49e5f016e0 | ||
![]() |
99ad00fb86 | ||
![]() |
72ad24d050 | ||
![]() |
f94afabfbb | ||
![]() |
8be98ec12f | ||
![]() |
5742e6395e | ||
![]() |
5e25d4abca | ||
![]() |
1881da3c9e | ||
![]() |
e45af13e62 | ||
![]() |
697f9903d7 | ||
![]() |
1e2668c44b | ||
![]() |
4324fbb529 | ||
![]() |
69fb880bbf | ||
![]() |
273db55a3b | ||
![]() |
3f5e8cf577 | ||
![]() |
88206e0108 | ||
![]() |
2b2f2bed62 | ||
![]() |
c78f234f53 | ||
![]() |
385904de72 | ||
![]() |
caa8330a4a | ||
![]() |
e59fb1708b | ||
![]() |
9dc2b17d95 | ||
![]() |
ee4532a57a | ||
![]() |
2c75932d90 | ||
![]() |
70636baba3 | ||
![]() |
8b9db406a8 | ||
![]() |
e18eaa828a | ||
![]() |
12f859f2ee | ||
![]() |
df5c2b3c7a | ||
![]() |
92dad60f1d | ||
![]() |
b8f6c0417b | ||
![]() |
7473602f05 | ||
![]() |
fbf4c82ee5 | ||
![]() |
4a0c770dff | ||
![]() |
8b6fa52653 | ||
![]() |
12cac4c29e | ||
![]() |
1e4e992d9e | ||
![]() |
ede4c46a43 | ||
![]() |
992f577828 | ||
![]() |
e1784a8d41 | ||
![]() |
2202ca55e5 | ||
![]() |
051a869328 | ||
![]() |
699b665ada | ||
![]() |
bdf87e3718 | ||
![]() |
11d7b5f886 | ||
![]() |
ca256c013f | ||
![]() |
0c53f4588b | ||
![]() |
bfd7ccc79e | ||
![]() |
5b35b5937b | ||
![]() |
8499349011 | ||
![]() |
2b8cf0f308 | ||
![]() |
5e0232429e | ||
![]() |
abad049ea3 | ||
![]() |
44ec78f6cb | ||
![]() |
812032288e | ||
![]() |
946c51b77b | ||
![]() |
f9aa336f93 | ||
![]() |
43d9828355 | ||
![]() |
1f4893bdb1 | ||
![]() |
e48d3a2f68 | ||
![]() |
81c33266b7 | ||
![]() |
2faf1587e0 | ||
![]() |
f212e66726 | ||
![]() |
8585ae3988 | ||
![]() |
4bdec1c00d | ||
![]() |
6b1fb52cbf | ||
![]() |
eeb431151d | ||
![]() |
22cc9c6486 | ||
![]() |
cdd09b4066 | ||
![]() |
901110676d | ||
![]() |
b59549eb58 | ||
![]() |
f9a6291b7f | ||
![]() |
de27d57cd2 | ||
![]() |
d87c26eb2a | ||
![]() |
324d3c7d92 | ||
![]() |
25ad594682 | ||
![]() |
f0cecde9de | ||
![]() |
a61b434952 | ||
![]() |
c3df35dacb | ||
![]() |
3b83def333 | ||
![]() |
3f5fda6bd8 | ||
![]() |
21ac41f961 | ||
![]() |
591957c96e | ||
![]() |
99c099431a | ||
![]() |
81b668ae40 | ||
![]() |
8a64cac72f | ||
![]() |
8f7781ce20 | ||
![]() |
4c5f2ef1b8 | ||
![]() |
de3083f492 | ||
![]() |
2baf7d7e47 | ||
![]() |
0054787fb2 | ||
![]() |
706c8b6aa3 | ||
![]() |
8c7e5acc3c | ||
![]() |
8e8c619a30 | ||
![]() |
8212d0317a | ||
![]() |
03943a9436 | ||
![]() |
79b8fb118e | ||
![]() |
71bbf1ef10 | ||
![]() |
1bc6b49847 | ||
![]() |
873457db91 | ||
![]() |
8e3d3f928f | ||
![]() |
d4b1c839e3 | ||
![]() |
da47a1fa62 | ||
![]() |
5de7b1b072 | ||
![]() |
0f8625f851 | ||
![]() |
b397ca3c8e | ||
![]() |
8bbaa80d22 | ||
![]() |
ffeab66be3 | ||
![]() |
29245c6088 | ||
![]() |
5cd7843155 | ||
![]() |
64ba9a2f98 | ||
![]() |
de69aa6ceb | ||
![]() |
b8c51d1779 | ||
![]() |
efea419043 | ||
![]() |
9590f1a0f0 | ||
![]() |
0a5bf1359b | ||
![]() |
819176ead9 | ||
![]() |
3a6a27d56f | ||
![]() |
5ecaadb118 | ||
![]() |
f9a22ee538 | ||
![]() |
1b1bc5958c | ||
![]() |
7f504e3adc | ||
![]() |
64b08d48dc | ||
![]() |
1527f88e51 | ||
![]() |
1ae7fa0a93 | ||
![]() |
a5b09adaa3 | ||
![]() |
73bb4f108a | ||
![]() |
7e321c1339 | ||
![]() |
6d5d57d92f | ||
![]() |
ad8df22ea6 | ||
![]() |
126df7488f | ||
![]() |
235e47e230 | ||
![]() |
b72e7331f3 | ||
![]() |
64725d983c | ||
![]() |
2c4232d7ff | ||
![]() |
554fa73daf | ||
![]() |
80b7b4ff71 | ||
![]() |
bc9b6c3923 | ||
![]() |
f0533e6b7c | ||
![]() |
e63833bc5c | ||
![]() |
346b2dd7bb | ||
![]() |
7e0197ce31 | ||
![]() |
58ff26a611 | ||
![]() |
3e0c8567df | ||
![]() |
d50cadeae6 | ||
![]() |
cba67fb5df | ||
![]() |
f4f69d7a71 | ||
![]() |
d8f61c2a30 | ||
![]() |
26e9d837d8 | ||
![]() |
a3af67c4c0 | ||
![]() |
c93cef290e | ||
![]() |
68edc3ad83 | ||
![]() |
93f7a52890 | ||
![]() |
b85e6d0d56 | ||
![]() |
d584f9ece7 | ||
![]() |
7735395654 | ||
![]() |
c95811231d | ||
![]() |
9d3cdcebcb | ||
![]() |
5ef27d1806 | ||
![]() |
a5bee00bcb | ||
![]() |
092fcc9317 | ||
![]() |
e75d6b7eb4 | ||
![]() |
65bc2797a6 | ||
![]() |
92150c3054 | ||
![]() |
94b3f09270 | ||
![]() |
c5ec19cfc8 | ||
![]() |
21ef5b1fef | ||
![]() |
5d0e366e4c | ||
![]() |
cfafa22e77 | ||
![]() |
6b4507ad29 | ||
![]() |
510d5832aa | ||
![]() |
5b26a0b7ac | ||
![]() |
f0076b556d | ||
![]() |
959cadc5ba | ||
![]() |
495c156eac | ||
![]() |
033ebf7720 | ||
![]() |
5e03e38c3c | ||
![]() |
8ef7cd731a | ||
![]() |
12eb0f16e1 | ||
![]() |
fdda850e52 | ||
![]() |
b8d752bd7f | ||
![]() |
154e15008a | ||
![]() |
a132bd42a6 | ||
![]() |
8a140d7608 | ||
![]() |
9f847168ec | ||
![]() |
ef26f16389 | ||
![]() |
9737161f16 | ||
![]() |
ab3f1834a7 | ||
![]() |
fe1c16e9cd | ||
![]() |
5d0f193ff7 | ||
![]() |
4798a58e02 | ||
![]() |
f022a14091 | ||
![]() |
6a5b6eb566 | ||
![]() |
e541347e84 | ||
![]() |
df3ac38b36 | ||
![]() |
f21f9b9d7d | ||
![]() |
338041533d | ||
![]() |
af6af373a6 | ||
![]() |
486479e620 | ||
![]() |
f9471854c6 | ||
![]() |
94fe279d1d | ||
![]() |
8fbe3e8afb | ||
![]() |
717d1afc2c | ||
![]() |
e70cc58c03 | ||
![]() |
e3862929db | ||
![]() |
a6be2f6d15 | ||
![]() |
3f10692020 | ||
![]() |
4798bc4522 | ||
![]() |
6c08ac408d | ||
![]() |
65172b14fc | ||
![]() |
bbf49af5ac | ||
![]() |
65db3caad6 | ||
![]() |
1c65d386dd | ||
![]() |
01d6a9481e | ||
![]() |
796363eb5a | ||
![]() |
19be481dfc | ||
![]() |
398c18391e | ||
![]() |
e9bd7e9c55 | ||
![]() |
c83d7f8201 | ||
![]() |
5f53fa0ea0 | ||
![]() |
7a7807bed1 | ||
![]() |
cc2ea9a4f3 | ||
![]() |
551373a086 | ||
![]() |
115d2902a3 | ||
![]() |
7410373fad | ||
![]() |
d6e0360de6 | ||
![]() |
8028341b13 | ||
![]() |
85133f679a | ||
![]() |
c424c6688a | ||
![]() |
5817eafd81 | ||
![]() |
8b6245bc97 | ||
![]() |
adad63a053 | ||
![]() |
79a9ae2870 | ||
![]() |
c49806a515 | ||
![]() |
6fa3ab028a | ||
![]() |
40639065e8 | ||
![]() |
84fc9ab2cc | ||
![]() |
6a1f24af86 | ||
![]() |
390f795dc8 | ||
![]() |
4bd11fe45b | ||
![]() |
e71ff2f2ae | ||
![]() |
4dc463c32a | ||
![]() |
53cc0c9fc2 | ||
![]() |
e8b41f1b5d | ||
![]() |
f38d256f3e | ||
![]() |
630632b4a4 | ||
![]() |
84ec050527 | ||
![]() |
05d1237cb6 | ||
![]() |
2680f18e3f | ||
![]() |
92cd02fdbf | ||
![]() |
2eb0ca23ac | ||
![]() |
d942a697eb | ||
![]() |
c2811fa897 | ||
![]() |
a35fdd9a21 | ||
![]() |
91880179cb | ||
![]() |
f8d5157db3 | ||
![]() |
1b6f22b6e1 | ||
![]() |
b137356bde | ||
![]() |
b4d8ba6b8c | ||
![]() |
6c0585b30f | ||
![]() |
795caf4e83 | ||
![]() |
2c1132bac8 | ||
![]() |
18b7ad8164 | ||
![]() |
77f6a457fd | ||
![]() |
fe44ce07d4 | ||
![]() |
4ce7c1490d | ||
![]() |
e8c9451a23 | ||
![]() |
7cf6c951e8 | ||
![]() |
66a63322aa | ||
![]() |
02a8aa1f23 | ||
![]() |
cda699da02 | ||
![]() |
af7e046cb2 | ||
![]() |
85161572c1 | ||
![]() |
2b083ca3ec | ||
![]() |
5e4c65a751 | ||
![]() |
23df74bba9 | ||
![]() |
41f417cfd5 | ||
![]() |
1f82fff0d5 | ||
![]() |
f3a26d385c | ||
![]() |
1761a1900a | ||
![]() |
2a95425c30 | ||
![]() |
7c2d6950a0 | ||
![]() |
2adb980fbb | ||
![]() |
b4e65c7dae | ||
![]() |
1bcb639dd6 | ||
![]() |
f4d9f05806 | ||
![]() |
fb037eb56b | ||
![]() |
21a2ad89f2 | ||
![]() |
fc05d5dc68 | ||
![]() |
11266c42d9 | ||
![]() |
576833a40a | ||
![]() |
b1a63d49a6 | ||
![]() |
3e3817a0a8 | ||
![]() |
3869224b60 | ||
![]() |
e9d3cdeec3 | ||
![]() |
53b5e83522 | ||
![]() |
3a71d5875a | ||
![]() |
39246dbede | ||
![]() |
1a954ac3c9 | ||
![]() |
41b309803c | ||
![]() |
4a01aa697c | ||
![]() |
48d5b3ee2d | ||
![]() |
d590afc2d0 | ||
![]() |
3cde0a68aa | ||
![]() |
fe0a0e8cf7 | ||
![]() |
827533dabf | ||
![]() |
8c7253050e | ||
![]() |
d411170b49 | ||
![]() |
e954b447ff | ||
![]() |
603841077f | ||
![]() |
9c91986a77 | ||
![]() |
f24b3aef10 | ||
![]() |
4422abc0c4 | ||
![]() |
d40ab65298 | ||
![]() |
2cd4fafbe9 | ||
![]() |
0daac61d8c | ||
![]() |
6eca202fa2 | ||
![]() |
1d5616a514 | ||
![]() |
f8729ba507 | ||
![]() |
3f2dfd2a5d | ||
![]() |
80972cf738 | ||
![]() |
2412e2d057 | ||
![]() |
2ae1b64f64 | ||
![]() |
87558e15bd | ||
![]() |
aee383f947 | ||
![]() |
22a3948985 | ||
![]() |
7487122ea3 | ||
![]() |
5f50f78581 | ||
![]() |
cc71a706e1 | ||
![]() |
9eed243a8e | ||
![]() |
1d3e45a078 | ||
![]() |
b10d57786a | ||
![]() |
c2b44e5773 | ||
![]() |
5fda7d2a02 | ||
![]() |
89bb451dd8 | ||
![]() |
016f3a20fb | ||
![]() |
df1713cfa1 | ||
![]() |
bb14a6b3f1 | ||
![]() |
0898eda7a3 | ||
![]() |
90157b80b7 | ||
![]() |
028aedcd5e | ||
![]() |
ad8da667cc | ||
![]() |
57ca55901a | ||
![]() |
7479b8518e | ||
![]() |
d48fad222c | ||
![]() |
0c81547457 | ||
![]() |
5d519ab279 | ||
![]() |
02cc537182 | ||
![]() |
13956638ee | ||
![]() |
759abf2809 | ||
![]() |
fb8f2b1820 | ||
![]() |
a3ce73c537 | ||
![]() |
d21a27f61e | ||
![]() |
e077459d24 | ||
![]() |
b0a0d8bee6 | ||
![]() |
2cf98d41d6 | ||
![]() |
dd59d75d51 | ||
![]() |
d1145aff90 | ||
![]() |
95cdfde50e | ||
![]() |
645ba84182 | ||
![]() |
f6aa03a2bc | ||
![]() |
3d07c48b6d | ||
![]() |
ae1276d3e7 | ||
![]() |
007dd98afb | ||
![]() |
9d537bbfea | ||
![]() |
b639546b9d | ||
![]() |
9ce94ab4e7 | ||
![]() |
dc2f4ca575 | ||
![]() |
b02ce7473f | ||
![]() |
4fdfb5a7de | ||
![]() |
ce06f5a85c | ||
![]() |
31c5d1b216 | ||
![]() |
bfccc3aeee | ||
![]() |
3f4ef82c5e | ||
![]() |
6c6f2f5371 | ||
![]() |
7026c1458f | ||
![]() |
f131ae5e0c | ||
![]() |
dc6681b640 | ||
![]() |
2462c722a8 | ||
![]() |
fa2dd6cd14 | ||
![]() |
bc38f922ba | ||
![]() |
29ff72356a | ||
![]() |
c5a192e7b9 | ||
![]() |
5f10c814f8 | ||
![]() |
53273f679b | ||
![]() |
27cfef507e | ||
![]() |
71ee1929c2 | ||
![]() |
8f4e626dd0 | ||
![]() |
4022a5c88f | ||
![]() |
689f428ba0 | ||
![]() |
2a398b0769 | ||
![]() |
c54814ba55 | ||
![]() |
8832c250af | ||
![]() |
f2bbb2b75c | ||
![]() |
cec55d37c4 | ||
![]() |
d30f343489 | ||
![]() |
1cd2f10ffb | ||
![]() |
1efdb40a04 | ||
![]() |
07452245d6 | ||
![]() |
fa7ea2335f | ||
![]() |
1d6a12bcab | ||
![]() |
1e017301cd | ||
![]() |
15578f8457 | ||
![]() |
d914ebac16 | ||
![]() |
a595ff24fb | ||
![]() |
01f0fed13f | ||
![]() |
e08e9c922e | ||
![]() |
d8ed3a54e1 | ||
![]() |
1978a96699 | ||
![]() |
6b1d1f2164 | ||
![]() |
0ec2813118 | ||
![]() |
331f8df8c0 | ||
![]() |
c96e1e0e0d | ||
![]() |
c8d717eee1 | ||
![]() |
ef6a7efdaf | ||
![]() |
3df42f8a8e | ||
![]() |
33133f9a4a | ||
![]() |
e30e98aeff | ||
![]() |
1d6fef324c | ||
![]() |
520e6eecd1 | ||
![]() |
999511813e | ||
![]() |
64dc43c35a | ||
![]() |
9e30af648e | ||
![]() |
59646e5027 | ||
![]() |
55a3cd018e | ||
![]() |
c8ff803127 | ||
![]() |
0d3ad13763 | ||
![]() |
f6a0831fab | ||
![]() |
4666ba0eea | ||
![]() |
65d4028a4d | ||
![]() |
0ff34ecdab | ||
![]() |
f20cc2af2b | ||
![]() |
a4ca8cde26 | ||
![]() |
10e80655da | ||
![]() |
3ccb4c9d90 | ||
![]() |
4159aa7e6e | ||
![]() |
b544a21f5f | ||
![]() |
57e9fe0d0b | ||
![]() |
dec6423afc | ||
![]() |
3f5e85a62b | ||
![]() |
febffbf336 | ||
![]() |
ef3471c646 | ||
![]() |
2fe2a2c80c | ||
![]() |
715c4816f5 | ||
![]() |
c80fa8f0c7 | ||
![]() |
0b3aad8e47 | ||
![]() |
1462ac6d32 | ||
![]() |
0269cc3e32 | ||
![]() |
cbc49f1b58 | ||
![]() |
df24227d5f | ||
![]() |
9f15dc52c5 | ||
![]() |
ecdb64bd76 | ||
![]() |
c23ca6a4e3 | ||
![]() |
0efc33fa43 | ||
![]() |
3d8fb4feca | ||
![]() |
80e3b4bd2c | ||
![]() |
e2af951ffa | ||
![]() |
a3379769c0 | ||
![]() |
625fa333ea | ||
![]() |
5b08f9c1aa | ||
![]() |
cd5fc39a6e | ||
![]() |
ac14688c28 | ||
![]() |
7640998245 | ||
![]() |
a169af358f | ||
![]() |
b990514f0d | ||
![]() |
fa302c9068 | ||
![]() |
6f1d9a0592 | ||
![]() |
bd98cd9daa | ||
![]() |
50a1ec1c52 | ||
![]() |
8e1daa81ea | ||
![]() |
38d97c9383 | ||
![]() |
2a071f41a3 | ||
![]() |
ce5b30cb31 | ||
![]() |
d450353239 | ||
![]() |
4494a85ba6 | ||
![]() |
f551593ca8 | ||
![]() |
6666314227 | ||
![]() |
0c42e5041f | ||
![]() |
849af16d7a | ||
![]() |
630cca3264 | ||
![]() |
c4328fb322 | ||
![]() |
13e2fff9ea | ||
![]() |
76ac34db9c | ||
![]() |
5803e4e47b | ||
![]() |
85090e3196 | ||
![]() |
c1f08c43fd | ||
![]() |
ca67bc9e9a | ||
![]() |
f69c312116 | ||
![]() |
c01a6df6ab | ||
![]() |
bb135369ed | ||
![]() |
43ea011495 | ||
![]() |
cfe400f668 | ||
![]() |
1c2c0c207e | ||
![]() |
c9f0d0fce1 | ||
![]() |
a8e190e78a | ||
![]() |
257feaa392 | ||
![]() |
1481762085 | ||
![]() |
0e47aa13a1 | ||
![]() |
a1f3be3afd | ||
![]() |
b9fbd362d9 | ||
![]() |
6606f5725a | ||
![]() |
a6bcf4f574 | ||
![]() |
eb27b6bd76 | ||
![]() |
3b1b1ba88e | ||
![]() |
d472b1018e | ||
![]() |
ec9bd7f5a4 | ||
![]() |
d5a8b4ff6b | ||
![]() |
da21fbfec5 | ||
![]() |
b949d4a261 | ||
![]() |
5067f45a83 | ||
![]() |
c3d011b5be | ||
![]() |
302cd1b322 | ||
![]() |
d5fe78b891 | ||
![]() |
d7873c3668 | ||
![]() |
816a8405d9 | ||
![]() |
c55cb093f9 | ||
![]() |
a02e23b674 | ||
![]() |
3c8fea1b4b | ||
![]() |
295f514108 | ||
![]() |
913c81b5d9 | ||
![]() |
1f2db3a559 | ||
![]() |
114b6f30b4 | ||
![]() |
b0b7cfbaa5 | ||
![]() |
7f600ab680 | ||
![]() |
0ccdd645bc | ||
![]() |
9ace74979e | ||
![]() |
9649b7ab48 | ||
![]() |
d2d410527d | ||
![]() |
f48f922416 | ||
![]() |
377a7bb219 | ||
![]() |
d2ffe89a4d | ||
![]() |
3c0019ab86 | ||
![]() |
21636bce53 | ||
![]() |
0b3e29b453 | ||
![]() |
650c2f14e6 | ||
![]() |
25a45e1eba | ||
![]() |
1f7f41a1ab | ||
![]() |
c4b52471d7 | ||
![]() |
3554e65fda | ||
![]() |
58ad817c74 | ||
![]() |
55efa84cb8 | ||
![]() |
7c78d51856 | ||
![]() |
7df9fb3ead | ||
![]() |
4fe9ec778f | ||
![]() |
708f4d3ba2 | ||
![]() |
64cdfc8a7c | ||
![]() |
9be3b94fb8 | ||
![]() |
a348828e17 | ||
![]() |
bd626856ee | ||
![]() |
ad37acae04 | ||
![]() |
4101a01624 | ||
![]() |
c1f21d6a9e | ||
![]() |
0274593c1a | ||
![]() |
c4b0384ec6 | ||
![]() |
e8b74fb4fa | ||
![]() |
bf58427578 | ||
![]() |
d595e35d0a | ||
![]() |
199f089acc | ||
![]() |
1a62adf8c9 | ||
![]() |
c8329a9079 | ||
![]() |
1840d50c51 | ||
![]() |
1984d794bd | ||
![]() |
98e9960b8a | ||
![]() |
1b17ebe75e | ||
![]() |
615ffff3ca | ||
![]() |
7d8c54b7b9 | ||
![]() |
37cac945d7 | ||
![]() |
ed111a8863 | ||
![]() |
b6cb0e033a | ||
![]() |
8274bf6bcf | ||
![]() |
844d792a9a | ||
![]() |
fb7298cbc7 | ||
![]() |
792e73cd50 | ||
![]() |
1c4c7b5d41 | ||
![]() |
9fea419c52 | ||
![]() |
c78b5ddf0d | ||
![]() |
2b1b3095d1 | ||
![]() |
9f09db82df | ||
![]() |
a29a7f441b | ||
![]() |
99e0744cde | ||
![]() |
64cf5fce96 | ||
![]() |
aea5de6571 | ||
![]() |
9c5739619e | ||
![]() |
eea44a49a2 | ||
![]() |
ea88338da0 | ||
![]() |
857b7f7752 | ||
![]() |
9368c6496f | ||
![]() |
a801d63db5 | ||
![]() |
871e126509 | ||
![]() |
a6206de18a | ||
![]() |
8960007c0c | ||
![]() |
e019db9fdb | ||
![]() |
7bd7b9128a | ||
![]() |
de2dbe02e6 | ||
![]() |
4b12896f89 | ||
![]() |
0937e7de78 | ||
![]() |
d23c74a8be | ||
![]() |
fcaab92837 | ||
![]() |
fb335f7824 | ||
![]() |
acb0ac9333 | ||
![]() |
04ab11df63 | ||
![]() |
eed3f4f839 | ||
![]() |
73bd368b66 | ||
![]() |
6f5e3d0829 | ||
![]() |
18ce1361ef | ||
![]() |
db7b26f315 | ||
![]() |
7770b17ee7 | ||
![]() |
4a07c8cdb9 | ||
![]() |
c144ab7857 | ||
![]() |
73765194e1 | ||
![]() |
f674c88870 | ||
![]() |
6b097d5f9e | ||
![]() |
44b5e1342e | ||
![]() |
3705547f92 | ||
![]() |
545555c06c | ||
![]() |
b246201e6b | ||
![]() |
729be9aea6 | ||
![]() |
99205e09cb | ||
![]() |
0ec0680779 | ||
![]() |
1f646e2b61 | ||
![]() |
2b6f037031 | ||
![]() |
62d73cb2cf | ||
![]() |
d8c4365480 | ||
![]() |
a707767170 | ||
![]() |
b904c404bb | ||
![]() |
9ca3516d39 | ||
![]() |
58fa288158 | ||
![]() |
38f87f38c2 | ||
![]() |
42afe64eb3 | ||
![]() |
2a09efbde3 | ||
![]() |
7685bbbdf4 | ||
![]() |
da12c5512d | ||
![]() |
6b7bed5376 | ||
![]() |
30da7363a0 | ||
![]() |
748f85b33f | ||
![]() |
9190b12c2e | ||
![]() |
6d1348bb3e | ||
![]() |
3e2823bd18 | ||
![]() |
4b89c87336 | ||
![]() |
fc7438bcda | ||
![]() |
44604ef0ee | ||
![]() |
69c06f820e | ||
![]() |
dcc5fa9451 | ||
![]() |
5bcfa0af15 | ||
![]() |
748df3e75a | ||
![]() |
43a6e9526e | ||
![]() |
05d962c004 | ||
![]() |
daaf02865e | ||
![]() |
947d230e20 | ||
![]() |
adb9923f11 | ||
![]() |
28865821d5 | ||
![]() |
34ee199967 | ||
![]() |
1d5440541f | ||
![]() |
248aec6d41 | ||
![]() |
63b5368640 | ||
![]() |
15d83baed9 | ||
![]() |
1afcddd49d | ||
![]() |
9b70c8a1d1 | ||
![]() |
0c037083a9 | ||
![]() |
5d13964200 | ||
![]() |
4a697a1eb3 | ||
![]() |
35c1f8a24b | ||
![]() |
f3cab378cc | ||
![]() |
362bbc1e22 | ||
![]() |
87cf90e892 | ||
![]() |
0e30a8fd34 | ||
![]() |
6ad19f9a74 | ||
![]() |
41db66d6fc | ||
![]() |
c3897e2922 | ||
![]() |
2e1212029e | ||
![]() |
5b6559e084 | ||
![]() |
32a3153566 | ||
![]() |
b6cf4057d0 | ||
![]() |
d5968313b3 | ||
![]() |
7638e00caa | ||
![]() |
25737614cf | ||
![]() |
ffe12feafa | ||
![]() |
71c101a0fa | ||
![]() |
a00477e510 | ||
![]() |
c3b4b6e96c | ||
![]() |
ae8f210306 | ||
![]() |
139b0f4870 | ||
![]() |
8749583563 | ||
![]() |
54fa28a305 | ||
![]() |
ca5ced95d7 | ||
![]() |
5c018e302d | ||
![]() |
716f5a4878 | ||
![]() |
464c871e79 | ||
![]() |
56a8596fe9 | ||
![]() |
8ba0110b24 | ||
![]() |
75ce232c9c | ||
![]() |
602deafe0a | ||
![]() |
07fab67bb1 | ||
![]() |
6b21d0af38 | ||
![]() |
9c99c74835 | ||
![]() |
05c797f133 | ||
![]() |
894f364785 | ||
![]() |
b607828b9d | ||
![]() |
32c87e29aa | ||
![]() |
ee8aa518e5 | ||
![]() |
aebce6444e | ||
![]() |
3ee7537cc8 | ||
![]() |
7091428842 | ||
![]() |
6d79796597 | ||
![]() |
fbf0bbef5c | ||
![]() |
50bea20332 | ||
![]() |
22f4401661 | ||
![]() |
0e92f332da | ||
![]() |
7921dc7e37 | ||
![]() |
0b9f4aebc8 | ||
![]() |
2143a67c8d | ||
![]() |
3b5d81397c | ||
![]() |
af89d59508 | ||
![]() |
74f7e9b4c9 | ||
![]() |
ddac78a1dd | ||
![]() |
0591ba2589 | ||
![]() |
f602540e53 | ||
![]() |
05194dded6 | ||
![]() |
957cba4743 | ||
![]() |
2a41f5c60f | ||
![]() |
f6eab90d0b | ||
![]() |
f415c93d8b | ||
![]() |
cf8e97a71b | ||
![]() |
ac0c464e5b | ||
![]() |
4457e96f9b | ||
![]() |
ddb765f758 | ||
![]() |
cd80e17ce8 | ||
![]() |
edb77f865f | ||
![]() |
a2e3e4fced | ||
![]() |
c3431ff1af | ||
![]() |
62ebac1d4f | ||
![]() |
3f4bff91cd | ||
![]() |
fc00b7501c | ||
![]() |
2ba3adef60 | ||
![]() |
fba0b33855 | ||
![]() |
f33ba7493c | ||
![]() |
1a9f3e144e | ||
![]() |
0732a00253 | ||
![]() |
2f5ae09380 | ||
![]() |
1d0a80e362 | ||
![]() |
7e70887486 | ||
![]() |
99e619ca77 | ||
![]() |
875a5f3081 | ||
![]() |
23cac43c89 | ||
![]() |
6e44e3c729 | ||
![]() |
8a2be493cb | ||
![]() |
b5a1f8aec4 | ||
![]() |
d7b4cc8c6c | ||
![]() |
318be60fa9 | ||
![]() |
56cbe84675 | ||
![]() |
91db8c2e5d | ||
![]() |
e02ca45688 | ||
![]() |
f864d67dbc | ||
![]() |
863767bc9f | ||
![]() |
dca7968160 | ||
![]() |
2fd96adf12 | ||
![]() |
ec64c27225 | ||
![]() |
0dd355a984 | ||
![]() |
495f9835f2 | ||
![]() |
eb70c9cef1 | ||
![]() |
93c051e1a7 | ||
![]() |
e86e48703c | ||
![]() |
145a7fe255 | ||
![]() |
ba555c5a34 | ||
![]() |
b2f5e6ceb7 | ||
![]() |
5eb19f802b | ||
![]() |
23131b83cc | ||
![]() |
2ec67be1e9 | ||
![]() |
e0807d0fb3 | ||
![]() |
25c0384af3 | ||
![]() |
a10c5eb812 | ||
![]() |
5cb28ee173 | ||
![]() |
b486d160a8 | ||
![]() |
afd4517c53 | ||
![]() |
dc9461d2cc | ||
![]() |
433533050c | ||
![]() |
f9e45829b1 | ||
![]() |
d4e50f8263 | ||
![]() |
6b04025154 | ||
![]() |
17f8641ece | ||
![]() |
3780da9230 | ||
![]() |
5f6130f3d0 | ||
![]() |
a5acb4cc84 | ||
![]() |
27086258a6 | ||
![]() |
83194711c3 | ||
![]() |
d809bc6240 | ||
![]() |
51a3d39536 | ||
![]() |
c2a09a1e85 | ||
![]() |
11ea30d1ed | ||
![]() |
8f916fde3c | ||
![]() |
26aac40a50 | ||
![]() |
9f2fbc07fa | ||
![]() |
502cb1dd74 | ||
![]() |
c92df2a45b | ||
![]() |
f0b304a0c6 | ||
![]() |
9ad80e96c2 | ||
![]() |
3e53b6f96f | ||
![]() |
d18325dea7 | ||
![]() |
46c9ec665a | ||
![]() |
d77dda57c2 | ||
![]() |
133e1b134b | ||
![]() |
bdf3fafbac | ||
![]() |
a8098ce577 | ||
![]() |
807d903176 | ||
![]() |
0c546d9a05 | ||
![]() |
6939eda25d | ||
![]() |
be00cc356c | ||
![]() |
5fd61e7460 | ||
![]() |
a82ac381aa | ||
![]() |
a0500b170a | ||
![]() |
0bc7d51380 | ||
![]() |
eb86e00a79 | ||
![]() |
d33d3cae34 | ||
![]() |
e410768f7f | ||
![]() |
421b7f81fd | ||
![]() |
747f025819 | ||
![]() |
66e0f69437 | ||
![]() |
4b59c5aa07 | ||
![]() |
f7dbcd1fca | ||
![]() |
499d8aa343 | ||
![]() |
aeb7a24789 | ||
![]() |
946562e2a5 | ||
![]() |
558ec79281 | ||
![]() |
f113998db1 | ||
![]() |
f39724354c | ||
![]() |
db1dd2bf6a | ||
![]() |
36dd674d93 | ||
![]() |
55eca1c7b2 | ||
![]() |
d17795a9a9 | ||
![]() |
68d59280d8 | ||
![]() |
f8afad537f | ||
![]() |
468d82d9f7 | ||
![]() |
54245b2520 | ||
![]() |
1af49ff41d | ||
![]() |
a21d4daae0 | ||
![]() |
7825d579b4 | ||
![]() |
2e4b0128fa | ||
![]() |
a19da2b7c9 | ||
![]() |
57e79dffb1 | ||
![]() |
8c18ced1a7 | ||
![]() |
8dd8253afb | ||
![]() |
29370b8740 | ||
![]() |
4501c4f5cd | ||
![]() |
192b1a1bd1 | ||
![]() |
abc64d7e19 | ||
![]() |
6c47c82c78 | ||
![]() |
edb86a96cc | ||
![]() |
0f229274e6 | ||
![]() |
78cfcf3206 | ||
![]() |
e41f3e4131 | ||
![]() |
0170bdc737 | ||
![]() |
d38f0f35f9 | ||
![]() |
c1055478ef | ||
![]() |
88ce7d5d82 | ||
![]() |
7eec5856a3 | ||
![]() |
e357a9c813 | ||
![]() |
967b2258b9 | ||
![]() |
f5c4a78fb1 | ||
![]() |
7e2c6a3e62 | ||
![]() |
89c473aac7 | ||
![]() |
c9efab145d | ||
![]() |
89be8f9d56 | ||
![]() |
a5b0a78828 | ||
![]() |
6be213707b | ||
![]() |
0e55883f05 | ||
![]() |
033c8f432d | ||
![]() |
dc9bb23ade | ||
![]() |
629c25208d | ||
![]() |
bf6aa0132c | ||
![]() |
4dfe51aa01 | ||
![]() |
e735c69371 | ||
![]() |
ae41d2f5c1 | ||
![]() |
dc00bab703 | ||
![]() |
d06fbfc7f3 | ||
![]() |
e09d83368c | ||
![]() |
1ddcc7b3fc | ||
![]() |
db6c457d5c | ||
![]() |
1e3b3f6a5e | ||
![]() |
26c755f312 | ||
![]() |
095dbdbf59 | ||
![]() |
f9a87273bb | ||
![]() |
b6dbad7d88 | ||
![]() |
8400db5161 | ||
![]() |
2e2f6ca4de | ||
![]() |
04d063e759 | ||
![]() |
e50171cdf4 | ||
![]() |
ffd79887c1 | ||
![]() |
994023df1e | ||
![]() |
e8756d084b | ||
![]() |
919f7f5ae7 | ||
![]() |
f98f6ff9e0 | ||
![]() |
b70ea3d72a | ||
![]() |
6eba76bd26 | ||
![]() |
fee5f98406 | ||
![]() |
551552f67f | ||
![]() |
6cff923227 | ||
![]() |
1399f55ed4 | ||
![]() |
79fdc2ef78 | ||
![]() |
f4a12a2a3b | ||
![]() |
edf7bf23e3 | ||
![]() |
1887a32ca2 | ||
![]() |
a1405af086 | ||
![]() |
de487d56be | ||
![]() |
5fd9819f5f | ||
![]() |
b86255479c | ||
![]() |
67218b0d19 | ||
![]() |
cdad22386e | ||
![]() |
cb6a705473 | ||
![]() |
e0523db53d | ||
![]() |
c49bca76d7 | ||
![]() |
3d598445e3 | ||
![]() |
949c597508 | ||
![]() |
ca32702aa0 | ||
![]() |
0ccc5d3faa | ||
![]() |
4c8f4dcdfc | ||
![]() |
d64fa185db | ||
![]() |
cd33dc926f | ||
![]() |
fd63105282 | ||
![]() |
dda7fcf987 | ||
![]() |
b597a36454 | ||
![]() |
b2636aa4c1 | ||
![]() |
b3fe37dd3d | ||
![]() |
d62aeb54b9 | ||
![]() |
dab578a096 | ||
![]() |
42ff8d51c0 | ||
![]() |
68fe393de4 | ||
![]() |
4493457cfa | ||
![]() |
5b49d3629c | ||
![]() |
244330f96e | ||
![]() |
7f002b3158 | ||
![]() |
d3d3a58f6e | ||
![]() |
bec8bb64e1 | ||
![]() |
580a711cb1 | ||
![]() |
23de4dd79e | ||
![]() |
21eb34fec7 | ||
![]() |
4248a8dadd | ||
![]() |
5ac0392c81 | ||
![]() |
10e4f45ac0 | ||
![]() |
52531187b6 | ||
![]() |
91238492d9 | ||
![]() |
cd048ea1e4 | ||
![]() |
72a1732d4f | ||
![]() |
3c4d46ec33 | ||
![]() |
ef8b444526 | ||
![]() |
cb5c20b678 | ||
![]() |
9a076a7d97 | ||
![]() |
b3bc9aa5a8 | ||
![]() |
ae0bd1f240 | ||
![]() |
2f08be65dd | ||
![]() |
1276f80f98 | ||
![]() |
dc747fad0b | ||
![]() |
bbbf496e55 | ||
![]() |
0be0639df2 | ||
![]() |
aa41235bb1 | ||
![]() |
67e0819a58 | ||
![]() |
c34cb47590 | ||
![]() |
3bad978a1a | ||
![]() |
eb9a8113a3 | ||
![]() |
bceeafc8fd | ||
![]() |
7ce64c3b69 | ||
![]() |
e567a01fec | ||
![]() |
41ad317a6d | ||
![]() |
9ca7b53525 | ||
![]() |
63dc8d573e | ||
![]() |
5d97bb6ee7 | ||
![]() |
9d99e7dd5b | ||
![]() |
1a8785d923 | ||
![]() |
b8ff60572a | ||
![]() |
e197f1da4f | ||
![]() |
2d528c3c8d | ||
![]() |
dc20615b37 | ||
![]() |
047ac39af8 | ||
![]() |
4c1b8b2c6f | ||
![]() |
861ed0de56 | ||
![]() |
97864349cc | ||
![]() |
e8fd10468f | ||
![]() |
332e9e8a34 | ||
![]() |
cf1a09c9a7 | ||
![]() |
146884c135 | ||
![]() |
b875ca4ec9 | ||
![]() |
9570205b8a | ||
![]() |
947221b4fb | ||
![]() |
0579065c4c | ||
![]() |
df27520950 | ||
![]() |
aacefe5192 | ||
![]() |
62a7e09e0d | ||
![]() |
a6d0384463 | ||
![]() |
dc81749d44 | ||
![]() |
11423e276a | ||
![]() |
4ca664384d | ||
![]() |
287ddc84da | ||
![]() |
5c80a1463b | ||
![]() |
943166ff54 | ||
![]() |
ff142d955f | ||
![]() |
8d2fbb7eb6 | ||
![]() |
d91fcfedd7 | ||
![]() |
ffc4ad7fd3 | ||
![]() |
fe8f993a09 | ||
![]() |
2e0424da1b | ||
![]() |
4b24a4110d | ||
![]() |
d732f1fc51 | ||
![]() |
c0cc07ca93 | ||
![]() |
32af1f92eb | ||
![]() |
d2e42fb3ee | ||
![]() |
96f78dabcc | ||
![]() |
7b58635b7a | ||
![]() |
a638b6d4f2 | ||
![]() |
9291b82212 | ||
![]() |
c338ddedc1 | ||
![]() |
02d809987a | ||
![]() |
2779bfdf01 | ||
![]() |
1cfebe3f24 | ||
![]() |
c08ed0777d | ||
![]() |
7378b389fe | ||
![]() |
68c7f58148 | ||
![]() |
9e70dd7aea | ||
![]() |
9afd1a7e2a | ||
![]() |
67893bd836 | ||
![]() |
c9d759856f | ||
![]() |
52575a7a8c | ||
![]() |
cbd74dfa4b | ||
![]() |
cc1606c4f0 | ||
![]() |
34a3d09c10 | ||
![]() |
53b7ad097a | ||
![]() |
c06825e675 | ||
![]() |
9913f90294 | ||
![]() |
7c47f7c73b | ||
![]() |
8cacec6c93 | ||
![]() |
600279ff2b | ||
![]() |
8b678034a2 | ||
![]() |
b846e12cee | ||
![]() |
c739918a1d | ||
![]() |
ca369ed8d1 | ||
![]() |
b3ebd57893 | ||
![]() |
b88fd4b669 | ||
![]() |
acf5d5e908 | ||
![]() |
b04c6f55ab | ||
![]() |
7aac904d3c | ||
![]() |
77f2925eb3 | ||
![]() |
a90bf53050 | ||
![]() |
e1a47955c4 | ||
![]() |
1c64281504 | ||
![]() |
4f767a442f | ||
![]() |
d8196abb41 | ||
![]() |
efd18a5221 | ||
![]() |
c13002a7cf | ||
![]() |
16297b41e4 | ||
![]() |
9efee1f3fd | ||
![]() |
97801c76d1 | ||
![]() |
f0c98a8d8a | ||
![]() |
9a68dda690 | ||
![]() |
9703f07095 | ||
![]() |
e3348774d5 | ||
![]() |
5b6ee8d932 | ||
![]() |
c226e12e98 | ||
![]() |
02a2c19bf6 | ||
![]() |
7d3e9bd163 | ||
![]() |
5e68bddd6b | ||
![]() |
1d3b96559f | ||
![]() |
65350fb284 | ||
![]() |
882dfc4741 | ||
![]() |
83671bae11 | ||
![]() |
f38613bb8d | ||
![]() |
43daa3c38f | ||
![]() |
f3982278e6 | ||
![]() |
d214e31e38 | ||
![]() |
ce198b356f | ||
![]() |
aa3e354dd5 | ||
![]() |
cd50c3984e | ||
![]() |
7780bb0835 | ||
![]() |
5e41163c09 | ||
![]() |
e2dbf474d8 | ||
![]() |
9bc2d17db3 | ||
![]() |
f09e7dd6b3 | ||
![]() |
171768b257 | ||
![]() |
2ba75947e3 | ||
![]() |
6ec8ea5fe1 | ||
![]() |
d6d4099b08 | ||
![]() |
7d20c7c120 | ||
![]() |
a422c6c644 | ||
![]() |
9737e2d4ed | ||
![]() |
a3d7a1a2ed | ||
![]() |
2290b36a60 | ||
![]() |
758db5b001 | ||
![]() |
399f853aa9 | ||
![]() |
9cd1c62ffa | ||
![]() |
e3d9a2c985 | ||
![]() |
498f5148a1 | ||
![]() |
8640390354 | ||
![]() |
56e6944f92 | ||
![]() |
e47c2094dd | ||
![]() |
1adda1a865 | ||
![]() |
356396f6c3 | ||
![]() |
5ef6847c83 | ||
![]() |
155170e061 | ||
![]() |
13685e4388 | ||
![]() |
0be3deac04 | ||
![]() |
3729e3401a | ||
![]() |
de5476b910 | ||
![]() |
ba2542e0c2 | ||
![]() |
6efab9994b | ||
![]() |
6984822651 | ||
![]() |
7e1e44dc62 | ||
![]() |
59b17408c6 | ||
![]() |
4cc0f4f2f4 | ||
![]() |
d0d7be2983 | ||
![]() |
f5c7691e7a | ||
![]() |
cbca7ba17a | ||
![]() |
e460e37927 | ||
![]() |
782c77def0 | ||
![]() |
3d3cecf34d | ||
![]() |
c67907f872 | ||
![]() |
7f45922477 | ||
![]() |
b75a6767e8 | ||
![]() |
0150f5f926 | ||
![]() |
98bebea186 | ||
![]() |
56a4cbfc19 | ||
![]() |
60220b5b83 | ||
![]() |
304146395d | ||
![]() |
a5635a782f | ||
![]() |
df66fb784c | ||
![]() |
9a9a1ce716 | ||
![]() |
5c3a1ca3eb | ||
![]() |
95226eed34 | ||
![]() |
33a61daca9 | ||
![]() |
6c71397839 | ||
![]() |
9fba60d754 | ||
![]() |
a115ee2fba | ||
![]() |
31e2d80802 | ||
![]() |
bbbd3e8ad1 | ||
![]() |
9edc233ee7 | ||
![]() |
c030fac063 | ||
![]() |
36401996a5 | ||
![]() |
c4a57d2fbe | ||
![]() |
f0e4fda91b | ||
![]() |
d95d8e93b9 | ||
![]() |
2ce3ae15bf | ||
![]() |
c592c8b549 | ||
![]() |
9f8afc3ce9 | ||
![]() |
2b4e7abe21 | ||
![]() |
3c0ea943b0 | ||
![]() |
9757af64f1 | ||
![]() |
b24255db5e | ||
![]() |
5aa726f723 | ||
![]() |
e42a4816ac | ||
![]() |
4137501136 | ||
![]() |
f72d263ecb | ||
![]() |
41bc99cc17 | ||
![]() |
e71c5057ac | ||
![]() |
4190ba4790 | ||
![]() |
1f1e7edd2a | ||
![]() |
b4151987ad | ||
![]() |
6fbb923377 | ||
![]() |
1743f57c9c | ||
![]() |
4c06b1802d | ||
![]() |
5c222a8684 | ||
![]() |
ad837a4f68 | ||
![]() |
8f9884ade2 | ||
![]() |
8ae4fed70a | ||
![]() |
349820a7d1 | ||
![]() |
5bbdaaf114 | ||
![]() |
455eb537ac | ||
![]() |
a37efaa61b | ||
![]() |
3a98e867cb | ||
![]() |
15d7b9ed6d | ||
![]() |
cc87dce84d | ||
![]() |
c651866df3 | ||
![]() |
e19782fb04 | ||
![]() |
17d0b6dd0b | ||
![]() |
201e025ee8 | ||
![]() |
448c43ff43 | ||
![]() |
cd292b687f | ||
![]() |
19ee2e65b8 | ||
![]() |
a276545019 | ||
![]() |
b892818d23 | ||
![]() |
28b8432101 | ||
![]() |
772f808741 | ||
![]() |
cdd6008fbb | ||
![]() |
e1214a9ccc | ||
![]() |
426e8266c5 | ||
![]() |
821232a3c4 | ||
![]() |
6a8f254286 | ||
![]() |
1af4aa7ac9 | ||
![]() |
b031cab8df | ||
![]() |
56a60b7f0a | ||
![]() |
1e6d856921 | ||
![]() |
53ecdac6f1 | ||
![]() |
3b6636b0ef | ||
![]() |
5102a5d757 | ||
![]() |
869d99ce0f | ||
![]() |
2d2739c33a | ||
![]() |
b7bd9bd90e | ||
![]() |
b7954d8a33 | ||
![]() |
7b7c79acb3 | ||
![]() |
4b76119c68 | ||
![]() |
10b721602f | ||
![]() |
21297be965 | ||
![]() |
85f3189476 | ||
![]() |
cf1a4a6345 | ||
![]() |
9294e3e676 | ||
![]() |
85c4df40cd | ||
![]() |
62e0250560 | ||
![]() |
cd72744191 | ||
![]() |
c38fc91d9d | ||
![]() |
b76d1302b1 | ||
![]() |
bbbcbd2b23 | ||
![]() |
6c53b6664f | ||
![]() |
6f49a10c0c | ||
![]() |
ad190e72fe | ||
![]() |
259782bc5e | ||
![]() |
98ed2982ec | ||
![]() |
27dd8f698e | ||
![]() |
0bb88f2eda | ||
![]() |
0886756196 | ||
![]() |
1232a9d64c | ||
![]() |
a0ef0d32fe | ||
![]() |
96d14d009d | ||
![]() |
1fcc337ab7 | ||
![]() |
0f2c58a7cc | ||
![]() |
f4c8d08849 | ||
![]() |
5effaf1761 | ||
![]() |
940432bfee | ||
![]() |
3fa3b411f6 | ||
![]() |
59aaa96760 | ||
![]() |
f07e3fd77f | ||
![]() |
0fdcdfd35b | ||
![]() |
ed3de3f984 | ||
![]() |
f1840c82ae | ||
![]() |
b1ae386d8f | ||
![]() |
55d0e8bf1e | ||
![]() |
d5ffdf4330 | ||
![]() |
08b47b0ba7 | ||
![]() |
bae367bf31 | ||
![]() |
d7e05cabb9 | ||
![]() |
7cf8aa2e57 | ||
![]() |
8225ee4fc6 | ||
![]() |
ae72763b86 | ||
![]() |
2653a66f19 | ||
![]() |
0272238cb6 | ||
![]() |
87bb8a408c | ||
![]() |
38c7d87300 | ||
![]() |
544251e681 | ||
![]() |
79079a1588 | ||
![]() |
c90677d575 | ||
![]() |
544eab8907 | ||
![]() |
9b8fbbe710 | ||
![]() |
3cf40177fb | ||
![]() |
3a9b0d3b4f | ||
![]() |
30046f9723 | ||
![]() |
1944178657 | ||
![]() |
aa82816129 | ||
![]() |
ae6582d8c7 | ||
![]() |
d865a554b1 | ||
![]() |
a5b87a0d48 | ||
![]() |
56366d252e | ||
![]() |
40d0bbcd04 | ||
![]() |
337863256a | ||
![]() |
d536bf88ec | ||
![]() |
5a94b0cafc | ||
![]() |
d50dbef8b0 | ||
![]() |
6c22baa03c | ||
![]() |
7e6c59b984 | ||
![]() |
1e53c43669 | ||
![]() |
e1d6198d07 | ||
![]() |
3e95f45a26 | ||
![]() |
932bb5bb7c | ||
![]() |
bc217cf94d | ||
![]() |
9cd63043c7 | ||
![]() |
d574b31723 | ||
![]() |
f9f90a78aa | ||
![]() |
2751b27d8e | ||
![]() |
763cd2a116 | ||
![]() |
e35c881c60 | ||
![]() |
5ddd49417e | ||
![]() |
a536aeb484 | ||
![]() |
d556f0600c | ||
![]() |
86a070ba95 | ||
![]() |
8b43d65db7 | ||
![]() |
a442a10435 | ||
![]() |
0f19d7e7a3 | ||
![]() |
40b55f8623 | ||
![]() |
f0a9cb7eb5 | ||
![]() |
baf1cd6f6f | ||
![]() |
363da11e66 | ||
![]() |
a6ed269baf | ||
![]() |
bdd345a093 | ||
![]() |
c5ebba6a5f | ||
![]() |
f22219bc24 | ||
![]() |
b2c586c124 | ||
![]() |
d4e2e3855a | ||
![]() |
c14486d19c | ||
![]() |
59b965453e | ||
![]() |
7202c98a32 | ||
![]() |
4216da2c74 | ||
![]() |
f095be3ebf | ||
![]() |
6581ab3f07 | ||
![]() |
c8ef22ea1f | ||
![]() |
bd32283899 | ||
![]() |
ef180673e3 | ||
![]() |
50b0432d75 | ||
![]() |
7de9b3831a | ||
![]() |
cca505e8d7 | ||
![]() |
dc1a243d40 | ||
![]() |
a905829b4b | ||
![]() |
b02409072e | ||
![]() |
b4a187a288 | ||
![]() |
afcdf55278 | ||
![]() |
57009f9900 | ||
![]() |
30088827f8 | ||
![]() |
3cb256e558 | ||
![]() |
cc387a31a8 | ||
![]() |
255d499dd1 | ||
![]() |
035e220e4a | ||
![]() |
12ef109fb1 | ||
![]() |
7d72f76698 | ||
![]() |
33e4902051 | ||
![]() |
5bbdf2fba6 | ||
![]() |
6f259cefd2 | ||
![]() |
8ab3b8216d | ||
![]() |
e93f03c1e4 | ||
![]() |
38c207c315 | ||
![]() |
2bdc69ea0b | ||
![]() |
6daf9a2b07 | ||
![]() |
9f6ffa3b2e | ||
![]() |
e0d5aef2a3 | ||
![]() |
b61bc913ca | ||
![]() |
2ac08c9d70 | ||
![]() |
9e37910ee5 | ||
![]() |
0b8805bc3d | ||
![]() |
eadf410bbe | ||
![]() |
b735c4a72a | ||
![]() |
98f78cf864 | ||
![]() |
7d726253df | ||
![]() |
91824ad6c8 | ||
![]() |
55dc0cf6e0 | ||
![]() |
808cf6778b | ||
![]() |
d1c3493765 | ||
![]() |
85c11d850d | ||
![]() |
10680abda7 | ||
![]() |
200738a370 | ||
![]() |
6a8b73a2f3 | ||
![]() |
a66b7764f6 | ||
![]() |
0be1c37af5 | ||
![]() |
afe52a9cf8 | ||
![]() |
6ef0db07d1 | ||
![]() |
960163ea48 | ||
![]() |
ec9d4c1f18 | ||
![]() |
7f67534357 | ||
![]() |
f411b856f8 | ||
![]() |
e37cc98b6d | ||
![]() |
ac5787fa65 | ||
![]() |
e7e03c2743 | ||
![]() |
106c5f8f5c | ||
![]() |
83edce7155 | ||
![]() |
dff02a2998 | ||
![]() |
7769513ca5 | ||
![]() |
6014de4ee7 | ||
![]() |
73aedd8a72 | ||
![]() |
ec921b81ba | ||
![]() |
6c22afe293 | ||
![]() |
efb747ae43 | ||
![]() |
5028696803 | ||
![]() |
ae3ec197df | ||
![]() |
2970f04de9 | ||
![]() |
9d95878f07 | ||
![]() |
0c9ddbbfc5 | ||
![]() |
49733e1be3 | ||
![]() |
c648e063d0 | ||
![]() |
3822d8810c | ||
![]() |
0e286885a9 | ||
![]() |
15dc8460b4 | ||
![]() |
bb1d9165e4 | ||
![]() |
b3ad7dfa6d | ||
![]() |
3cc51b29df | ||
![]() |
78849085f0 | ||
![]() |
e3320c4084 | ||
![]() |
22e48de898 | ||
![]() |
7e6ede5392 | ||
![]() |
5a120d6807 | ||
![]() |
ca239f0353 | ||
![]() |
6a614f832e | ||
![]() |
163223d2ae | ||
![]() |
5e4f21998b | ||
![]() |
afa1845884 | ||
![]() |
c5dcdeeeb9 | ||
![]() |
0a28808076 | ||
![]() |
681addbc44 | ||
![]() |
3070b92a1a | ||
![]() |
3bc82f8ba2 | ||
![]() |
182dffbb2b | ||
![]() |
e6e9899fde | ||
![]() |
0c8ae83437 | ||
![]() |
12304b6c69 | ||
![]() |
d4821f4081 | ||
![]() |
f1db2b938a | ||
![]() |
62a2237b12 | ||
![]() |
5b601650c1 | ||
![]() |
4fff115484 | ||
![]() |
2030d6bedc | ||
![]() |
188183f268 | ||
![]() |
cc594845f2 | ||
![]() |
c2fc6d75f2 | ||
![]() |
1ab2060f49 | ||
![]() |
91a8c49b97 | ||
![]() |
8978d06c91 | ||
![]() |
91c14686eb | ||
![]() |
ba8724cf5a | ||
![]() |
2d85619f08 | ||
![]() |
051a214db7 | ||
![]() |
1003347044 | ||
![]() |
b53ab6b5c6 | ||
![]() |
df72ed55f2 | ||
![]() |
08795be652 | ||
![]() |
ec0e35123a | ||
![]() |
07725d6663 | ||
![]() |
83285cb60e | ||
![]() |
1435bb3c45 | ||
![]() |
3860aa554d | ||
![]() |
f9f4ab050a | ||
![]() |
8488eb63a7 | ||
![]() |
8a0fa4c063 | ||
![]() |
47ed4c56f3 | ||
![]() |
4e342e03f0 | ||
![]() |
f63b41b577 | ||
![]() |
20890304d0 | ||
![]() |
eff3d26529 | ||
![]() |
43b0074e9f | ||
![]() |
6aae9b8202 | ||
![]() |
1d9f2399f1 | ||
![]() |
59c66e6c28 | ||
![]() |
ef3d4e20a4 | ||
![]() |
27ced8e41c | ||
![]() |
2441f85244 | ||
![]() |
c1aaef52f7 | ||
![]() |
f07e641c06 | ||
![]() |
14d989aaab | ||
![]() |
57f18bb17e | ||
![]() |
5627741945 | ||
![]() |
dd9a30caed | ||
![]() |
478527cfe6 | ||
![]() |
94187f16f7 | ||
![]() |
155991d08b | ||
![]() |
8e7e1286be | ||
![]() |
4b273b74cb | ||
![]() |
1fc6144cc0 | ||
![]() |
90e5588e5d | ||
![]() |
c57db8ae34 | ||
![]() |
634e4f7bbb | ||
![]() |
4f9889ce48 | ||
![]() |
55e5545d5b | ||
![]() |
8922818463 | ||
![]() |
1914d5fb39 | ||
![]() |
98df5fc473 | ||
![]() |
ae951cdfcc | ||
![]() |
a567590b51 | ||
![]() |
e76d7e56b6 | ||
![]() |
6d004c4bca | ||
![]() |
bab82c9802 | ||
![]() |
73a941a879 | ||
![]() |
868c89fd7e | ||
![]() |
c050ff8e3d | ||
![]() |
1fec873770 | ||
![]() |
877dae612d | ||
![]() |
5bf7da2074 | ||
![]() |
9c850f5235 | ||
![]() |
bd837d91ab | ||
![]() |
c4e1c722b1 | ||
![]() |
85e612ec79 |
1
.github/CODEOWNERS
vendored
Normal file
1
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
* @gofiber/maintainers
|
79
.github/ISSUE_TEMPLATE/bug-report.yaml
vendored
Normal file
79
.github/ISSUE_TEMPLATE/bug-report.yaml
vendored
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
name: "\U0001F41B Bug Report"
|
||||||
|
title: "\U0001F41B [Bug]: "
|
||||||
|
description: Create a bug report to help us fix it.
|
||||||
|
labels: ["☢️ Bug"]
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
id: notice
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
### Notice
|
||||||
|
- Dont't forget you can ask your questions on our [Discord server](https://gofiber.io/discord).
|
||||||
|
- If you think Fiber storage don't have a nice feature that you think, open the issue with **✏️ Feature Request** template.
|
||||||
|
- Write your issue with clear and understandable English.
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: "Bug Description"
|
||||||
|
description: "A clear and detailed description of what the bug is."
|
||||||
|
placeholder: "Explain your problem as clear and detailed."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: how-to-reproduce
|
||||||
|
attributes:
|
||||||
|
label: How to Reproduce
|
||||||
|
description: "Steps to reproduce the behavior and what should be observed in the end."
|
||||||
|
placeholder: "Tell us step by step how we can replicate your problem and what we should see in the end."
|
||||||
|
value: |
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '....'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Do '....'
|
||||||
|
4. See '....'
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: expected-behavior
|
||||||
|
attributes:
|
||||||
|
label: Expected Behavior
|
||||||
|
description: "A clear and detailed description of what you think should happens."
|
||||||
|
placeholder: "Tell us what storage should normally do."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: "Storage package Version"
|
||||||
|
description: "Some bugs may be fixed in future storage releases, so we have to know your storage package version."
|
||||||
|
placeholder: "Write your storage version. (v1.0.0, v1.1.0...)"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: snippet
|
||||||
|
attributes:
|
||||||
|
label: "Code Snippet (optional)"
|
||||||
|
description: "For some issues, we need to know some parts of your code."
|
||||||
|
placeholder: "Share a code you think related to the issue."
|
||||||
|
render: go
|
||||||
|
value: |
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "github.com/gofiber/storage/%package%"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Steps to reproduce
|
||||||
|
}
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: "Checklist:"
|
||||||
|
description: "By submitting this issue, you confirm that:"
|
||||||
|
options:
|
||||||
|
- label: "I agree to follow Fiber's [Code of Conduct](https://github.com/gofiber/fiber/blob/master/.github/CODE_OF_CONDUCT.md)."
|
||||||
|
required: true
|
||||||
|
- label: "I have checked for existing issues that describe my problem prior to opening this one."
|
||||||
|
required: true
|
||||||
|
- label: "I understand that improperly formatted bug reports may be closed without explanation."
|
||||||
|
required: true
|
55
.github/ISSUE_TEMPLATE/feature-request.yaml
vendored
Normal file
55
.github/ISSUE_TEMPLATE/feature-request.yaml
vendored
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
name: "\U0001F680 Feature Request"
|
||||||
|
title: "\U0001F680 [Feature]: "
|
||||||
|
description: Suggest an idea to improve this project.
|
||||||
|
labels: ["✏️ Feature"]
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
id: notice
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
### Notice
|
||||||
|
- Dont't forget you can ask your questions on our [Discord server](https://gofiber.io/discord).
|
||||||
|
- If you think this is just a bug, open the issue with **☢️ Bug Report** template.
|
||||||
|
- Write your issue with clear and understandable English.
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: "Feature Description"
|
||||||
|
description: "A clear and detailed description of the feature we need to do."
|
||||||
|
placeholder: "Explain your feature as clear and detailed."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: additional-context
|
||||||
|
attributes:
|
||||||
|
label: "Additional Context (optional)"
|
||||||
|
description: "If you have something else to describe, write them here."
|
||||||
|
placeholder: "Write here what you can describe differently."
|
||||||
|
- type: textarea
|
||||||
|
id: snippet
|
||||||
|
attributes:
|
||||||
|
label: "Code Snippet (optional)"
|
||||||
|
description: "Code snippet may be really helpful to describe some features."
|
||||||
|
placeholder: "Share a code to explain the feature better."
|
||||||
|
render: go
|
||||||
|
value: |
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "github.com/gofiber/storage/%package%"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Steps to reproduce
|
||||||
|
}
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: "Checklist:"
|
||||||
|
description: "By submitting this issue, you confirm that:"
|
||||||
|
options:
|
||||||
|
- label: "I agree to follow Fiber's [Code of Conduct](https://github.com/gofiber/fiber/blob/master/.github/CODE_OF_CONDUCT.md)."
|
||||||
|
required: true
|
||||||
|
- label: "I have checked for existing issues that describe my suggestion prior to opening this one."
|
||||||
|
required: true
|
||||||
|
- label: "I understand that improperly formatted feature requests may be closed without explanation."
|
||||||
|
required: true
|
50
.github/ISSUE_TEMPLATE/question.yaml
vendored
Normal file
50
.github/ISSUE_TEMPLATE/question.yaml
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
name: "🤔 Question"
|
||||||
|
title: "\U0001F917 [Question]: "
|
||||||
|
description: Ask a question so we can help you easily.
|
||||||
|
labels: ["🤔 Question"]
|
||||||
|
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
id: notice
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
### Notice
|
||||||
|
- Dont't forget you can ask your questions on our [Discord server](https://gofiber.io/discord).
|
||||||
|
- If you think this is just a bug, open the issue with **☢️ Bug Report** template.
|
||||||
|
- If you think Fiber storage don't have a nice feature that you think, open the issue with **✏️ Feature Request** template.
|
||||||
|
- Write your issue with clear and understandable English.
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: "Question Description"
|
||||||
|
description: "A clear and detailed description of the question."
|
||||||
|
placeholder: "Explain your question as clear and detailed."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: snippet
|
||||||
|
attributes:
|
||||||
|
label: "Code Snippet (optional)"
|
||||||
|
description: "Code snippet may be really helpful to describe some features."
|
||||||
|
placeholder: "Share a code to explain the feature better."
|
||||||
|
render: go
|
||||||
|
value: |
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "github.com/gofiber/storage/%package%"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Steps to reproduce
|
||||||
|
}
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: "Checklist:"
|
||||||
|
description: "By submitting this issue, you confirm that:"
|
||||||
|
options:
|
||||||
|
- label: "I agree to follow Fiber's [Code of Conduct](https://github.com/gofiber/fiber/blob/master/.github/CODE_OF_CONDUCT.md)."
|
||||||
|
required: true
|
||||||
|
- label: "I have checked for existing issues that describe my questions prior to opening this one."
|
||||||
|
required: true
|
||||||
|
- label: "I understand that improperly formatted questions may be closed without explanation."
|
||||||
|
required: true
|
121
.github/dependabot.yml
vendored
121
.github/dependabot.yml
vendored
@@ -1,105 +1,24 @@
|
|||||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||||
|
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#directories
|
||||||
|
|
||||||
version: 2
|
version: 2
|
||||||
updates:
|
updates:
|
||||||
- package-ecosystem: "github-actions"
|
- package-ecosystem: "github-actions"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
labels:
|
||||||
interval: daily
|
- "🤖 Dependencies"
|
||||||
labels:
|
schedule:
|
||||||
- "🤖 Dependencies"
|
interval: "daily"
|
||||||
- package-ecosystem: "gomod"
|
- package-ecosystem: "gomod"
|
||||||
directory: "/" # Location of package manifests
|
directories:
|
||||||
labels:
|
- "**/*"
|
||||||
- "🤖 Dependencies"
|
labels:
|
||||||
schedule:
|
- "🤖 Dependencies"
|
||||||
interval: "daily"
|
schedule:
|
||||||
- package-ecosystem: "gomod"
|
interval: "daily"
|
||||||
directory: "/arangodb/" # Location of package manifests
|
- package-ecosystem: "gomod"
|
||||||
labels:
|
directory: "/clickhouse/" # Location of package manifests
|
||||||
- "🤖 Dependencies"
|
labels:
|
||||||
schedule:
|
- "🤖 Dependencies"
|
||||||
interval: "daily"
|
schedule:
|
||||||
- package-ecosystem: "gomod"
|
interval: "daily"
|
||||||
directory: "/badger/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/dynamodb/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/memcache/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/memory/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/mongodb/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/mysql/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/postgres/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/redis/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/sqlite3/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/ristretto/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/s3/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/bbolt/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
- package-ecosystem: "gomod"
|
|
||||||
directory: "/azureblob/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
directory: "/mssql/" # Location of package manifests
|
|
||||||
labels:
|
|
||||||
- "🤖 Dependencies"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
||||||
|
13
.github/labeler.yml
vendored
13
.github/labeler.yml
vendored
@@ -2,16 +2,19 @@ version: v1
|
|||||||
labels:
|
labels:
|
||||||
- label: '📒 Documentation'
|
- label: '📒 Documentation'
|
||||||
matcher:
|
matcher:
|
||||||
title: '\b(docs|doc:|\[doc\]|README|typos|comment|documentation)\b|[📝📒📚]'
|
title: '\b(docs|doc:|\[doc\]|README|typos|comment|documentation)\b'
|
||||||
- label: '☢️ Bug'
|
- label: '☢️ Bug'
|
||||||
matcher:
|
matcher:
|
||||||
title: '\b(fix|race|bug|missing|correct)\b|[🐛☢🩹🚨]'
|
title: '\b(fix|race|bug|missing|correct)\b'
|
||||||
- label: '🧹 Updates'
|
- label: '🧹 Updates'
|
||||||
matcher:
|
matcher:
|
||||||
title: '\b(improve|update|refactor|deprecated|remove|unused|test)\b|[⚡👷🚧♻️🎨🧪🧹]'
|
title: '\b(improve|update|refactor|deprecated|remove|unused|test)\b'
|
||||||
- label: '🤖 Dependencies'
|
- label: '🤖 Dependencies'
|
||||||
matcher:
|
matcher:
|
||||||
title: '\b(bumb|bdependencies)/b|[📦🤖]'
|
title: '\b(bumb|bdependencies)\b'
|
||||||
- label: '✏️ Feature'
|
- label: '✏️ Feature'
|
||||||
matcher:
|
matcher:
|
||||||
title: '\b(feature|create|implement|add)\b|[🚀✨🔥]'
|
title: '\b(feature|create|implement|add)\b'
|
||||||
|
- label: '🤔 Question'
|
||||||
|
matcher:
|
||||||
|
title: '\b(question|how)\b'
|
||||||
|
9
.github/logo-dark.svg
vendored
Normal file
9
.github/logo-dark.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 14 KiB |
9
.github/logo.svg
vendored
Normal file
9
.github/logo.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 14 KiB |
43
.github/release-drafter-azureblob.yml
vendored
43
.github/release-drafter-azureblob.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'Azure Blob - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'azureblob/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: azureblob/v
|
|
||||||
include-paths:
|
|
||||||
- azureblob
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...azureblob/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-badger.yml
vendored
43
.github/release-drafter-badger.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'Badger - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'badger/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: badger/v
|
|
||||||
include-paths:
|
|
||||||
- badger
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...badger/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-bbolt.yml
vendored
43
.github/release-drafter-bbolt.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'Bbolt - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'bbolt/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: bbolt/v
|
|
||||||
include-paths:
|
|
||||||
- bbolt
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...bbolt/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-dynamodb.yml
vendored
43
.github/release-drafter-dynamodb.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'DynamoDB - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'dynamodb/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: dynamodb/v
|
|
||||||
include-paths:
|
|
||||||
- dynamodb
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...dynamodb/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-memcache.yml
vendored
43
.github/release-drafter-memcache.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'Memcache - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'memcache/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: memcache/v
|
|
||||||
include-paths:
|
|
||||||
- memcache
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...memcache/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-memory.yml
vendored
43
.github/release-drafter-memory.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'Memory - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'memory/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: memory/v
|
|
||||||
include-paths:
|
|
||||||
- memory
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...memory/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-mongodb.yml
vendored
43
.github/release-drafter-mongodb.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'MongoDB - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'mongodb/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: mongodb/v
|
|
||||||
include-paths:
|
|
||||||
- mongodb
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...mongodb/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-mssql.yml
vendored
43
.github/release-drafter-mssql.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'MSSQL - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'mssql/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: mssql/v
|
|
||||||
include-paths:
|
|
||||||
- mssql
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...mssql/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-mysql.yml
vendored
43
.github/release-drafter-mysql.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'MySQL - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'mysql/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: mysql/v
|
|
||||||
include-paths:
|
|
||||||
- mysql
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...mysql/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-postgres.yml
vendored
43
.github/release-drafter-postgres.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'Postgres - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'postgres/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: postgres/v
|
|
||||||
include-paths:
|
|
||||||
- postgres
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...postgres/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-redis.yml
vendored
43
.github/release-drafter-redis.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'Redis - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'redis/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: redis/v
|
|
||||||
include-paths:
|
|
||||||
- redis
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...redis/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-ristretto.yml
vendored
43
.github/release-drafter-ristretto.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'Ristretto - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'ristretto/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: ristretto/v
|
|
||||||
include-paths:
|
|
||||||
- ristretto
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...ristretto/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-s3.yml
vendored
43
.github/release-drafter-s3.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'S3 - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 's3/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: s3/v
|
|
||||||
include-paths:
|
|
||||||
- s3
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...s3/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
43
.github/release-drafter-sqlite3.yml
vendored
43
.github/release-drafter-sqlite3.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name-template: 'SQLite3 - v$RESOLVED_VERSION'
|
|
||||||
tag-template: 'sqlite3/v$RESOLVED_VERSION'
|
|
||||||
tag-prefix: sqlite3/v
|
|
||||||
include-paths:
|
|
||||||
- sqlite3
|
|
||||||
categories:
|
|
||||||
- title: '🚀 New'
|
|
||||||
labels:
|
|
||||||
- '✏️ Feature'
|
|
||||||
- title: '🧹 Updates'
|
|
||||||
labels:
|
|
||||||
- '🧹 Updates'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- title: '🐛 Fixes'
|
|
||||||
labels:
|
|
||||||
- '☢️ Bug'
|
|
||||||
- title: '📚 Documentation'
|
|
||||||
labels:
|
|
||||||
- '📒 Documentation'
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
|
||||||
version-resolver:
|
|
||||||
major:
|
|
||||||
labels:
|
|
||||||
- 'major'
|
|
||||||
minor:
|
|
||||||
labels:
|
|
||||||
- 'minor'
|
|
||||||
- '✏️ Feature'
|
|
||||||
patch:
|
|
||||||
labels:
|
|
||||||
- 'patch'
|
|
||||||
- '📒 Documentation'
|
|
||||||
- '☢️ Bug'
|
|
||||||
- '🤖 Dependencies'
|
|
||||||
- '🧹 Updates'
|
|
||||||
default: patch
|
|
||||||
template: |
|
|
||||||
$CHANGES
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...sqlite3/v$RESOLVED_VERSION
|
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
|
@@ -1,9 +1,12 @@
|
|||||||
name-template: 'ArangoDB - v$RESOLVED_VERSION'
|
name-template: '{{FOLDER}} - v$RESOLVED_VERSION'
|
||||||
tag-template: 'arangodb/v$RESOLVED_VERSION'
|
tag-template: '{{FOLDER}}/v$RESOLVED_VERSION'
|
||||||
tag-prefix: arangodb/v
|
tag-prefix: {{FOLDER}}/v
|
||||||
include-paths:
|
include-paths:
|
||||||
- arangodb
|
- {{FOLDER}}
|
||||||
categories:
|
categories:
|
||||||
|
- title: '❗ Breaking Changes'
|
||||||
|
labels:
|
||||||
|
- '❗ BreakingChange'
|
||||||
- title: '🚀 New'
|
- title: '🚀 New'
|
||||||
labels:
|
labels:
|
||||||
- '✏️ Feature'
|
- '✏️ Feature'
|
||||||
@@ -19,10 +22,14 @@ categories:
|
|||||||
- '📒 Documentation'
|
- '📒 Documentation'
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
change-template: '- $TITLE (#$NUMBER)'
|
||||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
||||||
|
exclude-contributors:
|
||||||
|
- dependabot
|
||||||
|
- dependabot[bot]
|
||||||
version-resolver:
|
version-resolver:
|
||||||
major:
|
major:
|
||||||
labels:
|
labels:
|
||||||
- 'major'
|
- 'major'
|
||||||
|
- '❗ BreakingChange'
|
||||||
minor:
|
minor:
|
||||||
labels:
|
labels:
|
||||||
- 'minor'
|
- 'minor'
|
||||||
@@ -38,6 +45,6 @@ version-resolver:
|
|||||||
template: |
|
template: |
|
||||||
$CHANGES
|
$CHANGES
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...arangodb/v$RESOLVED_VERSION
|
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...{{FOLDER}}/v$RESOLVED_VERSION
|
||||||
|
|
||||||
Thank you $CONTRIBUTORS for making this update possible.
|
Thank you $CONTRIBUTORS for making this update possible.
|
12
redis/tests/gen-test-certs.sh → .github/scripts/gen-test-certs.sh
vendored
Normal file → Executable file
12
redis/tests/gen-test-certs.sh → .github/scripts/gen-test-certs.sh
vendored
Normal file → Executable file
@@ -6,7 +6,8 @@
|
|||||||
# ./tls/redis.{crt,key} A certificate with no key usage/policy restrictions.
|
# ./tls/redis.{crt,key} A certificate with no key usage/policy restrictions.
|
||||||
# ./tls/client.{crt,key} A certificate restricted for SSL client usage.
|
# ./tls/client.{crt,key} A certificate restricted for SSL client usage.
|
||||||
# ./tls/server.{crt,key} A certificate restricted for SSL server usage.
|
# ./tls/server.{crt,key} A certificate restricted for SSL server usage.
|
||||||
# ./tls/redis.dh DH Params file.
|
|
||||||
|
set -e
|
||||||
|
|
||||||
generate_cert() {
|
generate_cert() {
|
||||||
local name=$1
|
local name=$1
|
||||||
@@ -45,6 +46,8 @@ cat > ./tls/openssl.cnf <<_END_
|
|||||||
[ server_cert ]
|
[ server_cert ]
|
||||||
keyUsage = digitalSignature, keyEncipherment
|
keyUsage = digitalSignature, keyEncipherment
|
||||||
nsCertType = server
|
nsCertType = server
|
||||||
|
subjectAltName = DNS:localhost"
|
||||||
|
|
||||||
[ client_cert ]
|
[ client_cert ]
|
||||||
keyUsage = digitalSignature, keyEncipherment
|
keyUsage = digitalSignature, keyEncipherment
|
||||||
nsCertType = client
|
nsCertType = client
|
||||||
@@ -52,6 +55,9 @@ _END_
|
|||||||
|
|
||||||
generate_cert server "Server-only" "-extfile ./tls/openssl.cnf -extensions server_cert"
|
generate_cert server "Server-only" "-extfile ./tls/openssl.cnf -extensions server_cert"
|
||||||
generate_cert client "Client-only" "-extfile ./tls/openssl.cnf -extensions client_cert"
|
generate_cert client "Client-only" "-extfile ./tls/openssl.cnf -extensions client_cert"
|
||||||
generate_cert redis "Generic-cert"
|
generate_cert redis "localhost" "-extfile ./tls/openssl.cnf -extensions server_cert"
|
||||||
|
generate_cert valkey "localhost" "-extfile ./tls/openssl.cnf -extensions server_cert"
|
||||||
|
|
||||||
[ -f ./tls/redis.dh ] || openssl dhparam -out ./tls/redis.dh 2048
|
# List generated certs
|
||||||
|
ls -la ./tls
|
||||||
|
echo "$PWD"
|
107
.github/scripts/initialize-wrangler.sh
vendored
Executable file
107
.github/scripts/initialize-wrangler.sh
vendored
Executable file
@@ -0,0 +1,107 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# generate cloudflarekv/index.ts
|
||||||
|
cat <<EOF > cloudflarekv/index.ts
|
||||||
|
export default { async fetch(Request, env) {
|
||||||
|
|
||||||
|
const namespace = env.TEST_NAMESPACE1;
|
||||||
|
|
||||||
|
if (Request.url === "http://localhost:8787/health") {
|
||||||
|
return new Response("Success");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Request.url === "http://localhost:8787/writeworkerskvkeyvaluepair") {
|
||||||
|
const res = await Request.json();
|
||||||
|
const { key, val } = res;
|
||||||
|
WriteWorkersKVKeyValuePair(namespace, key, val);
|
||||||
|
return new Response("Success");
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (Request.url === "http://localhost:8787/listworkerskvkeys") {
|
||||||
|
const resp = await Request.json();
|
||||||
|
const { limit, prefix, cursor } = resp;
|
||||||
|
const list = await ListWorkersKVKeys(namespace, limit, prefix, cursor);
|
||||||
|
return new Response(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (Request.url === "http://localhost:8787/deleteworkerskvpairbykey") {
|
||||||
|
const res = await Request.json();
|
||||||
|
const { key } = res;
|
||||||
|
await DeleteWorkersKVPairByKey(namespace, key);
|
||||||
|
|
||||||
|
return new Response(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (Request.url === "http://localhost:8787/getworkerskvvaluebykey") {
|
||||||
|
const key = (await Request.json()).key;
|
||||||
|
const res = await GetWorkersKVValueByKey(namespace, key);
|
||||||
|
|
||||||
|
return new Response(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (Request.url === "http://localhost:8787/deleteworkerskventries") {
|
||||||
|
const res = await Request.json();
|
||||||
|
const { keys } = res;
|
||||||
|
const newKeys = keys.filter(x => x.length > 0);
|
||||||
|
await DeleteWorkersKVEntries(namespace, newKeys);
|
||||||
|
|
||||||
|
return new Response("Success")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const GetWorkersKVValueByKey = async (NAMESPACE, key) => {
|
||||||
|
const val = await NAMESPACE.get(key);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
const WriteWorkersKVKeyValuePair = async (NAMESPACE, key, val) => {
|
||||||
|
await NAMESPACE.put(key, val);
|
||||||
|
|
||||||
|
return "Wrote Successfully"
|
||||||
|
}
|
||||||
|
|
||||||
|
const DeleteWorkersKVPairByKey = async (NAMESPACE, key) => {
|
||||||
|
await NAMESPACE.delete(key);
|
||||||
|
|
||||||
|
return "Delete Successfully"
|
||||||
|
}
|
||||||
|
|
||||||
|
const ListWorkersKVKeys = async (NAMESPACE, limit, prefix, cursor) => {
|
||||||
|
const resp = await NAMESPACE.list({ limit, prefix, cursor });
|
||||||
|
|
||||||
|
return JSON.stringify(resp.keys);
|
||||||
|
}
|
||||||
|
|
||||||
|
const DeleteWorkersKVEntries = async (NAMESPACE, keys) => {
|
||||||
|
for (let key of keys) {
|
||||||
|
await NAMESPACE.delete(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return "Delete Successfully"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "index.ts generated"
|
||||||
|
|
||||||
|
# generate cloudflarekv/wrangler.toml
|
||||||
|
cat <<EOF > cloudflarekv/wrangler.toml
|
||||||
|
main = "index.ts"
|
||||||
|
|
||||||
|
kv_namespaces = [
|
||||||
|
{ binding = "TEST_NAMESPACE1", id = "hello", preview_id = "world" },
|
||||||
|
]
|
||||||
|
|
||||||
|
workers_dev = true
|
||||||
|
|
||||||
|
compatibility_date = "2024-03-20"
|
||||||
|
|
||||||
|
[dev]
|
||||||
|
port = 8787
|
||||||
|
local_protocol = "http"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "wrangler.toml generated"
|
84
.github/scripts/sync_docs.sh
vendored
Executable file
84
.github/scripts/sync_docs.sh
vendored
Executable file
@@ -0,0 +1,84 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Some env variables
|
||||||
|
BRANCH="main"
|
||||||
|
REPO_URL="github.com/gofiber/docs.git"
|
||||||
|
AUTHOR_EMAIL="github-actions[bot]@users.noreply.github.com"
|
||||||
|
AUTHOR_USERNAME="github-actions[bot]"
|
||||||
|
VERSION_FILE="storage_versions.json"
|
||||||
|
REPO_DIR="storage"
|
||||||
|
COMMIT_URL="https://github.com/gofiber/storage"
|
||||||
|
DOCUSAURUS_COMMAND="npm run docusaurus -- docs:version:storage"
|
||||||
|
|
||||||
|
# Set commit author
|
||||||
|
git config --global user.email "${AUTHOR_EMAIL}"
|
||||||
|
git config --global user.name "${AUTHOR_USERNAME}"
|
||||||
|
|
||||||
|
git clone https://${TOKEN}@${REPO_URL} fiber-docs
|
||||||
|
|
||||||
|
# Handle push event
|
||||||
|
if [ "$EVENT" == "push" ]; then
|
||||||
|
latest_commit=$(git rev-parse --short HEAD)
|
||||||
|
|
||||||
|
for f in $(find . -type f -name "*.md" -not -path "./fiber-docs/*"); do
|
||||||
|
log_output=$(git log --oneline "${BRANCH}" HEAD~1..HEAD --name-status -- "${f}")
|
||||||
|
|
||||||
|
if [[ $log_output != "" || ! -f "fiber-docs/docs/${REPO_DIR}/$f" ]]; then
|
||||||
|
mkdir -p fiber-docs/docs/${REPO_DIR}/$(dirname $f)
|
||||||
|
cp "${f}" fiber-docs/docs/${REPO_DIR}/$f
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Handle release event
|
||||||
|
elif [ "$EVENT" == "release" ]; then
|
||||||
|
# Extract package name from tag
|
||||||
|
package_name="${TAG_NAME%/*}"
|
||||||
|
major_version="${TAG_NAME#*/}"
|
||||||
|
major_version="${major_version%%.*}"
|
||||||
|
|
||||||
|
# Form new version name
|
||||||
|
new_version="${package_name}_${major_version}.x.x"
|
||||||
|
|
||||||
|
cd fiber-docs/ || true
|
||||||
|
npm ci
|
||||||
|
|
||||||
|
# Check if contrib_versions.json exists and modify it if required
|
||||||
|
if [[ -f $VERSION_FILE ]]; then
|
||||||
|
jq --arg new_version "$new_version" 'del(.[] | select(. == $new_version))' $VERSION_FILE > temp.json && mv temp.json $VERSION_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run docusaurus versioning command
|
||||||
|
$DOCUSAURUS_COMMAND "${new_version}"
|
||||||
|
|
||||||
|
if [[ -f $VERSION_FILE ]]; then
|
||||||
|
jq 'sort | reverse' ${VERSION_FILE} > temp.json && mv temp.json ${VERSION_FILE}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Push changes
|
||||||
|
cd fiber-docs/ || true
|
||||||
|
git add .
|
||||||
|
if [[ $EVENT == "push" ]]; then
|
||||||
|
git commit -m "Add docs from ${COMMIT_URL}/commit/${latest_commit}"
|
||||||
|
elif [[ $EVENT == "release" ]]; then
|
||||||
|
git commit -m "Sync docs for release ${COMMIT_URL}/releases/tag/${TAG_NAME}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
MAX_RETRIES=5
|
||||||
|
DELAY=5
|
||||||
|
retry=0
|
||||||
|
|
||||||
|
while ((retry < MAX_RETRIES))
|
||||||
|
do
|
||||||
|
git push https://${TOKEN}@${REPO_URL} && break
|
||||||
|
retry=$((retry + 1))
|
||||||
|
git pull --rebase
|
||||||
|
sleep $DELAY
|
||||||
|
done
|
||||||
|
|
||||||
|
if ((retry == MAX_RETRIES))
|
||||||
|
then
|
||||||
|
echo "Failed to push after $MAX_RETRIES attempts. Exiting with 1."
|
||||||
|
exit 1
|
||||||
|
fi
|
3
.github/workflows/auto-labeler.yml
vendored
3
.github/workflows/auto-labeler.yml
vendored
@@ -13,9 +13,10 @@ permissions:
|
|||||||
jobs:
|
jobs:
|
||||||
labeler:
|
labeler:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.actor != 'dependabot[bot]' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Check Labels
|
- name: Check Labels
|
||||||
id: labeler
|
id: labeler
|
||||||
uses: fuxingloh/multi-labeler@v2
|
uses: fuxingloh/multi-labeler@v4
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
186
.github/workflows/benchmark.yml
vendored
Normal file
186
.github/workflows/benchmark.yml
vendored
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- "**"
|
||||||
|
- "!**.md"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "**"
|
||||||
|
- "!**.md"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
deployments: write
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
name: Benchmark
|
||||||
|
jobs:
|
||||||
|
Compare:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
services:
|
||||||
|
arangodb:
|
||||||
|
image: 'arangodb:latest'
|
||||||
|
env:
|
||||||
|
ARANGO_NO_AUTH: 1
|
||||||
|
ports:
|
||||||
|
- '8529:8529'
|
||||||
|
dynamodb:
|
||||||
|
image: 'amazon/dynamodb-local:latest'
|
||||||
|
ports:
|
||||||
|
- '8000:8000'
|
||||||
|
memcached:
|
||||||
|
image: 'memcached:latest'
|
||||||
|
ports:
|
||||||
|
- '11211:11211'
|
||||||
|
mongo:
|
||||||
|
image: 'mongo:latest'
|
||||||
|
ports:
|
||||||
|
- '27017:27017'
|
||||||
|
mssql:
|
||||||
|
image: 'mcmoe/mssqldocker:latest'
|
||||||
|
ports:
|
||||||
|
- '1433:1433'
|
||||||
|
env:
|
||||||
|
ACCEPT_EULA: Y
|
||||||
|
SA_PASSWORD: MsSql!1234
|
||||||
|
MSSQL_DB: master
|
||||||
|
MSSQL_USER: sa
|
||||||
|
MSSQL_PASSWORD: MsSql!1234
|
||||||
|
options: >-
|
||||||
|
--health-cmd "/opt/mssql-tools/bin/sqlcmd -U sa -P $SA_PASSWORD -Q 'select 1' -b -o /dev/null"
|
||||||
|
--health-interval 1s
|
||||||
|
--health-timeout 30s
|
||||||
|
--health-start-period 10s
|
||||||
|
--health-retries 20
|
||||||
|
mysql:
|
||||||
|
image: 'mysql:latest'
|
||||||
|
env:
|
||||||
|
MYSQL_DATABASE: fiber
|
||||||
|
MYSQL_USER: username
|
||||||
|
MYSQL_PASSWORD: password
|
||||||
|
MYSQL_ROOT_PASSWORD: password
|
||||||
|
ports:
|
||||||
|
- '3306:3306'
|
||||||
|
options: >-
|
||||||
|
--health-cmd "mysqladmin ping" --health-interval 10s --health-timeout
|
||||||
|
5s --health-retries 5
|
||||||
|
postgres:
|
||||||
|
image: 'postgres:latest'
|
||||||
|
ports:
|
||||||
|
- '5432:5432'
|
||||||
|
env:
|
||||||
|
POSTGRES_DB: fiber
|
||||||
|
POSTGRES_USER: username
|
||||||
|
POSTGRES_PASSWORD: "pass#w%rd"
|
||||||
|
options: >-
|
||||||
|
--health-cmd pg_isready --health-interval 10s --health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
# NOTE: Keep this in sync with the version from go.mod
|
||||||
|
go-version: "1.21.x"
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '18'
|
||||||
|
|
||||||
|
- name: Install Azurite
|
||||||
|
run: |
|
||||||
|
docker run -d -p 10000:10000 mcr.microsoft.com/azure-storage/azurite azurite-blob --blobHost 0.0.0.0 --blobPort 10000
|
||||||
|
|
||||||
|
- name: Install Cloudflare Worker
|
||||||
|
run : |
|
||||||
|
.github/scripts/initialize-wrangler.sh
|
||||||
|
cd cloudflarekv && npx wrangler dev &
|
||||||
|
npx wait-on tcp:8787
|
||||||
|
|
||||||
|
- name: Install Coherence
|
||||||
|
run: |
|
||||||
|
docker run -d -p 1408:1408 -p 30000:30000 ghcr.io/oracle/coherence-ce:22.06.5
|
||||||
|
sleep 30
|
||||||
|
|
||||||
|
- name: Install etcd
|
||||||
|
run: |
|
||||||
|
docker run -d --name Etcd-server \
|
||||||
|
--publish 2379:2379 \
|
||||||
|
--publish 2380:2380 \
|
||||||
|
--env ALLOW_NONE_AUTHENTICATION=yes \
|
||||||
|
--env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \
|
||||||
|
bitnami/etcd:latest
|
||||||
|
|
||||||
|
- name: Install ScyllaDb
|
||||||
|
run: |
|
||||||
|
docker run --name scylladb -p 9042:9042 -p 19042:19042 -p 9160:9160 -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9180:9180 -d scylladb/scylla:latest --broadcast-address 127.0.0.1 --listen-address 0.0.0.0 --broadcast-rpc-address 127.0.0.1
|
||||||
|
sleep 15 # Wait for ScyllaDb to initialize
|
||||||
|
|
||||||
|
- name: Setup Redis
|
||||||
|
uses: shogo82148/actions-setup-redis@v1
|
||||||
|
with:
|
||||||
|
redis-version: '7.x'
|
||||||
|
auto-start: 'false'
|
||||||
|
|
||||||
|
- name: Run Redis
|
||||||
|
run: |
|
||||||
|
redis-server --port 6379 &
|
||||||
|
|
||||||
|
- name: Run NATS
|
||||||
|
run: |
|
||||||
|
./.github/scripts/gen-test-certs.sh
|
||||||
|
docker run -d --name nats-jetstream -p 4443:4443 -v ./nats/testdata:/testdata -v ./tls:/tls nats:latest --jetstream -c /testdata/nats-tls.conf
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
- name: Run Benchmarks
|
||||||
|
run: |
|
||||||
|
set -o pipefail
|
||||||
|
for d in */ ; do
|
||||||
|
[[ $d == "tls/" ]] && continue
|
||||||
|
[[ $d == "node_modules/" ]] && continue
|
||||||
|
|
||||||
|
cd "$d"
|
||||||
|
echo "Bench dir: $d"
|
||||||
|
go test ./... -benchmem -run=^$ -bench . | tee -a ../output.txt
|
||||||
|
cd ..
|
||||||
|
done
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
MSSQL_DATABASE: master
|
||||||
|
MSSQL_USERNAME: sa
|
||||||
|
MSSQL_PASSWORD: MsSql!1234
|
||||||
|
MYSQL_USERNAME: username
|
||||||
|
MYSQL_PASSWORD: password
|
||||||
|
MYSQL_DATABASE: fiber
|
||||||
|
POSTGRES_DATABASE: fiber
|
||||||
|
POSTGRES_USERNAME: username
|
||||||
|
POSTGRES_PASSWORD: "pass#w%rd"
|
||||||
|
TEST_CLICKHOUSE_IMAGE: "clickhouse/clickhouse-server:23-alpine"
|
||||||
|
TEST_COUCHBASE_IMAGE: "couchbase:enterprise-7.1.1"
|
||||||
|
TEST_MINIO_IMAGE: "docker.io/minio/minio:RELEASE.2024-08-17T01-24-54Z"
|
||||||
|
|
||||||
|
- name: Get Previous Benchmark Results
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ./cache
|
||||||
|
key: ${{ runner.os }}-benchmark
|
||||||
|
|
||||||
|
- name: Save Benchmark Results
|
||||||
|
uses: benchmark-action/github-action-benchmark@v1.20.4
|
||||||
|
with:
|
||||||
|
tool: "go"
|
||||||
|
output-file-path: output.txt
|
||||||
|
github-token: ${{ secrets.BENCHMARK_TOKEN }}
|
||||||
|
benchmark-data-dir-path: "benchmarks"
|
||||||
|
alert-threshold: "300%"
|
||||||
|
fail-on-alert: true
|
||||||
|
comment-on-alert: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
|
||||||
|
#summary-always: ${{ github.event_name != 'push' && github.event_name != 'workflow_dispatch' }}
|
||||||
|
auto-push: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
|
||||||
|
save-data-file: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
|
54
.github/workflows/codeql-analysis.yml
vendored
54
.github/workflows/codeql-analysis.yml
vendored
@@ -1,54 +0,0 @@
|
|||||||
name: "CodeQL"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [master, main]
|
|
||||||
pull_request:
|
|
||||||
# The branches below must be a subset of the branches above
|
|
||||||
branches: [master, main]
|
|
||||||
schedule:
|
|
||||||
- cron: '0 3 * * 6'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
analyse:
|
|
||||||
name: Analyse
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
# We must fetch at least the immediate parents so that if this is
|
|
||||||
# a pull request then we can checkout the head.
|
|
||||||
fetch-depth: 2
|
|
||||||
|
|
||||||
# If this run was triggered by a pull request event, then checkout
|
|
||||||
# the head of the pull request instead of the merge commit.
|
|
||||||
- run: git checkout HEAD^2
|
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@v2
|
|
||||||
# Override language selection by uncommenting this and choosing your languages
|
|
||||||
with:
|
|
||||||
languages: go
|
|
||||||
|
|
||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
|
||||||
- name: Autobuild
|
|
||||||
uses: github/codeql-action/autobuild@v2
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
|
||||||
# 📚 https://git.io/JvXDl
|
|
||||||
|
|
||||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
||||||
# and modify them (or add more) to build your code if your project
|
|
||||||
# uses a compiled language
|
|
||||||
|
|
||||||
#- run: |
|
|
||||||
# make bootstrap
|
|
||||||
# make release
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@v2
|
|
4
.github/workflows/dependabot_automerge.yml
vendored
4
.github/workflows/dependabot_automerge.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
|||||||
if: ${{ github.actor == 'dependabot[bot]' }}
|
if: ${{ github.actor == 'dependabot[bot]' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Wait for check is finished
|
- name: Wait for check is finished
|
||||||
uses: lewagon/wait-on-check-action@v1.3.1
|
uses: lewagon/wait-on-check-action@v1.3.4
|
||||||
id: wait_for_checks
|
id: wait_for_checks
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Dependabot metadata
|
- name: Dependabot metadata
|
||||||
id: metadata
|
id: metadata
|
||||||
uses: dependabot/fetch-metadata@v1.3.6
|
uses: dependabot/fetch-metadata@v2.2.0
|
||||||
with:
|
with:
|
||||||
github-token: "${{ secrets.PR_TOKEN }}"
|
github-token: "${{ secrets.PR_TOKEN }}"
|
||||||
- name: Enable auto-merge for Dependabot PRs
|
- name: Enable auto-merge for Dependabot PRs
|
||||||
|
68
.github/workflows/golangci-lint.yml
vendored
Normal file
68
.github/workflows/golangci-lint.yml
vendored
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
name: Golangci-Lint Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "master"
|
||||||
|
- "main"
|
||||||
|
paths-ignore:
|
||||||
|
- "**.md"
|
||||||
|
- LICENSE
|
||||||
|
- ".github/ISSUE_TEMPLATE/*.yml"
|
||||||
|
- ".github/dependabot.yml"
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
paths-ignore:
|
||||||
|
- "**.md"
|
||||||
|
- LICENSE
|
||||||
|
- ".github/ISSUE_TEMPLATE/*.yml"
|
||||||
|
- ".github/dependabot.yml"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
generate-matrix:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- id: set-matrix
|
||||||
|
run: |
|
||||||
|
# Determine the base and head commits for diff based on the event type
|
||||||
|
BASE_SHA="${{ github.event.pull_request.base.sha || github.event.before }}"
|
||||||
|
HEAD_SHA="${{ github.event.pull_request.head.sha || github.event.after }}"
|
||||||
|
|
||||||
|
# Extract directories from changed files, only include those with go.mod files
|
||||||
|
GO_MOD_DIRECTORIES=()
|
||||||
|
FILES=$(git diff --name-only $BASE_SHA $HEAD_SHA | grep -vE '/\.')
|
||||||
|
DIRECTORIES=$(echo "$FILES" | xargs -L1 dirname | sort -u)
|
||||||
|
|
||||||
|
for dir in $DIRECTORIES; do
|
||||||
|
if [[ -f "$dir/go.mod" ]]; then
|
||||||
|
GO_MOD_DIRECTORIES+=("$dir")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Export the JSON array
|
||||||
|
JSON_ARRAY=$(printf '%s\n' "${GO_MOD_DIRECTORIES[@]}" | jq -R -s -c 'split("\n")[:-1]')
|
||||||
|
echo "matrix=${JSON_ARRAY}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
lint:
|
||||||
|
needs: generate-matrix
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
modules: ${{fromJson(needs.generate-matrix.outputs.matrix)}}
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Run golangci-lint
|
||||||
|
uses: reviewdog/action-golangci-lint@v2
|
||||||
|
with:
|
||||||
|
golangci_lint_flags: "--tests=false --timeout=5m"
|
||||||
|
workdir: ${{ matrix.modules }}
|
||||||
|
fail_level: "warning"
|
||||||
|
filter_mode: nofilter
|
17
.github/workflows/linter.yml
vendored
17
.github/workflows/linter.yml
vendored
@@ -1,17 +0,0 @@
|
|||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
pull_request:
|
|
||||||
name: Linter
|
|
||||||
jobs:
|
|
||||||
Golint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Golint
|
|
||||||
uses: reviewdog/action-golangci-lint@v2
|
|
||||||
with:
|
|
||||||
golangci_lint_flags: "--tests=false"
|
|
19
.github/workflows/release-drafter-arangodb.yml
vendored
19
.github/workflows/release-drafter-arangodb.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Arangodb
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'arangodb/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_arangodb:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-arangodb.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-azureblob.yml
vendored
19
.github/workflows/release-drafter-azureblob.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Azureblob
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'azureblob/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_azureblob:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-azureblob.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-badger.yml
vendored
19
.github/workflows/release-drafter-badger.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Badger
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'badger/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_badger:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-badger.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-bbolt.yml
vendored
19
.github/workflows/release-drafter-bbolt.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Bbolt
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'bbolt/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_bbolt:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-bbolt.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-dynamodb.yml
vendored
19
.github/workflows/release-drafter-dynamodb.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Dynamodb
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'dynamodb/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_dynamodb:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-dynamodb.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-memcache.yml
vendored
19
.github/workflows/release-drafter-memcache.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Memcache
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'memcache/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_memcache:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-memcache.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-mongodb.yml
vendored
19
.github/workflows/release-drafter-mongodb.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Mongodb
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'mongodb/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_mongodb:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-mongodb.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-mssql.yml
vendored
19
.github/workflows/release-drafter-mssql.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Mssql
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'mssql/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_mssql:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-mssql.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-mysql.yml
vendored
19
.github/workflows/release-drafter-mysql.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Mysql
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'mysql/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_mysql:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-mysql.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-postgres.yml
vendored
19
.github/workflows/release-drafter-postgres.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Postgres
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'postgres/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_postgres:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-postgres.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-redis.yml
vendored
19
.github/workflows/release-drafter-redis.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Redis
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'redis/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_redis:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-redis.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-ristretto.yml
vendored
19
.github/workflows/release-drafter-ristretto.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter Ristretto
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'ristretto/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_ristretto:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-ristretto.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
19
.github/workflows/release-drafter-s3.yml
vendored
19
.github/workflows/release-drafter-s3.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
name: Release Drafter S3
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 's3/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_s3:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-s3.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
20
.github/workflows/release-drafter-sqlite3.yml
vendored
20
.github/workflows/release-drafter-sqlite3.yml
vendored
@@ -1,20 +0,0 @@
|
|||||||
name: Release Drafter Sqlite3
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# branches to consider in the event; optional, defaults to all
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'sqlite3/**'
|
|
||||||
jobs:
|
|
||||||
draft_release_sqlite3:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: release-drafter/release-drafter@v5
|
|
||||||
with:
|
|
||||||
config-name: release-drafter-sqlite3.yml
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
59
.github/workflows/release-drafter.yml
vendored
Normal file
59
.github/workflows/release-drafter.yml
vendored
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
name: Release Drafter (All)
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: read
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Generate filters
|
||||||
|
id: filter-setup
|
||||||
|
run: |
|
||||||
|
filters=$(find . -maxdepth 1 -type d ! -path ./.git ! -path . -exec basename {} \; | grep -v '^\.' | awk '{printf "%s: \"%s/**\"\n", $1, $1}')
|
||||||
|
echo "filters<<EOF" >> $GITHUB_OUTPUT
|
||||||
|
echo "$filters" >> $GITHUB_OUTPUT
|
||||||
|
echo "EOF" >> $GITHUB_OUTPUT
|
||||||
|
shell: bash
|
||||||
|
- name: Filter changes
|
||||||
|
id: filter
|
||||||
|
uses: dorny/paths-filter@v3
|
||||||
|
with:
|
||||||
|
filters: ${{ steps.filter-setup.outputs.filters }}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
packages: ${{ steps.filter.outputs.changes || '[]' }}
|
||||||
|
|
||||||
|
release-drafter:
|
||||||
|
needs: changes
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
if: needs.changes.outputs.packages != '[]' # Ensure job runs only if there are changes
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
package: ${{ fromJSON(needs.changes.outputs.packages || '[]') }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Generate dynamic config from template
|
||||||
|
run: |
|
||||||
|
folder="${{ matrix.package }}"
|
||||||
|
sed "s|{{FOLDER}}|$folder|g" .github/release-drafter-template.yml > .github/release-drafter-$folder.yml
|
||||||
|
echo "Generated config for folder: $folder"
|
||||||
|
cat .github/release-drafter-$folder.yml
|
||||||
|
|
||||||
|
- name: Use dynamic release-drafter configuration
|
||||||
|
uses: release-drafter/release-drafter@v6
|
||||||
|
with:
|
||||||
|
config-name: release-drafter-${{ matrix.package }}.yml
|
85
.github/workflows/security.yml
vendored
85
.github/workflows/security.yml
vendored
@@ -1,85 +0,0 @@
|
|||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
pull_request:
|
|
||||||
name: Security
|
|
||||||
jobs:
|
|
||||||
Gosec:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Install Go
|
|
||||||
uses: actions/setup-go@v3
|
|
||||||
with:
|
|
||||||
go-version: '^1.17.6'
|
|
||||||
- name: Install Gosec
|
|
||||||
run: |
|
|
||||||
export PATH=${PATH}:`go env GOPATH`/bin
|
|
||||||
go install github.com/securego/gosec/v2/cmd/gosec@latest
|
|
||||||
- name: Run Gosec (root)
|
|
||||||
working-directory: .
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal -exclude-dir=arangodb -exclude-dir=badger -exclude-dir=dynamodb -exclude-dir=memcache -exclude-dir=memory -exclude-dir=mongodb -exclude-dir=mysql -exclude-dir=postgres -exclude-dir=redis -exclude-dir=ristretto -exclude-dir=sqlite3 -exclude-dir=s3 -exclude-dir=bbolt -exclude-dir=azureblob -exclude-dir=mssql ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (arangodb)
|
|
||||||
working-directory: ./arangodb
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (badger)
|
|
||||||
working-directory: ./badger
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (dynamodb)
|
|
||||||
working-directory: ./dynamodb
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (memcache)
|
|
||||||
working-directory: ./memcache
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (memory)
|
|
||||||
working-directory: ./memory
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (mongodb)
|
|
||||||
working-directory: ./mongodb
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (mysql)
|
|
||||||
working-directory: ./mysql
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (postgres)
|
|
||||||
working-directory: ./postgres
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (redis)
|
|
||||||
working-directory: ./redis
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (sqlite3)
|
|
||||||
working-directory: ./sqlite3
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (s3)
|
|
||||||
working-directory: ./s3
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (ristretto)
|
|
||||||
working-directory: ./ristretto
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (bbolt)
|
|
||||||
working-directory: ./bbolt
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (azureblob)
|
|
||||||
working-directory: ./azureblob
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
||||||
- name: Run Gosec (mssql)
|
|
||||||
working-directory: ./mssql
|
|
||||||
run: "`go env GOPATH`/bin/gosec -exclude-dir=internal ./..."
|
|
||||||
# -----
|
|
38
.github/workflows/sync-docs.yml
vendored
Normal file
38
.github/workflows/sync-docs.yml
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
name: 'Sync docs'
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- '**/*.md'
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
branches:
|
||||||
|
- '*/v[0-9]+.[0-9]+.[0-9]+'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sync-docs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
- name: Setup Node.js environment
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '18'
|
||||||
|
|
||||||
|
- name: Install JQ
|
||||||
|
run: sudo apt-get install jq
|
||||||
|
|
||||||
|
- name: Sync docs
|
||||||
|
run: ./.github/scripts/sync_docs.sh
|
||||||
|
env:
|
||||||
|
EVENT: ${{ github.event_name }}
|
||||||
|
TAG_NAME: ${{ github.ref_name }}
|
||||||
|
TOKEN: ${{ secrets.DOC_SYNC_TOKEN }}
|
29
.github/workflows/test-arangodb.yml
vendored
29
.github/workflows/test-arangodb.yml
vendored
@@ -22,34 +22,15 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./arangodb && go test ./... -v -race
|
run: cd ./arangodb && go test ./... -v -race
|
||||||
|
28
.github/workflows/test-azureblob.yml
vendored
28
.github/workflows/test-azureblob.yml
vendored
@@ -15,36 +15,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install Azurite
|
- name: Install Azurite
|
||||||
run: |
|
run: |
|
||||||
docker run -d -p 10000:10000 mcr.microsoft.com/azure-storage/azurite azurite-blob --blobHost 0.0.0.0 --blobPort 10000
|
docker run -d -p 10000:10000 mcr.microsoft.com/azure-storage/azurite azurite-blob --blobHost 0.0.0.0 --blobPort 10000
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./azureblob && go test ./... -v -race
|
run: cd ./azureblob && go test ./... -v -race
|
||||||
|
31
.github/workflows/test-badger.yml
vendored
31
.github/workflows/test-badger.yml
vendored
@@ -14,35 +14,16 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
runs-on: ubuntu-latest
|
||||||
runs-on: '${{ matrix.platform }}'
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Test Badger
|
- name: Test Badger
|
||||||
run: cd ./badger && go test ./... -v -race
|
run: cd ./badger && go test ./... -v -race
|
||||||
|
30
.github/workflows/test-bbolt.yml
vendored
30
.github/workflows/test-bbolt.yml
vendored
@@ -15,33 +15,15 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./bbolt && go mod tidy && go test ./... -v -race
|
run: cd ./bbolt && go test ./... -v -race
|
||||||
|
30
.github/workflows/test-clickhouse.yml
vendored
Normal file
30
.github/workflows/test-clickhouse.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'clickhouse/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'clickhouse/**'
|
||||||
|
name: 'Tests Clickhouse'
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.21.x
|
||||||
|
- 1.22.x
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Run Test
|
||||||
|
env:
|
||||||
|
TEST_CLICKHOUSE_IMAGE: clickhouse/clickhouse-server:23-alpine
|
||||||
|
run: cd ./clickhouse && go clean -testcache && go test ./... -v -race
|
43
.github/workflows/test-cloudflarekv.yml
vendored
Normal file
43
.github/workflows/test-cloudflarekv.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
name: Tests CloudflareKV
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'cloudflarekv/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'cloudflarekv/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.21.x
|
||||||
|
- 1.22.x
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '18'
|
||||||
|
|
||||||
|
- name: Start Wrangler Dev
|
||||||
|
run: |
|
||||||
|
.github/scripts/initialize-wrangler.sh
|
||||||
|
cd cloudflarekv && npx wrangler dev &
|
||||||
|
npx wait-on tcp:8787
|
||||||
|
|
||||||
|
- name: Run Go Tests
|
||||||
|
run: cd cloudflarekv && go test ./... -v -race
|
34
.github/workflows/test-coherence.yml
vendored
Normal file
34
.github/workflows/test-coherence.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'coherence/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'coherence/**'
|
||||||
|
name: "Tests Coherence"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.19.x
|
||||||
|
- 1.20.x
|
||||||
|
- 1.21.x
|
||||||
|
- 1.22.x
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Startup Coherence
|
||||||
|
run: |
|
||||||
|
docker run -d -p 1408:1408 -p 30000:30000 ghcr.io/oracle/coherence-ce:24.09
|
||||||
|
sleep 30
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Run Test
|
||||||
|
run: cd ./coherence && COHERENCE_SESSION_DEBUG=true go clean -testcache && go test ./... -v -race
|
31
.github/workflows/test-couchbase.yml
vendored
Normal file
31
.github/workflows/test-couchbase.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'couchbase/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'couchbase/**'
|
||||||
|
name: "Tests Couchbase"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.21.x
|
||||||
|
- 1.22.x
|
||||||
|
- 1.23.x
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Run Test
|
||||||
|
env:
|
||||||
|
TEST_COUCHBASE_IMAGE: couchbase:enterprise-7.1.1
|
||||||
|
run: cd ./couchbase && go test ./... -v -race
|
29
.github/workflows/test-dynamodb.yml
vendored
29
.github/workflows/test-dynamodb.yml
vendored
@@ -20,34 +20,15 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./dynamodb && go test ./... -v -race
|
run: cd ./dynamodb && go test ./... -v -race
|
||||||
|
38
.github/workflows/test-etcd.yml
vendored
Normal file
38
.github/workflows/test-etcd.yml
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'etcd/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'etcd/**'
|
||||||
|
name: "Tests Etcd"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.19.x
|
||||||
|
- 1.20.x
|
||||||
|
- 1.21.x
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install etcd
|
||||||
|
run: |
|
||||||
|
docker run -d --name Etcd-server \
|
||||||
|
--publish 2379:2379 \
|
||||||
|
--publish 2380:2380 \
|
||||||
|
--env ALLOW_NONE_AUTHENTICATION=yes \
|
||||||
|
--env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \
|
||||||
|
bitnami/etcd:latest
|
||||||
|
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Run Test
|
||||||
|
run: cd ./etcd && go test ./... -v -race
|
29
.github/workflows/test-memcache.yml
vendored
29
.github/workflows/test-memcache.yml
vendored
@@ -20,34 +20,15 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./memcache && go test ./... -v -race
|
run: cd ./memcache && go test ./... -v -race
|
||||||
|
29
.github/workflows/test-memory.yml
vendored
Normal file
29
.github/workflows/test-memory.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'memory/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'memory/**'
|
||||||
|
name: "Tests Local Storage"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.19.x
|
||||||
|
- 1.20.x
|
||||||
|
- 1.21.x
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Test Memory
|
||||||
|
run: cd ./memory && go test ./... -v -race
|
31
.github/workflows/test-minio.yml
vendored
Normal file
31
.github/workflows/test-minio.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'minio/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'minio/**'
|
||||||
|
name: "Tests Minio"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.21.x
|
||||||
|
- 1.22.x
|
||||||
|
- 1.23.x
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Run Test
|
||||||
|
env:
|
||||||
|
TEST_MINIO_IMAGE: docker.io/minio/minio:RELEASE.2024-08-17T01-24-54Z
|
||||||
|
run: cd ./minio && go test ./... -v -race
|
28
.github/workflows/test-mockstorage.yml
vendored
Normal file
28
.github/workflows/test-mockstorage.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'mockstorage/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'mockstorage/**'
|
||||||
|
name: "Tests Local Storage"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.21.x
|
||||||
|
- 1.22.x
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Test Mockstorage
|
||||||
|
run: cd ./mockstorage && go test ./... -v -race
|
30
.github/workflows/test-mongodb.yml
vendored
30
.github/workflows/test-mongodb.yml
vendored
@@ -20,34 +20,16 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./mongodb && go test ./... -v -race
|
run: cd ./mongodb && go test ./... -v -race
|
||||||
|
|
||||||
|
31
.github/workflows/test-mssql.yml
vendored
31
.github/workflows/test-mssql.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
services:
|
services:
|
||||||
mssql:
|
mssql:
|
||||||
image: 'mcmoe/mssqldocker:v2019.CU4.0'
|
image: 'mcmoe/mssqldocker:latest'
|
||||||
ports:
|
ports:
|
||||||
- '1433:1433'
|
- '1433:1433'
|
||||||
env:
|
env:
|
||||||
@@ -32,35 +32,16 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./mssql && go test ./... -v -race
|
run: cd ./mssql && go test ./... -v -race
|
||||||
env:
|
env:
|
||||||
|
29
.github/workflows/test-mysql.yml
vendored
29
.github/workflows/test-mysql.yml
vendored
@@ -28,35 +28,16 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./mysql && go test ./... -v -race
|
run: cd ./mysql && go test ./... -v -race
|
||||||
env:
|
env:
|
||||||
|
35
.github/workflows/test-nats.yml
vendored
Normal file
35
.github/workflows/test-nats.yml
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'nats/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'nats/**'
|
||||||
|
name: "Tests Nats Driver"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.20.x
|
||||||
|
- 1.21.x
|
||||||
|
- 1.22.x
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Generate config
|
||||||
|
run: ./.github/scripts/gen-test-certs.sh
|
||||||
|
- name: Run NATS
|
||||||
|
run: |
|
||||||
|
docker run -d --name nats-jetstream -p 4443:4443 -v ./nats/testdata:/testdata -v ./tls:/tls nats:latest --jetstream -c /testdata/nats-tls.conf
|
||||||
|
sleep 5
|
||||||
|
- name: Test Nats
|
||||||
|
run: cd ./nats && go test ./... -v -race
|
29
.github/workflows/test-pebble.yml
vendored
Normal file
29
.github/workflows/test-pebble.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- "pebble/**"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "pebble/**"
|
||||||
|
name: "Tests pebble"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.19.x
|
||||||
|
- 1.20.x
|
||||||
|
- 1.21.x
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
- name: Test Pebble
|
||||||
|
run: cd ./pebble && go test ./... -v -race
|
31
.github/workflows/test-postgres.yml
vendored
31
.github/workflows/test-postgres.yml
vendored
@@ -27,35 +27,16 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
- 1.20.x
|
||||||
- 1.18.x
|
- 1.21.x
|
||||||
- 1.19.x
|
- 1.22.x
|
||||||
platform:
|
|
||||||
- ubuntu-latest
|
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./postgres && go test ./... -v -race
|
run: cd ./postgres && go test ./... -v -race
|
||||||
env:
|
env:
|
||||||
|
65
.github/workflows/test-redis.yml
vendored
65
.github/workflows/test-redis.yml
vendored
@@ -15,55 +15,64 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
- 1.20.x
|
- 1.20.x
|
||||||
platform:
|
- 1.21.x
|
||||||
- ubuntu-latest
|
|
||||||
- windows-latest
|
|
||||||
redis:
|
redis:
|
||||||
- '6.x'
|
- '6.x'
|
||||||
- '7.x'
|
- '7.x'
|
||||||
steps:
|
steps:
|
||||||
- name: Fetch Repository
|
- name: Fetch Repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Generate TLS certs
|
||||||
|
run: ./.github/scripts/gen-test-certs.sh
|
||||||
|
|
||||||
|
- name: Add Custom CA cert
|
||||||
|
run: sudo cp /home/runner/work/storage/storage/tls/ca.crt /usr/local/share/ca-certificates/custom.crt
|
||||||
|
|
||||||
|
- name: Trust Custom CA Cert
|
||||||
|
run: sudo update-ca-certificates
|
||||||
|
|
||||||
- name: Setup Redis
|
- name: Setup Redis
|
||||||
uses: shogo82148/actions-setup-redis@v1
|
uses: shogo82148/actions-setup-redis@v1
|
||||||
with:
|
with:
|
||||||
redis-version: ${{ matrix.redis }}
|
redis-version: ${{ matrix.redis }}
|
||||||
auto-start: 'false'
|
auto-start: 'false'
|
||||||
redis-port: '6379'
|
|
||||||
redis-tls-port: '6380'
|
|
||||||
|
|
||||||
- name: Run Redis
|
- name: Run Redis
|
||||||
run: |
|
run: |
|
||||||
redis-server --tls-port 6380 --port 6379 \
|
redis-server --tls-port 6380 --port 6379 \
|
||||||
--tls-cert-file ./redis/tests/tls/redis.crt \
|
--tls-cert-file /home/runner/work/storage/storage/tls/redis.crt \
|
||||||
--tls-key-file ./redis/tests/tls/redis.key \
|
--tls-key-file /home/runner/work/storage/storage/tls/redis.key \
|
||||||
--tls-ca-cert-file ./redis/tests/tls/ca.crt&
|
--tls-ca-cert-file /home/runner/work/storage/storage/tls/ca.crt &
|
||||||
|
|
||||||
|
- name: Run Redis instance with MTLS disabled
|
||||||
|
run: |
|
||||||
|
redis-server --tls-port 16380 --port 16379 \
|
||||||
|
--tls-cert-file /home/runner/work/storage/storage/tls/redis.crt \
|
||||||
|
--tls-key-file /home/runner/work/storage/storage/tls/redis.key \
|
||||||
|
--tls-ca-cert-file /home/runner/work/storage/storage/tls/ca.crt \
|
||||||
|
--tls-auth-clients no &
|
||||||
|
|
||||||
|
- name: Setup Redis Cluster
|
||||||
|
uses: vishnudxb/redis-cluster@1.0.9
|
||||||
|
with:
|
||||||
|
master1-port: 7000
|
||||||
|
master2-port: 7001
|
||||||
|
master3-port: 7002
|
||||||
|
slave1-port: 7003
|
||||||
|
slave2-port: 7004
|
||||||
|
slave3-port: 7005
|
||||||
|
sleep-duration: 10
|
||||||
|
|
||||||
|
- name: Wait for Redis to Start
|
||||||
|
run: sleep 15
|
||||||
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./redis && go test ./... -v -race
|
run: cd ./redis && go test ./... -v -race
|
||||||
|
38
.github/workflows/test-ristretto.yml
vendored
38
.github/workflows/test-ristretto.yml
vendored
@@ -15,33 +15,15 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install Go
|
- name: Fetch Repository
|
||||||
uses: actions/setup-go@v3
|
uses: actions/checkout@v4
|
||||||
with:
|
- name: Install Go
|
||||||
go-version: '${{ matrix.go-version }}'
|
uses: actions/setup-go@v5
|
||||||
- name: Setup Golang caches
|
with:
|
||||||
uses: actions/cache@v3
|
go-version: '${{ matrix.go-version }}'
|
||||||
with:
|
- name: Run Test
|
||||||
# In order:
|
run: cd ./ristretto && go test ./... -v -race
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
|
||||||
run: cd ./ristretto && go mod tidy && go test ./... -v -race
|
|
||||||
|
62
.github/workflows/test-rueidis.yml
vendored
Normal file
62
.github/workflows/test-rueidis.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'rueidis/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'rueidis/**'
|
||||||
|
name: "Tests Rueidis"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.20.x
|
||||||
|
- 1.21.x
|
||||||
|
redis:
|
||||||
|
- '6.x'
|
||||||
|
- '7.x'
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Generate TLS certs
|
||||||
|
run: ./.github/scripts/gen-test-certs.sh
|
||||||
|
|
||||||
|
- name: Setup Redis
|
||||||
|
uses: shogo82148/actions-setup-redis@v1
|
||||||
|
with:
|
||||||
|
redis-version: ${{ matrix.redis }}
|
||||||
|
auto-start: 'false'
|
||||||
|
redis-port: '6379'
|
||||||
|
redis-tls-port: '6380'
|
||||||
|
|
||||||
|
- name: Run Redis
|
||||||
|
run: |
|
||||||
|
redis-server --tls-port 6380 --port 6379 \
|
||||||
|
--tls-cert-file /home/runner/work/storage/storage/tls/redis.crt \
|
||||||
|
--tls-key-file /home/runner/work/storage/storage/tls/redis.key \
|
||||||
|
--tls-ca-cert-file /home/runner/work/storage/storage/tls/ca.crt &
|
||||||
|
|
||||||
|
- name: Setup Redis Cluster
|
||||||
|
uses: vishnudxb/redis-cluster@1.0.9
|
||||||
|
with:
|
||||||
|
master1-port: 7000
|
||||||
|
master2-port: 7001
|
||||||
|
master3-port: 7002
|
||||||
|
slave1-port: 7003
|
||||||
|
slave2-port: 7004
|
||||||
|
slave3-port: 7005
|
||||||
|
sleep-duration: 10
|
||||||
|
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
|
||||||
|
- name: Run Test
|
||||||
|
run: cd ./rueidis && go test ./... -v -race
|
38
.github/workflows/test-s3.yml
vendored
38
.github/workflows/test-s3.yml
vendored
@@ -15,43 +15,17 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install MinIO
|
- name: Install MinIO
|
||||||
run: |
|
run: docker run -d --restart always -p 9000:9000 --name storage-minio -e MINIO_ROOT_USER='minio-user' -e MINIO_ROOT_PASSWORD='minio-password' minio/minio server /data
|
||||||
docker run -d -p 9000:9000 --name minio minio/minio server /data
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
export AWS_ACCESS_KEY_ID=minioadmin
|
|
||||||
export AWS_SECRET_ACCESS_KEY=minioadmin
|
|
||||||
export AWS_EC2_METADATA_DISABLED=true
|
|
||||||
|
|
||||||
aws --endpoint-url http://127.0.0.1:9000/ s3 mb s3://testbucket
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run Test
|
- name: Run Test
|
||||||
run: cd ./s3 && go test ./... -v -race
|
run: cd ./s3 && go test ./... -v -race
|
||||||
|
39
.github/workflows/test-scylladb.yml
vendored
Normal file
39
.github/workflows/test-scylladb.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'scylladb/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'scylladb/**'
|
||||||
|
|
||||||
|
name: "Tests ScyllaDb"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.20.x
|
||||||
|
- 1.21.x
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Run ScyllaDb
|
||||||
|
run: |
|
||||||
|
docker run --name scylladb -p 9042:9042 -p 19042:19042 -p 9160:9160 -p 10000:10000 -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9180:9180 -d scylladb/scylla:latest --broadcast-address 127.0.0.1 --listen-address 0.0.0.0 --broadcast-rpc-address 127.0.0.1
|
||||||
|
sleep 30 # Wait for ScyllaDb to initialize
|
||||||
|
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
|
||||||
|
- name: Run Test
|
||||||
|
run: cd ./scylladb && go test ./... -v -race
|
32
.github/workflows/test-sqlite3.yml
vendored
32
.github/workflows/test-sqlite3.yml
vendored
@@ -14,37 +14,17 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version:
|
go-version:
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
- 1.19.x
|
||||||
platform:
|
- 1.20.x
|
||||||
- ubuntu-latest
|
- 1.21.x
|
||||||
- windows-latest
|
runs-on: ubuntu-latest
|
||||||
runs-on: '${{ matrix.platform }}'
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '${{ matrix.go-version }}'
|
go-version: '${{ matrix.go-version }}'
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Test SQLite3 - with -race check
|
- name: Test SQLite3 - with -race check
|
||||||
if: runner.os != 'Windows'
|
if: runner.os != 'Windows'
|
||||||
run: cd ./sqlite3 && go test ./... -v -race
|
run: cd ./sqlite3 && go test ./... -v -race
|
||||||
|
63
.github/workflows/test-valkey.yml
vendored
Normal file
63
.github/workflows/test-valkey.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'valkey/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'valkey/**'
|
||||||
|
- '.github/workflows/test-valkey.yml'
|
||||||
|
name: "Tests Valkey"
|
||||||
|
jobs:
|
||||||
|
Tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version:
|
||||||
|
- 1.23.x
|
||||||
|
valkey:
|
||||||
|
- '7.x'
|
||||||
|
- '8.x'
|
||||||
|
steps:
|
||||||
|
- name: Fetch Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Generate TLS certs
|
||||||
|
run: ./.github/scripts/gen-test-certs.sh
|
||||||
|
|
||||||
|
- name: Setup Valkey
|
||||||
|
uses: shogo82148/actions-setup-redis@v1
|
||||||
|
with:
|
||||||
|
distribution: 'valkey'
|
||||||
|
redis-version: ${{ matrix.valkey }}
|
||||||
|
auto-start: 'false'
|
||||||
|
redis-port: '6379'
|
||||||
|
redis-tls-port: '6380'
|
||||||
|
|
||||||
|
- name: Run Valkey
|
||||||
|
run: |
|
||||||
|
valkey-server --tls-port 6380 --port 6379 \
|
||||||
|
--tls-cert-file /home/runner/work/storage/storage/tls/valkey.crt \
|
||||||
|
--tls-key-file /home/runner/work/storage/storage/tls/valkey.key \
|
||||||
|
--tls-ca-cert-file /home/runner/work/storage/storage/tls/ca.crt &
|
||||||
|
|
||||||
|
- name: Setup Valkey Cluster
|
||||||
|
uses: vishnudxb/redis-cluster@1.0.9
|
||||||
|
with:
|
||||||
|
master1-port: 7000
|
||||||
|
master2-port: 7001
|
||||||
|
master3-port: 7002
|
||||||
|
slave1-port: 7003
|
||||||
|
slave2-port: 7004
|
||||||
|
slave3-port: 7005
|
||||||
|
sleep-duration: 10
|
||||||
|
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '${{ matrix.go-version }}'
|
||||||
|
|
||||||
|
- name: Run Test
|
||||||
|
run: cd ./valkey && go test ./... -v -race
|
49
.github/workflows/test.yml
vendored
49
.github/workflows/test.yml
vendored
@@ -1,49 +0,0 @@
|
|||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- 'memory/**'
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- 'memory/**'
|
|
||||||
name: "Tests Local Storage"
|
|
||||||
jobs:
|
|
||||||
Tests:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
go-version:
|
|
||||||
- 1.16.x
|
|
||||||
- 1.18.x
|
|
||||||
- 1.19.x
|
|
||||||
platform:
|
|
||||||
- ubuntu-latest
|
|
||||||
- windows-latest
|
|
||||||
runs-on: '${{ matrix.platform }}'
|
|
||||||
steps:
|
|
||||||
- name: Install Go
|
|
||||||
uses: actions/setup-go@v3
|
|
||||||
with:
|
|
||||||
go-version: '${{ matrix.go-version }}'
|
|
||||||
- name: Setup Golang caches
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
# In order:
|
|
||||||
# * Module download cache
|
|
||||||
# * Build cache (Linux)
|
|
||||||
# * Build cache (Mac)
|
|
||||||
# * Build cache (Windows)
|
|
||||||
path: |
|
|
||||||
~/go/pkg/mod
|
|
||||||
~/.cache/go-build
|
|
||||||
~/Library/Caches/go-build
|
|
||||||
~\AppData\Local\go-build
|
|
||||||
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-go-${{ matrix.go-version }}-
|
|
||||||
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Test Memory
|
|
||||||
run: cd ./memory && go test ./... -v -race
|
|
19
.github/workflows/vulncheck.yml
vendored
19
.github/workflows/vulncheck.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
on: [push, pull_request_target]
|
|
||||||
name: Vulnerability Check
|
|
||||||
jobs:
|
|
||||||
Security:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Install Go
|
|
||||||
uses: actions/setup-go@v3
|
|
||||||
with:
|
|
||||||
go-version: 1.19.x
|
|
||||||
- name: Fetch Repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Install Govulncheck
|
|
||||||
run: |
|
|
||||||
export GO111MODULE=on
|
|
||||||
export PATH=${PATH}:`go env GOPATH`/bin
|
|
||||||
go install golang.org/x/vuln/cmd/govulncheck@latest
|
|
||||||
- name: Run Govulncheck
|
|
||||||
run: "`go env GOPATH`/bin/govulncheck ./..."
|
|
4
.gitignore
vendored
4
.gitignore
vendored
@@ -28,3 +28,7 @@
|
|||||||
vendor/
|
vendor/
|
||||||
vendor
|
vendor
|
||||||
/Godeps/
|
/Godeps/
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Go specific
|
||||||
|
go.work*
|
||||||
|
22
MIGRATE.md
22
MIGRATE.md
@@ -1,22 +0,0 @@
|
|||||||
This document contains instructions for migrating to various storage versions.
|
|
||||||
|
|
||||||
### 0.1 -> 0.2
|
|
||||||
v0.2 fixes [a bug](https://github.com/gofiber/fiber/issues/1258) in MYSQL, Postgres and Arangodb in which
|
|
||||||
inserting non-UTF8 characters would trigger a panic due to the values being saved in a TEXT column instead of a
|
|
||||||
BYTEA/BLOB column. Migration instructions (note you may need to adjust the table names if you have supplied a custom
|
|
||||||
config to the storage):
|
|
||||||
|
|
||||||
**Postgres**
|
|
||||||
```sql
|
|
||||||
ALTER TABLE fiber_storage
|
|
||||||
ALTER COLUMN v TYPE BYTEA USING v::bytea;
|
|
||||||
```
|
|
||||||
|
|
||||||
**MYSQL**
|
|
||||||
```sql
|
|
||||||
ALTER TABLE fiber_storage MODIFY COLUMN v BLOB;
|
|
||||||
```
|
|
||||||
|
|
||||||
**Arangodb**
|
|
||||||
|
|
||||||
No migration other then updating the library is necessary.
|
|
172
README.md
172
README.md
@@ -1,94 +1,78 @@
|
|||||||
<p align="center">
|
---
|
||||||
<!-- <a href="https://gofiber.io">
|
title: 👋 Welcome
|
||||||
<img alt="Fiber" height="125" src="https://raw.githubusercontent.com/gofiber/docs/master/static/fiber_v2_logo.svg">
|
description: 📦 Premade storage drivers for 🚀 Fiber.
|
||||||
</a>
|
sidebar_position: 1
|
||||||
<br> -->
|
---
|
||||||
|
|
||||||
# 📦 Storage
|
<p align="center">
|
||||||
|
<img height="125" alt="Fiber" src="https://raw.githubusercontent.com/gofiber/storage/master/.github/logo-dark.svg#gh-dark-mode-only" />
|
||||||
<a href="https://pkg.go.dev/github.com/gofiber/storage?tab=doc">
|
<img height="125" alt="Fiber" src="https://raw.githubusercontent.com/gofiber/storage/master/.github/logo.svg#gh-light-mode-only" />
|
||||||
<img src="https://img.shields.io/badge/%F0%9F%93%9A%20godoc-pkg-00ACD7.svg?color=00ACD7&style=flat">
|
<br/>
|
||||||
</a>
|
|
||||||
<a href="https://goreportcard.com/report/github.com/gofiber/storage">
|
<a href="https://pkg.go.dev/github.com/gofiber/storage?tab=doc">
|
||||||
<img src="https://img.shields.io/badge/%F0%9F%93%9D%20goreport-A%2B-75C46B">
|
<img src="https://img.shields.io/badge/%F0%9F%93%9A%20godoc-pkg-00ACD7.svg?color=00ACD7&style=flat"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://gocover.io/github.com/gofiber/storage">
|
<a href="https://goreportcard.com/report/github.com/gofiber/storage">
|
||||||
<img src="https://img.shields.io/badge/%F0%9F%94%8E%20gocover-97.8%25-75C46B.svg?style=flat">
|
<img src="https://img.shields.io/badge/%F0%9F%93%9D%20goreport-A%2B-75C46B"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://gofiber.io/discord">
|
<a href="https://gofiber.io/discord">
|
||||||
<img src="https://img.shields.io/discord/704680098577514527?style=flat&label=%F0%9F%92%AC%20discord&color=00ACD7">
|
<img src="https://img.shields.io/discord/704680098577514527?style=flat&label=%F0%9F%92%AC%20discord&color=00ACD7"/>
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
Premade storage drivers that implement the [`Storage`](https://github.com/gofiber/storage/blob/main/storage.go) interface, designed to be used with various [Fiber middlewares](https://github.com/gofiber/fiber/tree/master/middleware).
|
Premade storage drivers that implement the [`Storage`](https://github.com/gofiber/storage/blob/main/storage.go) interface, designed to be used with various [Fiber middlewares](https://github.com/gofiber/fiber/tree/master/middleware).
|
||||||
|
|
||||||
```go
|
```go
|
||||||
// Storage interface for communicating with different database/key-value
|
// Storage interface for communicating with different database/key-value
|
||||||
// providers. Visit https://github.com/gofiber/storage for more info.
|
// providers. Visit https://github.com/gofiber/storage for more info.
|
||||||
type Storage interface {
|
type Storage interface {
|
||||||
// Get gets the value for the given key.
|
// Get gets the value for the given key.
|
||||||
// `nil, nil` is returned when the key does not exist
|
// `nil, nil` is returned when the key does not exist
|
||||||
Get(key string) ([]byte, error)
|
Get(key string) ([]byte, error)
|
||||||
|
|
||||||
// Set stores the given value for the given key along
|
// Set stores the given value for the given key along
|
||||||
// with an expiration value, 0 means no expiration.
|
// with an expiration value, 0 means no expiration.
|
||||||
// Empty key or value will be ignored without an error.
|
// Empty key or value will be ignored without an error.
|
||||||
Set(key string, val []byte, exp time.Duration) error
|
Set(key string, val []byte, exp time.Duration) error
|
||||||
|
|
||||||
// Delete deletes the value for the given key.
|
// Delete deletes the value for the given key.
|
||||||
// It returns no error if the storage does not contain the key,
|
// It returns no error if the storage does not contain the key,
|
||||||
Delete(key string) error
|
Delete(key string) error
|
||||||
|
|
||||||
// Reset resets the storage and delete all keys.
|
// Reset resets the storage and delete all keys.
|
||||||
Reset() error
|
Reset() error
|
||||||
|
|
||||||
// Close closes the storage and will stop any running garbage
|
// Close closes the storage and will stop any running garbage
|
||||||
// collectors and open connections.
|
// collectors and open connections.
|
||||||
Close() error
|
Close() error
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## 📑 Storage Implementations
|
## 📑 Storage Implementations
|
||||||
|
|
||||||
* [ArangoDB](/arangodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+ArangoDB%22">
|
- [ArangoDB](./arangodb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+ArangoDB%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-arangodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-arangodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [AzureBlob](./azureblob/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Azure+Blob%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-azureblob.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
- [Badger](./badger/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Badger%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-badger.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
* [AzureBlob](/azureblob) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Azure+Blob%22">
|
- [Bbolt](./bbolt) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Bbolt%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-bbolt.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-azureblob.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [CloudflareKV](./cloudflarekv/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+CloudflareKV%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-cloudflarekv.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
- [Coherence](./coherence/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Coherence%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-coherence.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
* [Badger](/badger) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Badger%22">
|
- [Couchbase](./couchbase/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Couchbase%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-couchbase.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-badger.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [DynamoDB](./dynamodb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+DynamoDB%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-dynamodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
- [Etcd](./etcd/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Etcd%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-etcd.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
* [Bbolt](/bbolt) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Bbolt%22">
|
- [Memcache](./memcache/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Memcache%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-memcache.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-bbolt.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [Memory](./memory/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Local+Storage%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-memory.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
- [Minio](./minio/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Minio%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-minio.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
* [DynamoDB](/dynamodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+DynamoDB%22">
|
- [MockStorage](./mockstorage/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MockStorage%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mockstorage.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-dynamodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [MongoDB](./mongodb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Mongodb%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mongodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
- [MSSQL](./mssql/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MSSQL%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mssql.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
* [Memcache](/memcache) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Memcache%22">
|
- [MySQL](./mysql/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MySQL%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mysql.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-memcache.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [NATS](./nats/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests%20Nats%20Driver%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-nats.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
- [Pebble](./pebble/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Pebble%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-pebble.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
* [Memory](/memory) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Local+Storage%22">
|
- [Postgres](./postgres/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Postgres%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-postgres.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [Redis](./redis/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Redis%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-redis.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
- [Rueidis](./rueidis/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+rueidis%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-rueidis.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
* [MongoDB](/mongodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Mongodb%22">
|
- [S3](./s3/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+S3%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-s3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mongodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [ScyllaDB](./scylladb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+scylladb%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-scylladb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
- [SQLite3](./sqlite3/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Sqlite3%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-sqlite3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
* [MSSQL](/mssql) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MSSQL%22">
|
- [ClickHouse](./clickhouse/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Clickhouse%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-clickhouse.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mssql.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
- [Valkey](./valkey/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+valkey%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-valkey.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a>
|
||||||
</a>
|
|
||||||
* [MySQL](/mysql) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MySQL%22">
|
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mysql.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
|
||||||
</a>
|
|
||||||
* [Postgres](/postgres) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Postgres%22">
|
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-postgres.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
|
||||||
</a>
|
|
||||||
* [Redis](/redis) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Redis%22">
|
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-redis.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
|
||||||
</a>
|
|
||||||
* [SQLite3](/sqlite3) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Sqlite3%22">
|
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-sqlite3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
|
||||||
</a>
|
|
||||||
* [S3](/s3) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+S3%22">
|
|
||||||
<img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-s3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B">
|
|
||||||
</a>
|
|
||||||
|
@@ -1,6 +1,18 @@
|
|||||||
# ArangoDB
|
---
|
||||||
|
id: arangodb
|
||||||
|
title: ArangoDB
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
|
[](https://gofiber.io/discord)
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
A ArangoDB storage driver using `arangodb/go-driver` and [arangodb/go-driver](https://github.com/arangodb/go-driver).
|
A ArangoDB storage driver using `arangodb/go-driver` and [arangodb/go-driver](https://github.com/arangodb/go-driver).
|
||||||
|
|
||||||
|
**Note: Requires Go 1.19 and above**
|
||||||
|
|
||||||
### Table of Contents
|
### Table of Contents
|
||||||
- [Signatures](#signatures)
|
- [Signatures](#signatures)
|
||||||
- [Installation](#installation)
|
- [Installation](#installation)
|
||||||
@@ -25,13 +37,13 @@ go mod init github.com/<user>/<repo>
|
|||||||
```
|
```
|
||||||
And then install the mysql implementation:
|
And then install the mysql implementation:
|
||||||
```bash
|
```bash
|
||||||
go get github.com/gofiber/storage/arangodb
|
go get github.com/gofiber/storage/arangodb/v2
|
||||||
```
|
```
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
Import the storage package.
|
Import the storage package.
|
||||||
```go
|
```go
|
||||||
import "github.com/gofiber/storage/arangodb"
|
import "github.com/gofiber/storage/arangodb/v2"
|
||||||
```
|
```
|
||||||
|
|
||||||
You can use the following possibilities to create a storage:
|
You can use the following possibilities to create a storage:
|
||||||
|
@@ -7,7 +7,7 @@ import (
|
|||||||
|
|
||||||
"github.com/arangodb/go-driver"
|
"github.com/arangodb/go-driver"
|
||||||
"github.com/arangodb/go-driver/http"
|
"github.com/arangodb/go-driver/http"
|
||||||
"github.com/gofiber/utils"
|
"github.com/gofiber/utils/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Storage interface that is implemented by storage providers
|
// Storage interface that is implemented by storage providers
|
||||||
|
@@ -4,51 +4,51 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gofiber/utils"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
var testStore = New(Config{
|
var testStore = New(Config{
|
||||||
Reset: true,
|
Reset: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
func Test_ARANGODB_Set(t *testing.T) {
|
func Test_ArangoDB_Set(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
key = "john"
|
key = "john"
|
||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Upsert(t *testing.T) {
|
func Test_ArangoDB_Upsert(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
key = "john"
|
key = "john"
|
||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Set(key, val, 0)
|
err = testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Get(t *testing.T) {
|
func Test_ArangoDB_Get(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
key = "john"
|
key = "john"
|
||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get(key)
|
result, err := testStore.Get(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, val, result)
|
require.Equal(t, val, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Set_Expiration(t *testing.T) {
|
func Test_ArangoDB_Set_Expiration(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
key = "john"
|
key = "john"
|
||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
@@ -56,83 +56,117 @@ func Test_ARANGODB_Set_Expiration(t *testing.T) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, exp)
|
err := testStore.Set(key, val, exp)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
time.Sleep(1100 * time.Millisecond)
|
time.Sleep(1100 * time.Millisecond)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Get_Expired(t *testing.T) {
|
func Test_ArangoDB_Get_Expired(t *testing.T) {
|
||||||
var (
|
key := "john"
|
||||||
key = "john"
|
|
||||||
)
|
|
||||||
|
|
||||||
result, err := testStore.Get(key)
|
result, err := testStore.Get(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Get_NotExist(t *testing.T) {
|
func Test_ArangoDB_Get_NotExist(t *testing.T) {
|
||||||
|
|
||||||
result, err := testStore.Get("notexist")
|
result, err := testStore.Get("notexist")
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Delete(t *testing.T) {
|
func Test_ArangoDB_Delete(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
key = "john"
|
key = "john"
|
||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Delete(key)
|
err = testStore.Delete(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get(key)
|
result, err := testStore.Get(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Reset(t *testing.T) {
|
func Test_ArangoDB_Reset(t *testing.T) {
|
||||||
var (
|
val := []byte("doe")
|
||||||
val = []byte("doe")
|
|
||||||
)
|
|
||||||
|
|
||||||
err := testStore.Set("john1", val, 0)
|
err := testStore.Set("john1", val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Set("john2", val, 0)
|
err = testStore.Set("john2", val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Reset()
|
err = testStore.Reset()
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get("john1")
|
result, err := testStore.Get("john1")
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
|
|
||||||
result, err = testStore.Get("john2")
|
result, err = testStore.Get("john2")
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Non_UTF8(t *testing.T) {
|
func Test_ArangoDB_Non_UTF8(t *testing.T) {
|
||||||
val := []byte("0xF5")
|
val := []byte("0xF5")
|
||||||
|
|
||||||
err := testStore.Set("0xF6", val, 0)
|
err := testStore.Set("0xF6", val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get("0xF6")
|
result, err := testStore.Get("0xF6")
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, val, result)
|
require.Equal(t, val, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Close(t *testing.T) {
|
func Test_ArangoDB_Close(t *testing.T) {
|
||||||
utils.AssertEqual(t, nil, testStore.Close())
|
require.Nil(t, testStore.Close())
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ARANGODB_Conn(t *testing.T) {
|
func Test_ArangoDB_Conn(t *testing.T) {
|
||||||
utils.AssertEqual(t, true, testStore.Conn() != nil)
|
require.True(t, testStore.Conn() != nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_ArangoDB_Set(b *testing.B) {
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
err = testStore.Set("john", []byte("doe"), 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_ArangoDB_Get(b *testing.B) {
|
||||||
|
err := testStore.Set("john", []byte("doe"), 0)
|
||||||
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
_, err = testStore.Get("john")
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_ArangoDB_SetAndDelete(b *testing.B) {
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
_ = testStore.Set("john", []byte("doe"), 0)
|
||||||
|
err = testStore.Delete("john")
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,18 @@
|
|||||||
module github.com/gofiber/storage/arangodb
|
module github.com/gofiber/storage/arangodb/v2
|
||||||
|
|
||||||
go 1.16
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/arangodb/go-driver v1.5.2
|
github.com/arangodb/go-driver v1.6.2
|
||||||
github.com/gofiber/utils v1.0.1
|
github.com/gofiber/utils/v2 v2.0.0-beta.3
|
||||||
|
github.com/stretchr/testify v1.9.0
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e // indirect
|
||||||
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
|
github.com/google/uuid v1.3.1 // indirect
|
||||||
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
@@ -1,56 +1,24 @@
|
|||||||
github.com/arangodb/go-driver v1.5.2 h1:/gmUh2XbNJKvEMgldlZ465KfKfL8aHlsjen0AF50VgY=
|
github.com/arangodb/go-driver v1.6.2 h1:3o4inejwR7VMmsKvQJ6hepx4au9sUT6C/RDrXykuD1g=
|
||||||
github.com/arangodb/go-driver v1.5.2/go.mod h1:VQNm7LN7ZzKZ8TxYQ3JJ7U/JTtb8y9fRiF11YMCjOTA=
|
github.com/arangodb/go-driver v1.6.2/go.mod h1:2BCE6y3DNSLqIXnDvf4CR6WdzZZloYudEy+sasimLiQ=
|
||||||
github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e h1:Xg+hGrY2LcQBbxd0ZFdbGSyRKTYMZCfBbw/pMJFOk1g=
|
github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e h1:Xg+hGrY2LcQBbxd0ZFdbGSyRKTYMZCfBbw/pMJFOk1g=
|
||||||
github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e/go.mod h1:mq7Shfa/CaixoDxiyAAc5jZ6CVBAyPaNQCGS7mkj4Ho=
|
github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e/go.mod h1:mq7Shfa/CaixoDxiyAAc5jZ6CVBAyPaNQCGS7mkj4Ho=
|
||||||
github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q=
|
|
||||||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
|
||||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/dchest/uniuri v0.0.0-20160212164326-8902c56451e9/go.mod h1:GgB8SF9nRG+GqaDtLcwJZsQFhcogVCJ79j4EdT0c2V4=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc=
|
github.com/gofiber/utils/v2 v2.0.0-beta.3 h1:pfOhUDDVjBJpkWv6C5jaDyYLvpui7zQ97zpyFFsUOKw=
|
||||||
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
|
github.com/gofiber/utils/v2 v2.0.0-beta.3/go.mod h1:jsl17+MsKfwJjM3ONCE9Rzji/j8XNbwjhUVTjzgfDCo=
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
|
|
||||||
github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo=
|
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
|
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|
||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
@@ -1,8 +1,17 @@
|
|||||||
# Azure blob
|
---
|
||||||
|
id: azureblob
|
||||||
|
title: Azure Blob
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
|
[](https://gofiber.io/discord)
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
[Azure Blob storage](https://azure.microsoft.com/en-us/products/storage/blobs/#overview) is Microsoft's object storage solution for the cloud.
|
[Azure Blob storage](https://azure.microsoft.com/en-us/products/storage/blobs/#overview) is Microsoft's object storage solution for the cloud.
|
||||||
|
|
||||||
> NOTE: Go **1.18** or later is required. Source: [link](https://github.com/Azure/azure-sdk-for-go/blob/main/README.md)
|
**Note: Requires Go 1.19 and above**
|
||||||
|
|
||||||
### Table of Contents
|
### Table of Contents
|
||||||
|
|
||||||
@@ -35,7 +44,7 @@ go mod init github.com/<user>/<repo>
|
|||||||
And then install the azure blob implementation:
|
And then install the azure blob implementation:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
go get github.com/gofiber/storage/azureblob
|
go get github.com/gofiber/storage/azureblob/v2
|
||||||
```
|
```
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
@@ -43,7 +52,7 @@ go get github.com/gofiber/storage/azureblob
|
|||||||
Import the storage package.
|
Import the storage package.
|
||||||
|
|
||||||
```go
|
```go
|
||||||
import "github.com/gofiber/storage/azureblob"
|
import "github.com/gofiber/storage/azureblob/v2"
|
||||||
```
|
```
|
||||||
|
|
||||||
You can use the following possibilities to create a storage:
|
You can use the following possibilities to create a storage:
|
||||||
|
@@ -2,12 +2,12 @@ package azureblob
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
|
|
||||||
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
|
|
||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
|
||||||
|
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Storage interface that is implemented by storage providers
|
// Storage interface that is implemented by storage providers
|
||||||
@@ -107,7 +107,7 @@ func (s *Storage) Reset() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if errCounter > 0 {
|
if errCounter > 0 {
|
||||||
return errors.New(fmt.Sprintf("%d errors occured while resetting", errCounter))
|
return fmt.Errorf("%d errors occured while resetting", errCounter)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@@ -1,13 +1,17 @@
|
|||||||
package azureblob
|
package azureblob
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
|
"os"
|
||||||
"github.com/gofiber/fiber/v2/utils"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newStore() *Storage {
|
var testStore *Storage
|
||||||
return New(Config{
|
|
||||||
|
func TestMain(m *testing.M) {
|
||||||
|
testStore = New(Config{
|
||||||
Account: "devstoreaccount1",
|
Account: "devstoreaccount1",
|
||||||
Container: "test",
|
Container: "test",
|
||||||
Endpoint: "http://127.0.0.1:10000/devstoreaccount1",
|
Endpoint: "http://127.0.0.1:10000/devstoreaccount1",
|
||||||
@@ -15,21 +19,27 @@ func newStore() *Storage {
|
|||||||
Account: "devstoreaccount1",
|
Account: "devstoreaccount1",
|
||||||
Key: "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==",
|
Key: "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==",
|
||||||
},
|
},
|
||||||
|
Reset: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
code := m.Run()
|
||||||
|
|
||||||
|
_ = testStore.Close()
|
||||||
|
os.Exit(code)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_AzureBlob_Get(t *testing.T) {
|
func Test_AzureBlob_Get(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
key = "john"
|
key = "john"
|
||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
)
|
)
|
||||||
testStore := newStore()
|
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get(key)
|
result, err := testStore.Get(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, val, result)
|
require.Equal(t, val, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_AzureBlob_Set(t *testing.T) {
|
func Test_AzureBlob_Set(t *testing.T) {
|
||||||
@@ -38,9 +48,8 @@ func Test_AzureBlob_Set(t *testing.T) {
|
|||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
)
|
)
|
||||||
|
|
||||||
testStore := newStore()
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_AzureBlob_Delete(t *testing.T) {
|
func Test_AzureBlob_Delete(t *testing.T) {
|
||||||
@@ -48,13 +57,12 @@ func Test_AzureBlob_Delete(t *testing.T) {
|
|||||||
key = "john"
|
key = "john"
|
||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
)
|
)
|
||||||
testStore := newStore()
|
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Delete(key)
|
err = testStore.Delete(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get(key)
|
result, err := testStore.Get(key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -62,8 +70,8 @@ func Test_AzureBlob_Delete(t *testing.T) {
|
|||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_AzureBlob_Override(t *testing.T) {
|
func Test_AzureBlob_Override(t *testing.T) {
|
||||||
@@ -71,41 +79,36 @@ func Test_AzureBlob_Override(t *testing.T) {
|
|||||||
key = "john"
|
key = "john"
|
||||||
val = []byte("doe")
|
val = []byte("doe")
|
||||||
)
|
)
|
||||||
testStore := newStore()
|
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Set(key, val, 0)
|
err = testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_AzureBlob_Get_NotExist(t *testing.T) {
|
func Test_AzureBlob_Get_NotExist(t *testing.T) {
|
||||||
testStore := newStore()
|
|
||||||
result, err := testStore.Get("notexist")
|
result, err := testStore.Get("notexist")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if bloberror.HasCode(err, bloberror.BlobNotFound) {
|
if bloberror.HasCode(err, bloberror.BlobNotFound) {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_AzureBlob_Reset(t *testing.T) {
|
func Test_AzureBlob_Reset(t *testing.T) {
|
||||||
var (
|
val := []byte("doe")
|
||||||
val = []byte("doe")
|
|
||||||
)
|
|
||||||
testStore := newStore()
|
|
||||||
|
|
||||||
err := testStore.Set("john1", val, 0)
|
err := testStore.Set("john1", val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Set("john2", val, 0)
|
err = testStore.Set("john2", val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Reset()
|
err = testStore.Reset()
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get("john1")
|
result, err := testStore.Get("john1")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -113,8 +116,8 @@ func Test_AzureBlob_Reset(t *testing.T) {
|
|||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
|
|
||||||
result, err = testStore.Get("john2")
|
result, err = testStore.Get("john2")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -122,16 +125,53 @@ func Test_AzureBlob_Reset(t *testing.T) {
|
|||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_S3_Conn(t *testing.T) {
|
func Test_S3_Conn(t *testing.T) {
|
||||||
testStore := newStore()
|
require.True(t, testStore.Conn() != nil)
|
||||||
utils.AssertEqual(t, true, testStore.Conn() != nil)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_AzureBlob_Close(t *testing.T) {
|
func Test_AzureBlob_Close(t *testing.T) {
|
||||||
testStore := newStore()
|
require.Nil(t, testStore.Close())
|
||||||
utils.AssertEqual(t, nil, testStore.Close())
|
}
|
||||||
|
|
||||||
|
func Benchmark_AzureBlob_Set(b *testing.B) {
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
err = testStore.Set("john", []byte("doe"), 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_AzureBlob_Get(b *testing.B) {
|
||||||
|
err := testStore.Set("john", []byte("doe"), 0)
|
||||||
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
_, err = testStore.Get("john")
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_AzureBlob_SetAndDelete(b *testing.B) {
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
_ = testStore.Set("john", []byte("doe"), 0)
|
||||||
|
err = testStore.Delete("john")
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
}
|
}
|
||||||
|
@@ -1,16 +1,18 @@
|
|||||||
module github.com/gofiber/storage/azureblob
|
module github.com/gofiber/storage/azureblob/v2
|
||||||
|
|
||||||
go 1.18
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0
|
||||||
github.com/gofiber/fiber/v2 v2.40.0
|
github.com/stretchr/testify v1.9.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 // indirect
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
|
||||||
github.com/google/uuid v1.3.0 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
golang.org/x/net v0.7.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
golang.org/x/text v0.7.0 // indirect
|
golang.org/x/net v0.27.0 // indirect
|
||||||
|
golang.org/x/text v0.16.0 // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
@@ -1,27 +1,32 @@
|
|||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0 h1:sVW/AFBTGyJxDaMYlq0ct3jUXTtj12tQ6zE2GZUgVQw=
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U=
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8=
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8=
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w=
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1 h1:YvQv9Mz6T8oR5ypQOL6erY0Z5t71ak1uHV4QFokCOZk=
|
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.6.0 h1:PiSrjRPpkQNjrM8H0WwKMnZUdu1RGMtd/LdGKUrOo+c=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1/go.mod h1:c6WvOhtmjNUWbLfOG1qxM/q0SPvQNSVJvolm+C52dIU=
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0 h1:Be6KInmFEKV81c0pOAEbRYehLMwmmGI1exuFj248AMk=
|
||||||
github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE=
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0/go.mod h1:WCPBHsOXfBVnivScjs2ypRfimjEW0qPVLGgJkZlrIOA=
|
||||||
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/gofiber/fiber/v2 v2.40.0 h1:fdU7w5hT6PLL7jiWIhtQ+S/k5WEFYoUZidptlPu8GBo=
|
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
|
||||||
github.com/gofiber/fiber/v2 v2.40.0/go.mod h1:Gko04sLksnHbzLSRBFWPFdzM9Ws9pRxvvIaohJK1dsk=
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
||||||
github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI=
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88 h1:Tgea0cVUD0ivh5ADBX4WwuI12DUd2to3nCYe2eayMIw=
|
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
||||||
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
|
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
|
golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
|
||||||
golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
|
golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
|
||||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
|
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
|
||||||
|
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
@@ -1,7 +1,18 @@
|
|||||||
# Badger
|
---
|
||||||
|
id: badger
|
||||||
|
title: Badger
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
|
[](https://gofiber.io/discord)
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
A fast key-value DB using [dgraph-io/badger](https://github.com/dgraph-io/badger)
|
A fast key-value DB using [dgraph-io/badger](https://github.com/dgraph-io/badger)
|
||||||
|
|
||||||
|
**Note: Requires Go 1.19 and above**
|
||||||
|
|
||||||
### Table of Contents
|
### Table of Contents
|
||||||
|
|
||||||
- [Signatures](#signatures)
|
- [Signatures](#signatures)
|
||||||
@@ -33,7 +44,7 @@ go mod init github.com/<user>/<repo>
|
|||||||
And then install the badger implementation:
|
And then install the badger implementation:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
go get github.com/gofiber/storage/badger
|
go get github.com/gofiber/storage/badger/v2
|
||||||
```
|
```
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
@@ -41,7 +52,7 @@ go get github.com/gofiber/storage/badger
|
|||||||
Import the storage package.
|
Import the storage package.
|
||||||
|
|
||||||
```go
|
```go
|
||||||
import "github.com/gofiber/storage/badger"
|
import "github.com/gofiber/storage/badger/v2"
|
||||||
```
|
```
|
||||||
|
|
||||||
You can use the following possibilities to create a storage:
|
You can use the following possibilities to create a storage:
|
||||||
|
@@ -4,7 +4,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/dgraph-io/badger/v3"
|
"github.com/dgraph-io/badger/v3"
|
||||||
"github.com/gofiber/utils"
|
"github.com/gofiber/utils/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Storage interface that is implemented by storage providers
|
// Storage interface that is implemented by storage providers
|
||||||
|
@@ -4,10 +4,12 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gofiber/utils"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
var testStore = New()
|
var testStore = New(Config{
|
||||||
|
Reset: true,
|
||||||
|
})
|
||||||
|
|
||||||
func Test_Badger_Set(t *testing.T) {
|
func Test_Badger_Set(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
@@ -16,7 +18,7 @@ func Test_Badger_Set(t *testing.T) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Set_Override(t *testing.T) {
|
func Test_Badger_Set_Override(t *testing.T) {
|
||||||
@@ -26,10 +28,10 @@ func Test_Badger_Set_Override(t *testing.T) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Set(key, val, 0)
|
err = testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Get(t *testing.T) {
|
func Test_Badger_Get(t *testing.T) {
|
||||||
@@ -39,11 +41,11 @@ func Test_Badger_Get(t *testing.T) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get(key)
|
result, err := testStore.Get(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, val, result)
|
require.Equal(t, val, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Set_Expiration(t *testing.T) {
|
func Test_Badger_Set_Expiration(t *testing.T) {
|
||||||
@@ -54,26 +56,23 @@ func Test_Badger_Set_Expiration(t *testing.T) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, exp)
|
err := testStore.Set(key, val, exp)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
time.Sleep(1100 * time.Millisecond)
|
time.Sleep(1100 * time.Millisecond)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Get_Expired(t *testing.T) {
|
func Test_Badger_Get_Expired(t *testing.T) {
|
||||||
var (
|
key := "john"
|
||||||
key = "john"
|
|
||||||
)
|
|
||||||
|
|
||||||
result, err := testStore.Get(key)
|
result, err := testStore.Get(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Get_NotExist(t *testing.T) {
|
func Test_Badger_Get_NotExist(t *testing.T) {
|
||||||
|
|
||||||
result, err := testStore.Get("notexist")
|
result, err := testStore.Get("notexist")
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Delete(t *testing.T) {
|
func Test_Badger_Delete(t *testing.T) {
|
||||||
@@ -83,43 +82,80 @@ func Test_Badger_Delete(t *testing.T) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
err := testStore.Set(key, val, 0)
|
err := testStore.Set(key, val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Delete(key)
|
err = testStore.Delete(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get(key)
|
result, err := testStore.Get(key)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Reset(t *testing.T) {
|
func Test_Badger_Reset(t *testing.T) {
|
||||||
var (
|
val := []byte("doe")
|
||||||
val = []byte("doe")
|
|
||||||
)
|
|
||||||
|
|
||||||
err := testStore.Set("john1", val, 0)
|
err := testStore.Set("john1", val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Set("john2", val, 0)
|
err = testStore.Set("john2", val, 0)
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
err = testStore.Reset()
|
err = testStore.Reset()
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
result, err := testStore.Get("john1")
|
result, err := testStore.Get("john1")
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
|
|
||||||
result, err = testStore.Get("john2")
|
result, err = testStore.Get("john2")
|
||||||
utils.AssertEqual(t, nil, err)
|
require.NoError(t, err)
|
||||||
utils.AssertEqual(t, true, len(result) == 0)
|
require.Zero(t, len(result))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Close(t *testing.T) {
|
func Test_Badger_Close(t *testing.T) {
|
||||||
utils.AssertEqual(t, nil, testStore.Close())
|
require.Nil(t, testStore.Close())
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Conn(t *testing.T) {
|
func Test_Badger_Conn(t *testing.T) {
|
||||||
utils.AssertEqual(t, true, testStore.Conn() != nil)
|
require.True(t, testStore.Conn() != nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Benchmark_Badger_Set(b *testing.B) {
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
err = testStore.Set("john", []byte("doe"), 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_Badger_Get(b *testing.B) {
|
||||||
|
err := testStore.Set("john", []byte("doe"), 0)
|
||||||
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
_, err = testStore.Get("john")
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_Badger_SetAndDelete(b *testing.B) {
|
||||||
|
b.ReportAllocs()
|
||||||
|
b.ResetTimer()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
_ = testStore.Set("john", []byte("doe"), 0)
|
||||||
|
err = testStore.Delete("john")
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(b, err)
|
||||||
|
}
|
||||||
|
@@ -1,8 +1,9 @@
|
|||||||
package badger
|
package badger
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/dgraph-io/badger/v3"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/dgraph-io/badger/v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config defines the config for storage.
|
// Config defines the config for storage.
|
||||||
|
@@ -1,14 +1,15 @@
|
|||||||
package badger
|
package badger
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/dgraph-io/badger/v3"
|
|
||||||
"github.com/gofiber/utils"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/dgraph-io/badger/v3"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func assertRecoveryPanic(t *testing.T) {
|
func assertRecoveryPanic(t *testing.T) {
|
||||||
err := recover()
|
err := recover()
|
||||||
utils.AssertEqual(t, nil, err)
|
require.Nil(t, nil, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Only_Name(t *testing.T) {
|
func Test_Badger_Only_Name(t *testing.T) {
|
||||||
@@ -17,7 +18,7 @@ func Test_Badger_Only_Name(t *testing.T) {
|
|||||||
Database: "fiber.config.badger",
|
Database: "fiber.config.badger",
|
||||||
UseLogger: false,
|
UseLogger: false,
|
||||||
})
|
})
|
||||||
utils.AssertEqual(t, nil, testDB.Close())
|
require.Nil(t, testDB.Close())
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Badger_Options(t *testing.T) {
|
func Test_Badger_Options(t *testing.T) {
|
||||||
@@ -26,11 +27,11 @@ func Test_Badger_Options(t *testing.T) {
|
|||||||
BadgerOptions: badger.DefaultOptions("fiber.with_options.badger"),
|
BadgerOptions: badger.DefaultOptions("fiber.with_options.badger"),
|
||||||
UseLogger: false,
|
UseLogger: false,
|
||||||
})
|
})
|
||||||
utils.AssertEqual(t, nil, testDB.Close())
|
require.Nil(t, testDB.Close())
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_Empty_Config(t *testing.T) {
|
func Test_Empty_Config(t *testing.T) {
|
||||||
defer assertRecoveryPanic(t)
|
defer assertRecoveryPanic(t)
|
||||||
testDB := New(Config{})
|
testDB := New(Config{})
|
||||||
utils.AssertEqual(t, nil, testDB.Close())
|
require.Nil(t, testDB.Close())
|
||||||
}
|
}
|
||||||
|
@@ -1,27 +1,32 @@
|
|||||||
module github.com/gofiber/storage/badger
|
module github.com/gofiber/storage/badger/v2
|
||||||
|
|
||||||
go 1.18
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/dgraph-io/badger/v3 v3.2103.5
|
github.com/dgraph-io/badger/v3 v3.2103.5
|
||||||
github.com/gofiber/utils v1.0.1
|
github.com/gofiber/utils/v2 v2.0.0-beta.3
|
||||||
|
github.com/stretchr/testify v1.9.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cespare/xxhash v1.1.0 // indirect
|
github.com/cespare/xxhash v1.1.0 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||||
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/dgraph-io/ristretto v0.1.1 // indirect
|
github.com/dgraph-io/ristretto v0.1.1 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang/glog v1.0.0 // indirect
|
github.com/golang/glog v1.1.2 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
github.com/golang/protobuf v1.5.3 // indirect
|
||||||
github.com/golang/snappy v0.0.4 // indirect
|
github.com/golang/snappy v0.0.4 // indirect
|
||||||
github.com/google/flatbuffers v22.10.26+incompatible // indirect
|
github.com/google/flatbuffers v23.5.26+incompatible // indirect
|
||||||
github.com/klauspost/compress v1.15.12 // indirect
|
github.com/google/uuid v1.3.1 // indirect
|
||||||
|
github.com/klauspost/compress v1.16.7 // indirect
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
go.opencensus.io v0.24.0 // indirect
|
go.opencensus.io v0.24.0 // indirect
|
||||||
golang.org/x/net v0.7.0 // indirect
|
golang.org/x/net v0.25.0 // indirect
|
||||||
golang.org/x/sys v0.5.0 // indirect
|
golang.org/x/sys v0.20.0 // indirect
|
||||||
google.golang.org/protobuf v1.28.1 // indirect
|
google.golang.org/protobuf v1.33.0 // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
@@ -7,8 +7,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA
|
|||||||
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
||||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||||
@@ -24,20 +24,21 @@ github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWa
|
|||||||
github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA=
|
github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA=
|
||||||
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA=
|
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA=
|
||||||
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
|
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
|
||||||
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
|
||||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
|
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||||
|
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio=
|
github.com/gofiber/utils/v2 v2.0.0-beta.3 h1:pfOhUDDVjBJpkWv6C5jaDyYLvpui7zQ97zpyFFsUOKw=
|
||||||
github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc=
|
github.com/gofiber/utils/v2 v2.0.0-beta.3/go.mod h1:jsl17+MsKfwJjM3ONCE9Rzji/j8XNbwjhUVTjzgfDCo=
|
||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=
|
github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
|
||||||
github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
|
github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
|
||||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
|
||||||
@@ -54,14 +55,14 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq
|
|||||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||||
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
||||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
|
github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
|
||||||
github.com/google/flatbuffers v22.10.26+incompatible h1:z1QiaMyPu1x3Z6xf2u1dsLj1ZxicdGSeaLpCuIsQNZM=
|
github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg=
|
||||||
github.com/google/flatbuffers v22.10.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
|
github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
@@ -72,15 +73,19 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
|||||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
|
||||||
|
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
|
github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
|
||||||
github.com/klauspost/compress v1.15.12 h1:YClS/PImqYbn+UILDnqxQCZ3RehC9N318SU3kElDUEM=
|
github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
|
||||||
github.com/klauspost/compress v1.15.12/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
|
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||||
|
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||||
@@ -108,8 +113,9 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
|
|||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
|
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||||
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
||||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
@@ -136,8 +142,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
|
|||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
|
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
|
||||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
@@ -152,8 +158,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
|
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
|
||||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
@@ -192,9 +198,10 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
|
|||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
||||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
@@ -1,6 +1,17 @@
|
|||||||
# Bbolt
|
---
|
||||||
|
id: bbolt
|
||||||
|
title: Bbolt
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
|
[](https://gofiber.io/discord)
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
A Bbolt storage driver using [etcd-io/bbolt](https://github.com/etcd-io/bbolt). Bolt is a pure Go key/value store inspired by [Howard Chu's](https://twitter.com/hyc_symas) [LMDB project](https://www.symas.com/symas-embedded-database-lmdb). The goal of the project is to provide a simple, fast, and reliable database for projects that don't require a full database server such as Postgres or MySQL.
|
A Bbolt storage driver using [etcd-io/bbolt](https://github.com/etcd-io/bbolt). Bolt is a pure Go key/value store inspired by [Howard Chu's](https://twitter.com/hyc_symas) [LMDB project](https://www.symas.com/symas-embedded-database-lmdb). The goal of the project is to provide a simple, fast, and reliable database for projects that don't require a full database server such as Postgres or MySQL.
|
||||||
|
|
||||||
|
**Note: Requires Go 1.19 and above**
|
||||||
|
|
||||||
### Table of Contents
|
### Table of Contents
|
||||||
- [Signatures](#signatures)
|
- [Signatures](#signatures)
|
||||||
@@ -26,13 +37,13 @@ go mod init github.com/<user>/<repo>
|
|||||||
```
|
```
|
||||||
And then install the s3 implementation:
|
And then install the s3 implementation:
|
||||||
```bash
|
```bash
|
||||||
go get github.com/gofiber/storage/bbolt
|
go get github.com/gofiber/storage/bbolt/v2
|
||||||
```
|
```
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
Import the storage package.
|
Import the storage package.
|
||||||
```go
|
```go
|
||||||
import "github.com/gofiber/storage/bbolt"
|
import "github.com/gofiber/storage/bbolt/v2"
|
||||||
```
|
```
|
||||||
|
|
||||||
You can use the following possibilities to create a storage:
|
You can use the following possibilities to create a storage:
|
||||||
|
@@ -3,7 +3,7 @@ package bbolt
|
|||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gofiber/utils"
|
"github.com/gofiber/utils/v2"
|
||||||
"go.etcd.io/bbolt"
|
"go.etcd.io/bbolt"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ func New(config ...Config) *Storage {
|
|||||||
// Set default config
|
// Set default config
|
||||||
cfg := configDefault(config...)
|
cfg := configDefault(config...)
|
||||||
|
|
||||||
conn, err := bbolt.Open(cfg.Database, 0666, &bbolt.Options{
|
conn, err := bbolt.Open(cfg.Database, 0o666, &bbolt.Options{
|
||||||
Timeout: cfg.Timeout,
|
Timeout: cfg.Timeout,
|
||||||
ReadOnly: cfg.ReadOnly,
|
ReadOnly: cfg.ReadOnly,
|
||||||
})
|
})
|
||||||
@@ -42,7 +42,6 @@ func New(config ...Config) *Storage {
|
|||||||
conn: conn,
|
conn: conn,
|
||||||
bucket: cfg.Bucket,
|
bucket: cfg.Bucket,
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get value by key
|
// Get value by key
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user