Compare commits

...

36 Commits

Author SHA1 Message Date
981c347acf Bump version 2020-09-12 14:14:12 +02:00
22aad6ed77 Fix breaking changes 2020-09-12 14:13:19 +02:00
b06bbbba8f Upgrade actix-web to 3.0.0 2020-09-12 14:01:59 +02:00
e06e6736c0 Merge pull request #170 from vbrandl/dependabot/cargo/reqwest-0.10.8
Bump reqwest from 0.10.6 to 0.10.8
2020-09-11 19:48:23 +02:00
0abfba8b4f Bump reqwest from 0.10.6 to 0.10.8
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.10.6 to 0.10.8.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.10.6...v0.10.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-11 17:40:12 +00:00
ca87bf9282 Merge pull request #172 from vbrandl/dependabot/cargo/git2-0.13.11
Bump git2 from 0.13.5 to 0.13.11
2020-09-11 19:39:02 +02:00
4f37b101ae Merge pull request #169 from vbrandl/dependabot/cargo/structopt-0.3.17
Bump structopt from 0.3.15 to 0.3.17
2020-09-11 19:38:52 +02:00
e16f02d729 Merge pull request #166 from vbrandl/dependabot/cargo/serde-1.0.115
Bump serde from 1.0.114 to 1.0.115
2020-09-11 19:38:35 +02:00
1256996d19 Bump structopt from 0.3.15 to 0.3.17
Bumps [structopt](https://github.com/TeXitoi/structopt) from 0.3.15 to 0.3.17.
- [Release notes](https://github.com/TeXitoi/structopt/releases)
- [Changelog](https://github.com/TeXitoi/structopt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TeXitoi/structopt/compare/v0.3.15...v0.3.17)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-11 17:21:11 +00:00
c1d1551283 Bump git2 from 0.13.5 to 0.13.11
Bumps [git2](https://github.com/rust-lang/git2-rs) from 0.13.5 to 0.13.11.
- [Release notes](https://github.com/rust-lang/git2-rs/releases)
- [Commits](https://github.com/rust-lang/git2-rs/compare/0.13.5...0.13.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-11 17:21:09 +00:00
26bdb3dbb5 Bump serde from 1.0.114 to 1.0.115
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.114 to 1.0.115.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.114...v1.0.115)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-11 17:20:46 +00:00
c9d959d4c5 Merge pull request #167 from vbrandl/dependabot/cargo/ructe-0.12.0
Bump ructe from 0.11.4 to 0.12.0
2020-09-11 19:19:51 +02:00
15ca2f10b8 Merge pull request #164 from vbrandl/dependabot/cargo/serde_json-1.0.57
Bump serde_json from 1.0.56 to 1.0.57
2020-09-11 19:19:40 +02:00
2a81fbe9f2 Merge pull request #161 from vbrandl/dependabot/cargo/log4rs-0.13.0
Bump log4rs from 0.12.0 to 0.13.0
2020-09-11 19:19:21 +02:00
fe276458db Merge pull request #162 from vbrandl/dependabot/cargo/badge-0.3.0
Bump badge from 0.2.0 to 0.3.0
2020-09-11 19:16:54 +02:00
73d034ff00 Bump ructe from 0.11.4 to 0.12.0
Bumps [ructe](https://github.com/kaj/ructe) from 0.11.4 to 0.12.0.
- [Release notes](https://github.com/kaj/ructe/releases)
- [Commits](https://github.com/kaj/ructe/compare/v0.11.4...v0.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-17 04:17:07 +00:00
63e6a3d2db Bump serde_json from 1.0.56 to 1.0.57
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.56 to 1.0.57.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.56...v1.0.57)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-27 04:17:23 +00:00
fbb5bbd20e Bump badge from 0.2.0 to 0.3.0
Bumps [badge](https://github.com/rust-lang/docs.rs) from 0.2.0 to 0.3.0.
- [Release notes](https://github.com/rust-lang/docs.rs/releases)
- [Commits](https://github.com/rust-lang/docs.rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-27 04:16:38 +00:00
7ff238fea6 Bump log4rs from 0.12.0 to 0.13.0
Bumps [log4rs](https://github.com/estk/log4rs) from 0.12.0 to 0.13.0.
- [Release notes](https://github.com/estk/log4rs/releases)
- [Changelog](https://github.com/estk/log4rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/estk/log4rs/compare/v0.12.0...v0.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-23 04:19:01 +00:00
06e9926cb5 Bump version number
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-20 20:18:05 +02:00
c9a54eda49 Allow requesting badges for branches != master
This changed the cache structure to allow caching data for multiple
branches. The service still assumes a default branch named `master` but
using the `branch` get parameter, the default branch can be changed.

The 404 page for the missing `master` branch was changed to explain the
new parameter.
2020-07-20 20:14:22 +02:00
382cd73bae Merge pull request #146 from vbrandl/dependabot/cargo/reqwest-0.10.6
Bump reqwest from 0.10.4 to 0.10.6
2020-07-17 14:26:31 +02:00
8e5270a1d8 Bump reqwest from 0.10.4 to 0.10.6
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.10.4 to 0.10.6.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.10.4...v0.10.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-17 11:13:46 +00:00
fdf3fda24a Merge pull request #151 from vbrandl/dependabot/cargo/structopt-0.3.15
Bump structopt from 0.3.14 to 0.3.15
2020-07-17 13:12:29 +02:00
219099779b Merge pull request #153 from vbrandl/dependabot/cargo/serde-1.0.114
Bump serde from 1.0.110 to 1.0.114
2020-07-17 13:12:10 +02:00
7393ba54f1 Bump structopt from 0.3.14 to 0.3.15
Bumps [structopt](https://github.com/TeXitoi/structopt) from 0.3.14 to 0.3.15.
- [Release notes](https://github.com/TeXitoi/structopt/releases)
- [Changelog](https://github.com/TeXitoi/structopt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TeXitoi/structopt/compare/v0.3.14...v0.3.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-16 19:17:00 +00:00
c14cf28a3e Bump serde from 1.0.110 to 1.0.114
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.110 to 1.0.114.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.110...v1.0.114)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-16 19:16:22 +00:00
68a0604365 Merge pull request #154 from vbrandl/dependabot/cargo/serde_json-1.0.56
Bump serde_json from 1.0.53 to 1.0.56
2020-07-16 21:15:26 +02:00
8dc07554f6 Merge pull request #157 from vbrandl/dependabot/cargo/bytes-0.5.6
Bump bytes from 0.5.4 to 0.5.6
2020-07-16 21:15:04 +02:00
64bb6c2922 Merge pull request #158 from vbrandl/dependabot/cargo/log-0.4.11
Bump log from 0.4.8 to 0.4.11
2020-07-16 21:14:42 +02:00
4be0cdeb5f Bump log from 0.4.8 to 0.4.11
Bumps [log](https://github.com/rust-lang/log) from 0.4.8 to 0.4.11.
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.8...0.4.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-16 04:17:29 +00:00
0c9da804bb Bump bytes from 0.5.4 to 0.5.6
Bumps [bytes](https://github.com/tokio-rs/bytes) from 0.5.4 to 0.5.6.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v0.5.4...v0.5.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 04:19:23 +00:00
f95a2a7923 Bump serde_json from 1.0.53 to 1.0.56
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.53 to 1.0.56.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.53...v1.0.56)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-30 04:15:29 +00:00
8eff7db8ae Document deletion feature
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-15 14:03:17 +02:00
57df8ab209 Update dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-15 13:58:57 +02:00
ffea4f21ef Update nixpkgs channel 2020-05-15 13:58:45 +02:00
13 changed files with 800 additions and 473 deletions

655
Cargo.lock generated

File diff suppressed because it is too large Load Diff

387
Cargo.nix
View File

@ -27,7 +27,7 @@ in
{
cargo2nixVersion = "0.8.2";
workspace = {
hoc = rustPackages.unknown.hoc."0.11.8";
hoc = rustPackages.unknown.hoc."0.12.0";
};
"registry+https://github.com/rust-lang/crates.io-index".actix-codec."0.2.0" = overridableMkRustCrate (profileName: rec {
name = "actix-codec";
@ -37,8 +37,8 @@ in
dependencies = {
bitflags = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."1.2.1" { inherit profileName; };
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.5" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
tokio = rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."0.2.11" { inherit profileName; };
tokio_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio-util."0.2.0" { inherit profileName; };
@ -57,12 +57,12 @@ in
];
dependencies = {
actix_codec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-codec."0.2.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_service = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-service."1.0.5" { inherit profileName; };
actix_utils = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-utils."1.0.6" { inherit profileName; };
derive_more = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_more."0.99.2" { profileName = "__noProfile"; };
either = rustPackages."registry+https://github.com/rust-lang/crates.io-index".either."1.5.3" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
http = rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."0.2.0" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
trust_dns_proto = rustPackages."registry+https://github.com/rust-lang/crates.io-index".trust-dns-proto."0.18.0-alpha.2" { inherit profileName; };
@ -86,7 +86,7 @@ in
dependencies = {
actix_codec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-codec."0.2.0" { inherit profileName; };
actix_connect = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-connect."1.0.2" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_service = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-service."1.0.5" { inherit profileName; };
actix_threadpool = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-threadpool."0.3.1" { inherit profileName; };
actix_utils = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-utils."1.0.6" { inherit profileName; };
@ -101,9 +101,9 @@ in
encoding_rs = rustPackages."registry+https://github.com/rust-lang/crates.io-index".encoding_rs."0.8.22" { inherit profileName; };
fail_ure = rustPackages."registry+https://github.com/rust-lang/crates.io-index".failure."0.1.6" { inherit profileName; };
flate2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".flate2."1.0.13" { inherit profileName; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.4" { inherit profileName; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.5" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" { inherit profileName; };
fxhash = rustPackages."registry+https://github.com/rust-lang/crates.io-index".fxhash."0.2.1" { inherit profileName; };
h2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".h2."0.2.4" { inherit profileName; };
http = rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."0.2.0" { inherit profileName; };
@ -117,8 +117,8 @@ in
pin_project = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project."0.4.8" { inherit profileName; };
rand = rustPackages."registry+https://github.com/rust-lang/crates.io-index".rand."0.7.3" { inherit profileName; };
regex = rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex."1.3.4" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.50" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.53" { inherit profileName; };
serde_urlencoded = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_urlencoded."0.6.1" { inherit profileName; };
sha1 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".sha1."0.6.0" { inherit profileName; };
slab = rustPackages."registry+https://github.com/rust-lang/crates.io-index".slab."0.4.2" { inherit profileName; };
@ -151,20 +151,22 @@ in
http = rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."0.2.0" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
regex = rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex."1.3.4" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" = overridableMkRustCrate (profileName: rec {
name = "actix-rt";
version = "1.0.0";
version = "1.1.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "3f6a0a55507046441a496b2f0d26a84a65e67c8cafffe279072412f624b5fb6d"; };
src = fetchCratesIo { inherit name version; sha256 = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227"; };
dependencies = {
actix_macros = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-macros."0.1.1" { profileName = "__noProfile"; };
actix_threadpool = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-threadpool."0.3.1" { inherit profileName; };
copyless = rustPackages."registry+https://github.com/rust-lang/crates.io-index".copyless."0.1.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.5" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" { inherit profileName; };
smallvec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.2.0" { inherit profileName; };
tokio = rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."0.2.11" { inherit profileName; };
};
});
@ -179,10 +181,10 @@ in
];
dependencies = {
actix_codec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-codec."0.2.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_service = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-service."1.0.5" { inherit profileName; };
actix_utils = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-utils."1.0.6" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
mio = rustPackages."registry+https://github.com/rust-lang/crates.io-index".mio."0.6.21" { inherit profileName; };
mio_uds = rustPackages."registry+https://github.com/rust-lang/crates.io-index".mio-uds."0.6.7" { inherit profileName; };
@ -198,7 +200,7 @@ in
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "d3e4fc95dfa7e24171b2d0bb46b85f8ab0e8499e4e3caec691fc4ea65c287564"; };
dependencies = {
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.4" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" { inherit profileName; };
pin_project = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project."0.4.8" { inherit profileName; };
};
});
@ -210,10 +212,10 @@ in
src = fetchCratesIo { inherit name version; sha256 = "48494745b72d0ea8ff0cf874aaf9b622a3ee03d7081ee0c04edea4f26d32c911"; };
dependencies = {
actix_macros = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-macros."0.1.1" { profileName = "__noProfile"; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_server = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-server."1.0.1" { inherit profileName; };
actix_service = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-service."1.0.5" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
net2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".net2."0.2.33" { inherit profileName; };
};
@ -226,7 +228,7 @@ in
src = fetchCratesIo { inherit name version; sha256 = "cf4082192601de5f303013709ff84d81ca6a1bc4af7fb24f367a500a23c6e84e"; };
dependencies = {
derive_more = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_more."0.99.2" { profileName = "__noProfile"; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.4" { inherit profileName; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.5" { inherit profileName; };
lazy_static = rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.4.0" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
num_cpus = rustPackages."registry+https://github.com/rust-lang/crates.io-index".num_cpus."1.12.0" { inherit profileName; };
@ -245,12 +247,12 @@ in
];
dependencies = {
actix_codec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-codec."0.2.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_service = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-service."1.0.5" { inherit profileName; };
actix_utils = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-utils."1.0.6" { inherit profileName; };
derive_more = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_more."0.99.2" { profileName = "__noProfile"; };
either = rustPackages."registry+https://github.com/rust-lang/crates.io-index".either."1.5.3" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
};
});
@ -262,12 +264,12 @@ in
src = fetchCratesIo { inherit name version; sha256 = "fcf8f5631bf01adec2267808f00e228b761c60c0584cc9fa0b5364f41d147f4e"; };
dependencies = {
actix_codec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-codec."0.2.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_service = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-service."1.0.5" { inherit profileName; };
bitflags = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."1.2.1" { inherit profileName; };
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
either = rustPackages."registry+https://github.com/rust-lang/crates.io-index".either."1.5.3" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
pin_project = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project."0.4.8" { inherit profileName; };
slab = rustPackages."registry+https://github.com/rust-lang/crates.io-index".slab."0.4.2" { inherit profileName; };
@ -289,7 +291,7 @@ in
actix_http = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-http."1.0.1" { inherit profileName; };
actix_macros = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-macros."0.1.1" { profileName = "__noProfile"; };
actix_router = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-router."0.2.4" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_server = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-server."1.0.1" { inherit profileName; };
actix_service = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-service."1.0.5" { inherit profileName; };
actix_testing = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-testing."1.0.0" { inherit profileName; };
@ -301,15 +303,15 @@ in
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
derive_more = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_more."0.99.2" { profileName = "__noProfile"; };
encoding_rs = rustPackages."registry+https://github.com/rust-lang/crates.io-index".encoding_rs."0.8.22" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
fxhash = rustPackages."registry+https://github.com/rust-lang/crates.io-index".fxhash."0.2.1" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
mime = rustPackages."registry+https://github.com/rust-lang/crates.io-index".mime."0.3.16" { inherit profileName; };
net2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".net2."0.2.33" { inherit profileName; };
pin_project = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project."0.4.8" { inherit profileName; };
regex = rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex."1.3.4" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.50" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.53" { inherit profileName; };
serde_urlencoded = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_urlencoded."0.6.1" { inherit profileName; };
time = rustPackages."registry+https://github.com/rust-lang/crates.io-index".time."0.1.42" { inherit profileName; };
url = rustPackages."registry+https://github.com/rust-lang/crates.io-index".url."2.1.1" { inherit profileName; };
@ -434,18 +436,18 @@ in
dependencies = {
actix_codec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-codec."0.2.0" { inherit profileName; };
actix_http = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-http."1.0.1" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_service = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-service."1.0.5" { inherit profileName; };
base64 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".base64."0.11.0" { inherit profileName; };
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
derive_more = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_more."0.99.2" { profileName = "__noProfile"; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
mime = rustPackages."registry+https://github.com/rust-lang/crates.io-index".mime."0.3.16" { inherit profileName; };
percent_encoding = rustPackages."registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.1.0" { inherit profileName; };
rand = rustPackages."registry+https://github.com/rust-lang/crates.io-index".rand."0.7.3" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.50" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.53" { inherit profileName; };
serde_urlencoded = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_urlencoded."0.6.1" { inherit profileName; };
};
});
@ -518,6 +520,17 @@ in
];
});
"registry+https://github.com/rust-lang/crates.io-index".base64."0.12.0" = overridableMkRustCrate (profileName: rec {
name = "base64";
version = "0.12.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3"; };
features = builtins.concatLists [
[ "default" ]
[ "std" ]
];
});
"registry+https://github.com/rust-lang/crates.io-index".bitflags."1.2.1" = overridableMkRustCrate (profileName: rec {
name = "bitflags";
version = "1.2.1";
@ -899,11 +912,11 @@ in
src = fetchCratesIo { inherit name version; sha256 = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"; };
});
"registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "5c329ae8753502fb44ae4fc2b622fa2a94652c41e795143765ba0927f92ab780"; };
src = fetchCratesIo { inherit name version; sha256 = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"; };
features = builtins.concatLists [
[ "alloc" ]
[ "async-await" ]
@ -913,21 +926,21 @@ in
[ "std" ]
];
dependencies = {
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_executor = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-executor."0.3.4" { inherit profileName; };
futures_io = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.4" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.4" { inherit profileName; };
futures_task = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.4" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.4" { inherit profileName; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.5" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_executor = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-executor."0.3.5" { inherit profileName; };
futures_io = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.5" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.5" { inherit profileName; };
futures_task = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.5" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" { inherit profileName; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures-channel";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8"; };
src = fetchCratesIo { inherit name version; sha256 = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"; };
features = builtins.concatLists [
[ "alloc" ]
[ "default" ]
@ -936,16 +949,16 @@ in
[ "std" ]
];
dependencies = {
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.5" { inherit profileName; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures-core";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a"; };
src = fetchCratesIo { inherit name version; sha256 = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"; };
features = builtins.concatLists [
[ "alloc" ]
[ "default" ]
@ -953,36 +966,36 @@ in
];
});
"registry+https://github.com/rust-lang/crates.io-index".futures-executor."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures-executor."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures-executor";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba"; };
src = fetchCratesIo { inherit name version; sha256 = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"; };
features = builtins.concatLists [
[ "std" ]
];
dependencies = {
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_task = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.4" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_task = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.5" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" { inherit profileName; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures-io";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6"; };
src = fetchCratesIo { inherit name version; sha256 = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"; };
features = builtins.concatLists [
[ "std" ]
];
});
"registry+https://github.com/rust-lang/crates.io-index".futures-macro."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures-macro."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures-macro";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7"; };
src = fetchCratesIo { inherit name version; sha256 = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"; };
dependencies = {
proc_macro_hack = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-hack."0.5.11" { profileName = "__noProfile"; };
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.8" { inherit profileName; };
@ -991,11 +1004,11 @@ in
};
});
"registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures-sink";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6"; };
src = fetchCratesIo { inherit name version; sha256 = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"; };
features = builtins.concatLists [
[ "alloc" ]
[ "default" ]
@ -1003,22 +1016,26 @@ in
];
});
"registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures-task";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27"; };
src = fetchCratesIo { inherit name version; sha256 = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"; };
features = builtins.concatLists [
[ "alloc" ]
[ "once_cell" ]
[ "std" ]
];
dependencies = {
once_cell = rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.3.1" { inherit profileName; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "futures-util";
version = "0.3.4";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5"; };
src = fetchCratesIo { inherit name version; sha256 = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"; };
features = builtins.concatLists [
[ "alloc" ]
[ "async-await" ]
@ -1038,14 +1055,15 @@ in
[ "std" ]
];
dependencies = {
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_io = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.4" { inherit profileName; };
futures_macro = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-macro."0.3.4" { profileName = "__noProfile"; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.4" { inherit profileName; };
futures_task = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.4" { inherit profileName; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.5" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_io = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-io."0.3.5" { inherit profileName; };
futures_macro = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-macro."0.3.5" { profileName = "__noProfile"; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.5" { inherit profileName; };
futures_task = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-task."0.3.5" { inherit profileName; };
memchr = rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.3.0" { inherit profileName; };
pin_utils = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-utils."0.1.0-alpha.4" { inherit profileName; };
pin_project = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project."0.4.8" { inherit profileName; };
pin_utils = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-utils."0.1.0" { inherit profileName; };
proc_macro_hack = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-hack."0.5.11" { profileName = "__noProfile"; };
proc_macro_nested = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-nested."0.1.3" { inherit profileName; };
slab = rustPackages."registry+https://github.com/rust-lang/crates.io-index".slab."0.4.2" { inherit profileName; };
@ -1077,11 +1095,11 @@ in
};
});
"registry+https://github.com/rust-lang/crates.io-index".git2."0.13.1" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".git2."0.13.5" = overridableMkRustCrate (profileName: rec {
name = "git2";
version = "0.13.1";
version = "0.13.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "ef222034f2069cfc5af01ce423574d3d9a3925bd4052912a14e5bcfd7ca9e47a"; };
src = fetchCratesIo { inherit name version; sha256 = "e1e02a51cd90229028c9bd8be0a0364f85b6b3199cccaa0ef39005ddbd5ac165"; };
features = builtins.concatLists [
[ "default" ]
[ "https" ]
@ -1093,7 +1111,7 @@ in
dependencies = {
bitflags = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."1.2.1" { inherit profileName; };
libc = rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.66" { inherit profileName; };
libgit2_sys = rustPackages."registry+https://github.com/rust-lang/crates.io-index".libgit2-sys."0.12.2+1.0.0" { inherit profileName; };
libgit2_sys = rustPackages."registry+https://github.com/rust-lang/crates.io-index".libgit2-sys."0.12.5+1.0.0" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
${ if hostPlatform.isUnix && !(hostPlatform.parsed.kernel.name == "darwin") then "openssl_probe" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".openssl-probe."0.1.2" { inherit profileName; };
${ if hostPlatform.isUnix && !(hostPlatform.parsed.kernel.name == "darwin") then "openssl_sys" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".openssl-sys."0.9.54" { inherit profileName; };
@ -1109,9 +1127,9 @@ in
dependencies = {
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
fnv = rustPackages."registry+https://github.com/rust-lang/crates.io-index".fnv."1.0.6" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.4" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.5" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" { inherit profileName; };
http = rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."0.2.0" { inherit profileName; };
indexmap = rustPackages."registry+https://github.com/rust-lang/crates.io-index".indexmap."1.3.2" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
@ -1144,31 +1162,34 @@ in
};
});
"unknown".hoc."0.11.8" = overridableMkRustCrate (profileName: rec {
"unknown".hoc."0.12.0" = overridableMkRustCrate (profileName: rec {
name = "hoc";
version = "0.11.8";
version = "0.12.0";
registry = "unknown";
src = fetchCrateLocal ./.;
dependencies = {
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.0.0" { inherit profileName; };
actix_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-rt."1.1.1" { inherit profileName; };
actix_web = rustPackages."registry+https://github.com/rust-lang/crates.io-index".actix-web."2.0.0" { inherit profileName; };
badge = rustPackages."registry+https://github.com/rust-lang/crates.io-index".badge."0.2.0" { inherit profileName; };
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
git2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".git2."0.13.1" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
git2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".git2."0.13.5" { inherit profileName; };
lazy_static = rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.4.0" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
log4rs = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log4rs."0.11.0" { inherit profileName; };
number_prefix = rustPackages."registry+https://github.com/rust-lang/crates.io-index".number_prefix."0.3.0" { inherit profileName; };
log4rs = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log4rs."0.12.0" { inherit profileName; };
number_prefix = rustPackages."registry+https://github.com/rust-lang/crates.io-index".number_prefix."0.4.0" { inherit profileName; };
openssl_probe = rustPackages."registry+https://github.com/rust-lang/crates.io-index".openssl-probe."0.1.2" { inherit profileName; };
reqwest = rustPackages."registry+https://github.com/rust-lang/crates.io-index".reqwest."0.10.4" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.105" { profileName = "__noProfile"; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.50" { inherit profileName; };
structopt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".structopt."0.3.12" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
serde_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.110" { profileName = "__noProfile"; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.53" { inherit profileName; };
structopt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".structopt."0.3.14" { inherit profileName; };
};
devDependencies = {
tempfile = rustPackages."registry+https://github.com/rust-lang/crates.io-index".tempfile."3.1.0" { inherit profileName; };
};
buildDependencies = {
ructe = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".ructe."0.9.2" { profileName = "__noProfile"; };
ructe = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".ructe."0.11.4" { profileName = "__noProfile"; };
vergen = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen."3.1.0" { profileName = "__noProfile"; };
};
});
@ -1239,9 +1260,9 @@ in
];
dependencies = {
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.4" { inherit profileName; };
futures_channel = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-channel."0.3.5" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_util = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" { inherit profileName; };
h2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".h2."0.2.4" { inherit profileName; };
http = rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."0.2.0" { inherit profileName; };
http_body = rustPackages."registry+https://github.com/rust-lang/crates.io-index".http-body."0.3.1" { inherit profileName; };
@ -1316,11 +1337,11 @@ in
};
});
"registry+https://github.com/rust-lang/crates.io-index".itertools."0.8.2" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".itertools."0.9.0" = overridableMkRustCrate (profileName: rec {
name = "itertools";
version = "0.8.2";
version = "0.9.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"; };
src = fetchCratesIo { inherit name version; sha256 = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"; };
features = builtins.concatLists [
[ "default" ]
[ "use_std" ]
@ -1423,11 +1444,11 @@ in
];
});
"registry+https://github.com/rust-lang/crates.io-index".libgit2-sys."0.12.2+1.0.0" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".libgit2-sys."0.12.5+1.0.0" = overridableMkRustCrate (profileName: rec {
name = "libgit2-sys";
version = "0.12.2+1.0.0";
version = "0.12.5+1.0.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "a12c878ccc1a49ff71e264233a66d2114cdcc7fdc44c0ebe2b54075240831238"; };
src = fetchCratesIo { inherit name version; sha256 = "3eadeec65514971355bf7134967a543f71372f35b53ac6c7143e7bd157f07535"; };
features = builtins.concatLists [
[ "https" ]
[ "libssh2-sys" ]
@ -1507,7 +1528,7 @@ in
];
dependencies = {
cfg_if = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."0.1.10" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
};
});
@ -1518,11 +1539,11 @@ in
src = fetchCratesIo { inherit name version; sha256 = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7"; };
});
"registry+https://github.com/rust-lang/crates.io-index".log4rs."0.11.0" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".log4rs."0.12.0" = overridableMkRustCrate (profileName: rec {
name = "log4rs";
version = "0.11.0";
version = "0.12.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "b47ba5437ccdf01e4addd4d2347ef561911d57f908f4db1e1b192d5c25a92715"; };
src = fetchCratesIo { inherit name version; sha256 = "f4d8e6e1d5f89acca713132acc6034f30bad09b961d1338161bdb71c08f6e4fa"; };
features = builtins.concatLists [
[ "all_components" ]
[ "ansi_writer" ]
@ -1567,10 +1588,10 @@ in
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
log_mdc = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log-mdc."0.1.0" { inherit profileName; };
parking_lot = rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.10.0" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
serde_value = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde-value."0.6.0" { inherit profileName; };
serde_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.105" { profileName = "__noProfile"; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.50" { inherit profileName; };
serde_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.110" { profileName = "__noProfile"; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.53" { inherit profileName; };
serde_yaml = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_yaml."0.8.11" { inherit profileName; };
thread_id = rustPackages."registry+https://github.com/rust-lang/crates.io-index".thread-id."3.3.0" { inherit profileName; };
typemap = rustPackages."registry+https://github.com/rust-lang/crates.io-index".typemap."0.3.3" { inherit profileName; };
@ -1831,17 +1852,27 @@ in
};
});
"registry+https://github.com/rust-lang/crates.io-index".number_prefix."0.3.0" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".number_prefix."0.4.0" = overridableMkRustCrate (profileName: rec {
name = "number_prefix";
version = "0.3.0";
version = "0.4.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a"; };
src = fetchCratesIo { inherit name version; sha256 = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"; };
features = builtins.concatLists [
[ "default" ]
[ "std" ]
];
});
"registry+https://github.com/rust-lang/crates.io-index".once_cell."1.3.1" = overridableMkRustCrate (profileName: rec {
name = "once_cell";
version = "1.3.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b"; };
features = builtins.concatLists [
[ "std" ]
];
});
"registry+https://github.com/rust-lang/crates.io-index".openssl."0.10.28" = overridableMkRustCrate (profileName: rec {
name = "openssl";
version = "0.10.28";
@ -1970,11 +2001,11 @@ in
src = fetchCratesIo { inherit name version; sha256 = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae"; };
});
"registry+https://github.com/rust-lang/crates.io-index".pin-utils."0.1.0-alpha.4" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".pin-utils."0.1.0" = overridableMkRustCrate (profileName: rec {
name = "pin-utils";
version = "0.1.0-alpha.4";
version = "0.1.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587"; };
src = fetchCratesIo { inherit name version; sha256 = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"; };
});
"registry+https://github.com/rust-lang/crates.io-index".pkg-config."0.3.17" = overridableMkRustCrate (profileName: rec {
@ -1995,34 +2026,36 @@ in
];
});
"registry+https://github.com/rust-lang/crates.io-index".proc-macro-error."0.4.8" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".proc-macro-error."1.0.2" = overridableMkRustCrate (profileName: rec {
name = "proc-macro-error";
version = "0.4.8";
version = "1.0.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "875077759af22fa20b610ad4471d8155b321c89c3f2785526c9839b099be4e0a"; };
src = fetchCratesIo { inherit name version; sha256 = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678"; };
dependencies = {
proc_macro_error_attr = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-error-attr."0.4.8" { profileName = "__noProfile"; };
proc_macro_error_attr = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-error-attr."1.0.2" { profileName = "__noProfile"; };
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.8" { inherit profileName; };
quote = rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.2" { inherit profileName; };
syn = rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."1.0.14" { inherit profileName; };
};
buildDependencies = {
rustversion = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.2" { profileName = "__noProfile"; };
version_check = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".version_check."0.9.1" { profileName = "__noProfile"; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".proc-macro-error-attr."0.4.8" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".proc-macro-error-attr."1.0.2" = overridableMkRustCrate (profileName: rec {
name = "proc-macro-error-attr";
version = "0.4.8";
version = "1.0.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "c5717d9fa2664351a01ed73ba5ef6df09c01a521cb42cb65a061432a826f3c7a"; };
src = fetchCratesIo { inherit name version; sha256 = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53"; };
dependencies = {
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.8" { inherit profileName; };
quote = rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.2" { inherit profileName; };
rustversion = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.2" { profileName = "__noProfile"; };
syn = rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."1.0.14" { inherit profileName; };
syn_mid = rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn-mid."0.5.0" { inherit profileName; };
};
buildDependencies = {
version_check = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".version_check."0.9.1" { profileName = "__noProfile"; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".proc-macro-hack."0.5.11" = overridableMkRustCrate (profileName: rec {
@ -2223,8 +2256,8 @@ in
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "base64" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".base64."0.11.0" { inherit profileName; };
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "encoding_rs" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".encoding_rs."0.8.22" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "futures_core" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "futures_util" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.4" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "futures_core" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "futures_util" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-util."0.3.5" { inherit profileName; };
http = rustPackages."registry+https://github.com/rust-lang/crates.io-index".http."0.2.0" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "http_body" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".http-body."0.3.1" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "hyper" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".hyper."0.13.4" { inherit profileName; };
@ -2237,7 +2270,7 @@ in
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "native_tls_crate" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".native-tls."0.2.3" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "percent_encoding" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.1.0" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "pin_project_lite" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.1.4" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "serde_urlencoded" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_urlencoded."0.6.1" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "time" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".time."0.1.42" { inherit profileName; };
${ if !(hostPlatform.parsed.cpu.name == "wasm32") then "tokio" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."0.2.11" { inherit profileName; };
@ -2265,15 +2298,15 @@ in
};
});
"registry+https://github.com/rust-lang/crates.io-index".ructe."0.9.2" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".ructe."0.11.4" = overridableMkRustCrate (profileName: rec {
name = "ructe";
version = "0.9.2";
version = "0.11.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "c85620b8046f88a870d93d90fa56904dec76cc79139bfcc22e71e87f0cd2169f"; };
src = fetchCratesIo { inherit name version; sha256 = "f615d1e172dcc01a7cd78c7f77f21a5669c6de4341548ad2e7764e9045d06657"; };
dependencies = {
base64 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".base64."0.11.0" { inherit profileName; };
base64 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".base64."0.12.0" { inherit profileName; };
bytecount = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytecount."0.6.0" { inherit profileName; };
itertools = rustPackages."registry+https://github.com/rust-lang/crates.io-index".itertools."0.8.2" { inherit profileName; };
itertools = rustPackages."registry+https://github.com/rust-lang/crates.io-index".itertools."0.9.0" { inherit profileName; };
md5 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".md5."0.7.0" { inherit profileName; };
nom = rustPackages."registry+https://github.com/rust-lang/crates.io-index".nom."5.1.0" { inherit profileName; };
};
@ -2308,18 +2341,6 @@ in
};
});
"registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.2" = overridableMkRustCrate (profileName: rec {
name = "rustversion";
version = "1.0.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "b3bba175698996010c4f6dce5e7f173b6eb781fce25d2cfc45e27091ce0b79f6"; };
dependencies = {
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.8" { inherit profileName; };
quote = rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.2" { inherit profileName; };
syn = rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."1.0.14" { inherit profileName; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".ryu."1.0.2" = overridableMkRustCrate (profileName: rec {
name = "ryu";
version = "1.0.2";
@ -2399,11 +2420,11 @@ in
src = fetchCratesIo { inherit name version; sha256 = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"; };
});
"registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" = overridableMkRustCrate (profileName: rec {
name = "serde";
version = "1.0.105";
version = "1.0.110";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "e707fbbf255b8fc8c3b99abb91e7257a622caeb20a9818cbadbeeede4e0932ff"; };
src = fetchCratesIo { inherit name version; sha256 = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c"; };
features = builtins.concatLists [
[ "default" ]
[ "derive" ]
@ -2411,7 +2432,7 @@ in
[ "std" ]
];
dependencies = {
serde_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.105" { profileName = "__noProfile"; };
serde_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.110" { profileName = "__noProfile"; };
};
});
@ -2422,15 +2443,15 @@ in
src = fetchCratesIo { inherit name version; sha256 = "5a65a7291a8a568adcae4c10a677ebcedbc6c9cec91c054dee2ce40b0e3290eb"; };
dependencies = {
ordered_float = rustPackages."registry+https://github.com/rust-lang/crates.io-index".ordered-float."1.0.2" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.105" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.110" = overridableMkRustCrate (profileName: rec {
name = "serde_derive";
version = "1.0.105";
version = "1.0.110";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "ac5d00fc561ba2724df6758a17de23df5914f20e41cb00f94d5b7ae42fffaff8"; };
src = fetchCratesIo { inherit name version; sha256 = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984"; };
features = builtins.concatLists [
[ "default" ]
];
@ -2441,11 +2462,11 @@ in
};
});
"registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.50" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.53" = overridableMkRustCrate (profileName: rec {
name = "serde_json";
version = "1.0.50";
version = "1.0.53";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "78a7a12c167809363ec3bd7329fc0a3369056996de43c4b37ef3cd54a6ce4867"; };
src = fetchCratesIo { inherit name version; sha256 = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2"; };
features = builtins.concatLists [
[ "default" ]
[ "std" ]
@ -2453,7 +2474,7 @@ in
dependencies = {
itoa = rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."0.4.5" { inherit profileName; };
ryu = rustPackages."registry+https://github.com/rust-lang/crates.io-index".ryu."1.0.2" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
};
});
@ -2465,7 +2486,7 @@ in
dependencies = {
dtoa = rustPackages."registry+https://github.com/rust-lang/crates.io-index".dtoa."0.4.5" { inherit profileName; };
itoa = rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."0.4.5" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
url = rustPackages."registry+https://github.com/rust-lang/crates.io-index".url."2.1.1" { inherit profileName; };
};
});
@ -2478,7 +2499,7 @@ in
dependencies = {
dtoa = rustPackages."registry+https://github.com/rust-lang/crates.io-index".dtoa."0.4.5" { inherit profileName; };
linked_hash_map = rustPackages."registry+https://github.com/rust-lang/crates.io-index".linked-hash-map."0.5.2" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
yaml_rust = rustPackages."registry+https://github.com/rust-lang/crates.io-index".yaml-rust."0.4.3" { inherit profileName; };
};
});
@ -2573,29 +2594,29 @@ in
src = fetchCratesIo { inherit name version; sha256 = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"; };
});
"registry+https://github.com/rust-lang/crates.io-index".structopt."0.3.12" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".structopt."0.3.14" = overridableMkRustCrate (profileName: rec {
name = "structopt";
version = "0.3.12";
version = "0.3.14";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "c8faa2719539bbe9d77869bfb15d4ee769f99525e707931452c97b693b3f159d"; };
src = fetchCratesIo { inherit name version; sha256 = "863246aaf5ddd0d6928dfeb1a9ca65f505599e4e1b399935ef7e75107516b4ef"; };
features = builtins.concatLists [
[ "default" ]
];
dependencies = {
clap = rustPackages."registry+https://github.com/rust-lang/crates.io-index".clap."2.33.0" { inherit profileName; };
lazy_static = rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.4.0" { inherit profileName; };
structopt_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".structopt-derive."0.4.5" { profileName = "__noProfile"; };
structopt_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".structopt-derive."0.4.7" { profileName = "__noProfile"; };
};
});
"registry+https://github.com/rust-lang/crates.io-index".structopt-derive."0.4.5" = overridableMkRustCrate (profileName: rec {
"registry+https://github.com/rust-lang/crates.io-index".structopt-derive."0.4.7" = overridableMkRustCrate (profileName: rec {
name = "structopt-derive";
version = "0.4.5";
version = "0.4.7";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "3f88b8e18c69496aad6f9ddf4630dd7d585bcaf765786cb415b9aec2fe5a0430"; };
src = fetchCratesIo { inherit name version; sha256 = "d239ca4b13aee7a2142e6795cbd69e457665ff8037aed33b3effdc430d2f927a"; };
dependencies = {
heck = rustPackages."registry+https://github.com/rust-lang/crates.io-index".heck."0.3.1" { inherit profileName; };
proc_macro_error = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-error."0.4.8" { inherit profileName; };
proc_macro_error = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-error."1.0.2" { inherit profileName; };
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.8" { inherit profileName; };
quote = rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.2" { inherit profileName; };
syn = rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."1.0.14" { inherit profileName; };
@ -2759,7 +2780,7 @@ in
dependencies = {
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
fnv = rustPackages."registry+https://github.com/rust-lang/crates.io-index".fnv."1.0.6" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
iovec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".iovec."0.1.4" { inherit profileName; };
lazy_static = rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.4.0" { inherit profileName; };
${ if hostPlatform.isUnix then "libc" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.66" { inherit profileName; };
@ -2794,8 +2815,8 @@ in
];
dependencies = {
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.5" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
pin_project_lite = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.1.4" { inherit profileName; };
tokio = rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."0.2.11" { inherit profileName; };
@ -2813,8 +2834,8 @@ in
];
dependencies = {
bytes = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bytes."0.5.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.4" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.4" { inherit profileName; };
futures_core = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-core."0.3.5" { inherit profileName; };
futures_sink = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures-sink."0.3.5" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
pin_project_lite = rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.1.4" { inherit profileName; };
tokio = rustPackages."registry+https://github.com/rust-lang/crates.io-index".tokio."0.2.11" { inherit profileName; };
@ -2849,7 +2870,7 @@ in
async_trait = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".async-trait."0.1.24" { profileName = "__noProfile"; };
enum_as_inner = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".enum-as-inner."0.3.0" { profileName = "__noProfile"; };
failure = rustPackages."registry+https://github.com/rust-lang/crates.io-index".failure."0.1.6" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
idna = rustPackages."registry+https://github.com/rust-lang/crates.io-index".idna."0.2.0" { inherit profileName; };
lazy_static = rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.4.0" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
@ -2874,7 +2895,7 @@ in
dependencies = {
cfg_if = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."0.1.10" { inherit profileName; };
failure = rustPackages."registry+https://github.com/rust-lang/crates.io-index".failure."0.1.6" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.4" { inherit profileName; };
futures = rustPackages."registry+https://github.com/rust-lang/crates.io-index".futures."0.3.5" { inherit profileName; };
${ if hostPlatform.isWindows then "ipconfig" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".ipconfig."0.2.1" { inherit profileName; };
lazy_static = rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.4.0" { inherit profileName; };
log = rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.8" { inherit profileName; };
@ -3081,8 +3102,8 @@ in
];
dependencies = {
cfg_if = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."0.1.10" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.105" { inherit profileName; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.50" { inherit profileName; };
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.110" { inherit profileName; };
serde_json = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.53" { inherit profileName; };
wasm_bindgen_macro = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".wasm-bindgen-macro."0.2.58" { profileName = "__noProfile"; };
};
});
@ -3264,8 +3285,8 @@ in
[ "ws2tcpip" ]
];
dependencies = {
${ if hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" then "winapi_i686_pc_windows_gnu" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-i686-pc-windows-gnu."0.4.0" { inherit profileName; };
${ if hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" then "winapi_x86_64_pc_windows_gnu" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-x86_64-pc-windows-gnu."0.4.0" { inherit profileName; };
${ if hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" || hostPlatform.config == "i686-pc-windows-gnu" then "winapi_i686_pc_windows_gnu" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-i686-pc-windows-gnu."0.4.0" { inherit profileName; };
${ if hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" || hostPlatform.config == "x86_64-pc-windows-gnu" then "winapi_x86_64_pc_windows_gnu" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-x86_64-pc-windows-gnu."0.4.0" { inherit profileName; };
};
});

View File

@ -1,30 +1,30 @@
[package]
name = "hoc"
version = "0.12.0"
version = "0.14.0"
authors = ["Valentin Brandl <vbrandl@riseup.net>"]
edition = "2018"
build = "build.rs"
[dependencies]
actix-web = "2.0.0"
badge = "0.2.0"
bytes = "0.5.4"
actix-web = "3.0.0"
badge = "0.3.0"
bytes = "0.5.6"
futures = "0.3.5"
git2 = "0.13.5"
git2 = "0.13.11"
lazy_static = "1.4.0"
log = "0.4.8"
log4rs = "0.12.0"
log = "0.4.11"
log4rs = "0.13.0"
number_prefix = "0.4.0"
openssl-probe = "0.1.2"
reqwest = "0.10.4"
serde = "1.0.110"
reqwest = "0.10.8"
serde = "1.0.115"
serde_derive = "1.0.103"
serde_json = "1.0.53"
structopt = "0.3.14"
serde_json = "1.0.57"
structopt = "0.3.17"
actix-rt = "1.1.1"
[build-dependencies]
ructe = "0.11.4"
ructe = "0.12.0"
vergen = "3.1.0"
[dev-dependencies]

View File

@ -29,6 +29,10 @@ https://<host>/<service>/<user>/<repo>/json
There is also an overview page available via `https://<host>/view/<service>/<user>/<repo>`
To delete a repository and the cache from the server, send a `POST` request to
`https://<host>/<service>/<user>/<repo>/delete`. On the overview page, there is a button to perform this operation. It
will respond with a redirect to the overview page so the cache is rebuilt directly.
## Building
The code can be built as a standalone binary, using `cargo` or as a Docker container. Run either

View File

@ -29,10 +29,10 @@
"homepage": "https://github.com/NixOS/nixpkgs",
"owner": "NixOS",
"repo": "nixpkgs-channels",
"rev": "053ad4e0db7241ae6a02394d62750fdc5d64aa9f",
"sha256": "11l9sr8zg8j1n5p43zjkqwpj59gn8c84z1kf16icnsbnv2smzqdc",
"rev": "f6bfb371cba2b5a02f200c2747c1fe2c72bd782f",
"sha256": "0y3hlbyvznrpr1d2vxj2511hkjg733wdnxfaib3fgy9i9jr8ivzn",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs-channels/archive/053ad4e0db7241ae6a02394d62750fdc5d64aa9f.tar.gz",
"url": "https://github.com/NixOS/nixpkgs-channels/archive/f6bfb371cba2b5a02f200c2747c1fe2c72bd782f.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"nixpkgs-mozilla": {

View File

@ -1,6 +1,7 @@
use crate::error::{Error, Result};
use std::{
borrow::Cow,
collections::HashMap,
fs::{create_dir_all, File, OpenOptions},
io::BufReader,
path::Path,
@ -9,49 +10,106 @@ use std::{
/// Enum to indicate the state of the cache
pub(crate) enum CacheState<'a> {
/// Current head and cached head are the same
Current { count: u64, commits: u64 },
Current {
count: u64,
commits: u64,
cache: Cache<'a>,
},
/// Cached head is older than current head
Old(Cache<'a>),
Old {
head: String,
cache: Cache<'a>,
},
NoneForBranch(Cache<'a>),
/// No cache was found
No,
}
impl<'a> CacheState<'a> {
pub(crate) fn read_from_file(path: impl AsRef<Path>, head: &str) -> Result<CacheState> {
pub(crate) fn read_from_file(
path: impl AsRef<Path>,
branch: &str,
head: &str,
) -> Result<CacheState<'a>> {
if path.as_ref().exists() {
let cache: Cache = serde_json::from_reader(BufReader::new(File::open(path)?))?;
if cache.head == head {
Ok(CacheState::Current {
count: cache.count,
commits: cache.commits,
Ok(cache
.entries
.get(branch)
.map(|c| {
if c.head == head {
CacheState::Current {
count: c.count,
commits: c.commits,
// TODO: get rid of clone
cache: cache.clone(),
}
} else {
CacheState::Old {
head: c.head.to_string(),
// TODO: get rid of clone
cache: cache.clone(),
}
}
})
} else {
Ok(CacheState::Old(cache))
}
// TODO: get rid of clone
.unwrap_or_else(|| CacheState::NoneForBranch(cache.clone())))
} else {
Ok(CacheState::No)
}
}
pub(crate) fn calculate_new_cache(self, count: u64, commits: u64, head: Cow<'a, str>) -> Cache {
pub(crate) fn calculate_new_cache(
self,
count: u64,
commits: u64,
head: Cow<'a, str>,
branch: &'a str,
) -> Cache<'a> {
match self {
CacheState::Old(mut cache) => {
cache.head = head;
cache.count += count;
cache.commits += commits;
CacheState::Old { mut cache, .. } => {
if let Some(mut cache) = cache.entries.get_mut(branch) {
cache.head = head;
cache.count += count;
cache.commits += commits;
}
cache
}
CacheState::No | CacheState::Current { .. } => Cache {
head,
count,
commits,
},
CacheState::Current { cache, .. } => cache,
CacheState::NoneForBranch(mut cache) => {
cache.entries.insert(
branch.into(),
CacheEntry {
head,
count,
commits,
},
);
cache
}
CacheState::No => {
let mut entries = HashMap::with_capacity(1);
entries.insert(
branch.into(),
CacheEntry {
commits,
head,
count,
},
);
Cache { entries }
}
}
}
}
#[derive(Serialize, Deserialize)]
#[derive(Serialize, Deserialize, Clone)]
pub(crate) struct Cache<'a> {
pub entries: HashMap<Cow<'a, str>, CacheEntry<'a>>,
}
#[derive(Serialize, Deserialize, Clone)]
pub(crate) struct CacheEntry<'a> {
/// HEAD commit ref
pub head: Cow<'a, str>,
/// HoC value

View File

@ -50,7 +50,6 @@ pub(crate) struct Opt {
pub(crate) async fn init() -> Result<()> {
std::env::set_var("RUST_LOG", "actix_web=info,hoc=info");
// pretty_env_logger::init();
openssl_probe::init_ssl_cert_env_vars();
let stdout = ConsoleAppender::builder().build();
let file = FileAppender::builder()

View File

@ -18,7 +18,7 @@ pub(crate) enum Error {
LogBuilder(log4rs::config::Errors),
Parse(std::num::ParseIntError),
Serial(serde_json::Error),
GitNoMaster,
BranchNotFound,
}
impl fmt::Display for Error {
@ -33,7 +33,7 @@ impl fmt::Display for Error {
Error::LogBuilder(e) => write!(fmt, "LogBuilder({})", e),
Error::Parse(e) => write!(fmt, "Parse({})", e),
Error::Serial(e) => write!(fmt, "Serial({})", e),
Error::GitNoMaster => write!(fmt, "Repo doesn't have master branch"),
Error::BranchNotFound => write!(fmt, "Repo doesn't have master branch"),
}
}
}
@ -42,7 +42,7 @@ impl ResponseError for Error {
fn error_response(&self) -> HttpResponse {
let mut buf = Vec::new();
match self {
Error::GitNoMaster => {
Error::BranchNotFound => {
templates::p404_no_master(
&mut buf,
VERSION_INFO,

View File

@ -32,7 +32,7 @@ use actix_web::{
middleware, web, App, HttpResponse, HttpServer, Responder,
};
use badge::{Badge, BadgeOptions};
use git2::Repository;
use git2::{BranchType, Repository};
use number_prefix::NumberPrefix;
use std::{
borrow::Cow,
@ -63,10 +63,16 @@ pub(crate) struct State {
#[derive(Serialize)]
struct JsonResponse<'a> {
head: &'a str,
branch: &'a str,
count: u64,
commits: u64,
}
#[derive(Deserialize, Debug)]
struct BranchQuery {
branch: Option<String>,
}
fn pull(path: impl AsRef<Path>) -> Result<()> {
let repo = Repository::open_bare(path)?;
let mut origin = repo.find_remote("origin")?;
@ -74,17 +80,17 @@ fn pull(path: impl AsRef<Path>) -> Result<()> {
Ok(())
}
fn hoc(repo: &str, repo_dir: &str, cache_dir: &str) -> Result<(u64, String, u64)> {
fn hoc(repo: &str, repo_dir: &str, cache_dir: &str, branch: &str) -> Result<(u64, String, u64)> {
let repo_dir = format!("{}/{}", repo_dir, repo);
let cache_dir = format!("{}/{}.json", cache_dir, repo);
let cache_dir = Path::new(&cache_dir);
let repo = Repository::open_bare(&repo_dir)?;
// TODO: do better...
let head = match repo.head() {
Ok(v) => v,
Err(_) => return Err(Error::GitNoMaster),
};
let head = format!("{}", head.target().ok_or(Error::Internal)?);
let head = repo
.find_branch(branch, BranchType::Local)
.map_err(|_| Error::BranchNotFound)?
.into_reference();
let head = format!("{}", head.target().ok_or(Error::BranchNotFound)?);
let mut arg_commit_count = vec!["rev-list".to_string(), "--count".to_string()];
let mut arg = vec![
"log".to_string(),
@ -98,26 +104,27 @@ fn hoc(repo: &str, repo_dir: &str, cache_dir: &str) -> Result<(u64, String, u64)
"-M".to_string(),
"--diff-filter=ACDM".to_string(),
];
let cache = CacheState::read_from_file(&cache_dir, &head)?;
let cache = CacheState::read_from_file(&cache_dir, branch, &head)?;
match &cache {
CacheState::Current { count, commits } => {
CacheState::Current { count, commits, .. } => {
info!("Using cache for {}", repo_dir);
return Ok((*count, head, *commits));
}
CacheState::Old(cache) => {
CacheState::Old { head, .. } => {
info!("Updating cache for {}", repo_dir);
arg.push(format!("{}..HEAD", cache.head));
arg_commit_count.push(format!("{}..HEAD", cache.head));
arg.push(format!("{}..{}", head, branch));
arg_commit_count.push(format!("{}..{}", head, branch));
}
CacheState::No => {
CacheState::No | CacheState::NoneForBranch(..) => {
info!("Creating cache for {}", repo_dir);
arg_commit_count.push("HEAD".to_string());
arg.push(branch.to_string());
arg_commit_count.push(branch.to_string());
}
};
arg.push("--".to_string());
arg.push(".".to_string());
let output = Command::new("git")
.args(&arg)
.args(&dbg!(arg))
.current_dir(&repo_dir)
.output()?
.stdout;
@ -140,10 +147,10 @@ fn hoc(repo: &str, repo_dir: &str, cache_dir: &str) -> Result<(u64, String, u64)
})
.sum();
let cache = cache.calculate_new_cache(count, commits, (&head).into());
let cache = cache.calculate_new_cache(count, commits, (&head).into(), branch);
cache.write_to_file(cache_dir)?;
Ok((cache.count, head, commits))
Ok((count, head, commits))
}
async fn remote_exists(url: &str) -> Result<bool> {
@ -171,6 +178,7 @@ async fn delete_repo_and_cache<T>(
where
T: Service,
{
let data = data.into_inner();
let repo = format!(
"{}/{}/{}",
T::domain(),
@ -206,18 +214,19 @@ where
async fn handle_hoc_request<T, F>(
state: web::Data<Arc<State>>,
data: web::Path<(String, String)>,
branch: &str,
mapper: F,
) -> Result<HttpResponse>
where
T: Service,
F: Fn(HocResult) -> Result<HttpResponse>,
{
let data = data.into_inner();
let repo = format!("{}/{}", data.0.to_lowercase(), data.1.to_lowercase());
let service_path = format!("{}/{}", T::url_path(), repo);
let service_url = format!("{}/{}", T::domain(), repo);
let path = format!("{}/{}", state.repos, service_url);
let url = format!("https://{}", service_url);
error!("{}", url);
let remote_exists = remote_exists(&url).await?;
let file = Path::new(&path);
if !file.exists() {
@ -233,7 +242,7 @@ where
REPO_COUNT.fetch_add(1, Ordering::Relaxed);
}
pull(&path)?;
let (hoc, head, commits) = hoc(&service_url, &state.repos, &state.cache)?;
let (hoc, head, commits) = hoc(&service_url, &state.repos, &state.cache, branch)?;
let hoc_pretty = match NumberPrefix::decimal(hoc as f64) {
NumberPrefix::Standalone(hoc) => hoc.to_string(),
NumberPrefix::Prefixed(prefix, hoc) => format!("{:.1}{}", hoc, prefix),
@ -253,23 +262,27 @@ where
pub(crate) async fn json_hoc<T: Service>(
state: web::Data<Arc<State>>,
data: web::Path<(String, String)>,
branch: web::Query<BranchQuery>,
) -> Result<HttpResponse> {
let branch = branch.branch.as_deref().unwrap_or("master");
let mapper = |r| match r {
HocResult::NotFound => p404(),
HocResult::Hoc {
hoc, head, commits, ..
} => Ok(HttpResponse::Ok().json(JsonResponse {
branch,
head: &head,
count: hoc,
commits,
})),
};
handle_hoc_request::<T, _>(state, data, mapper).await
handle_hoc_request::<T, _>(state, data, branch, mapper).await
}
pub(crate) async fn calculate_hoc<T: Service>(
state: web::Data<Arc<State>>,
data: web::Path<(String, String)>,
branch: web::Query<BranchQuery>,
) -> Result<HttpResponse> {
let mapper = move |r| match r {
HocResult::NotFound => p404(),
@ -296,13 +309,16 @@ pub(crate) async fn calculate_hoc<T: Service>(
.body(body))
}
};
handle_hoc_request::<T, _>(state, data, mapper).await
let branch = branch.branch.as_deref().unwrap_or("master");
handle_hoc_request::<T, _>(state, data, branch, mapper).await
}
async fn overview<T: Service>(
state: web::Data<Arc<State>>,
data: web::Path<(String, String)>,
branch: web::Query<BranchQuery>,
) -> Result<HttpResponse> {
let branch = branch.branch.as_deref().unwrap_or("master");
let mapper = |r| match r {
HocResult::NotFound => p404(),
HocResult::Hoc {
@ -324,6 +340,7 @@ async fn overview<T: Service>(
hoc_pretty: &hoc_pretty,
path: &service_path,
url: &url,
branch,
};
templates::overview(
&mut buf,
@ -335,7 +352,7 @@ async fn overview<T: Service>(
Ok(HttpResponse::Ok().content_type("text/html").body(buf))
}
};
handle_hoc_request::<T, _>(state, data, mapper).await
handle_hoc_request::<T, _>(state, data, branch, mapper).await
}
#[get("/")]
@ -377,12 +394,10 @@ async fn async_p404() -> Result<HttpResponse> {
p404()
}
#[get("/tacit-css.min.css")]
fn css() -> HttpResponse {
HttpResponse::Ok().content_type("text/css").body(CSS)
}
#[get("/favicon.ico")]
fn favicon32() -> HttpResponse {
HttpResponse::Ok().content_type("image/png").body(FAVICON)
}
@ -397,10 +412,11 @@ async fn start_server() -> std::io::Result<()> {
App::new()
.data(state.clone())
.wrap(middleware::Logger::default())
.wrap(middleware::NormalizePath)
// .wrap(middleware::NormalizePath::default())
.service(index)
.service(css)
.service(favicon32)
.service(web::resource("/tacit-css.min.css").route(web::get().to(css)))
// TODO
.service(web::resource("/favicon.ico").route(web::get().to(favicon32)))
.service(generate)
.service(web::resource("/github/{user}/{repo}").to(calculate_hoc::<GitHub>))
.service(web::resource("/gitlab/{user}/{repo}").to(calculate_hoc::<Gitlab>))

View File

@ -7,4 +7,5 @@ pub struct RepoInfo<'a> {
pub hoc_pretty: &'a str,
pub path: &'a str,
pub url: &'a str,
pub branch: &'a str,
}

View File

@ -45,6 +45,12 @@ would render this badge:
alt="example badge" /></a>
</pre>
<p>
By default, this service assumes the existence of a branch named <code>master</code>. If no branch with that name exists
in your repository or you want a badge for another branch of your repository, just append
<code>?branch=&lt;branch-name&gt;</code> to the URL.
</p>
<p>
You can also request the HoC as JSON by appending <code>/json</code> to the request path. This will return a JSON object
with three fields: <code>count</code> (the HoC value), <code>commits</code> (the number of commits) and

View File

@ -9,7 +9,8 @@
<p>
The project <a href="@repo_info.url">@repo_info.url</a> has
<strong>@repo_info.hoc_pretty</strong> (exactly @repo_info.hoc) hits of code at
<a href="@repo_info.commit_url">@repo_info.head</a>. The repository contains
<a href="@repo_info.commit_url">@repo_info.head</a> on the
<code>@repo_info.branch</code> branch. The repository contains
<strong>@repo_info.commits</strong> commits.
</p>
@ -18,7 +19,7 @@ To include the badge in your readme, use the following markdown:
</p>
<pre>
[![Hits-of-Code](https://@repo_info.domain/@repo_info.path)](https://@repo_info.domain/view/@repo_info.path)
[![Hits-of-Code](https://@repo_info.domain/@repo_info.path?branch=@repo_info.branch)](https://@repo_info.domain/view/@repo_info.path?branch=@repo_info.branch)
</pre>

View File

@ -3,11 +3,11 @@
@(version_info: VersionInfo, repo_count: usize)
@:base("Master Branch not Found - Hits-of-Code Badges", "404 - Master Branch not Found", {
@:base("Branch not Found - Hits-of-Code Badges", "404 - Branch not Found", {
<p>
<big>Sorry</big>. I couldn't find the master branch of your repositroy.
Currently this service depends on the existence of a master branch. Please go
<a href="/">back to the homepage</a>.
<big>Sorry</big>. I couldn't find the requested branch of your repositroy. Currently this service assumes the
extistence of a branch named <code>master</code>. If you'd like to request a badge for another branch, you can do so by
attaching <code>?branch=&lt;branch-name&gt;</code> to the request.
</p>
<p>