Compare commits

..

51 Commits

Author SHA1 Message Date
87bae1bbd1 Fix blocking test
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-13 11:09:54 +02:00
a64f55f362 Properly await the server future
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-13 10:42:53 +02:00
9f3c2813ab Apply cargo fmt
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-13 10:26:25 +02:00
4ce8c9e523 Disable pedantic lints for now
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-13 10:23:09 +02:00
361eacbe1d Fix some pedantic lints 2023-06-13 10:22:37 +02:00
b07c732475 Remove usage of outdated actions
All checks were successful
continuous-integration/drone/push Build is passing
Closes #506
2023-06-13 09:59:33 +02:00
fddb3dd3d6 Merge pull request #627 from vbrandl/dependabot/cargo/serde-1.0.164
Bump serde from 1.0.163 to 1.0.164
2023-06-09 11:43:15 +02:00
f433f27229 Update Changelog 2023-06-09 05:00:52 +00:00
8d7e97ba11 Bump serde from 1.0.163 to 1.0.164
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.163 to 1.0.164.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.163...v1.0.164)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 05:00:40 +00:00
59ce8e2b57 Merge pull request #626 from vbrandl/dependabot/cargo/tempfile-3.6.0
Some checks failed
Security audit / security_audit (push) Failing after 21s
/ Clippy (push) Failing after 56s
/ Rustfmt (push) Successful in 46s
/ Test Suite (ubuntu-latest) (push) Failing after 40s
continuous-integration/drone/push Build is passing
Bump tempfile from 3.5.0 to 3.6.0
2023-06-07 09:41:55 +02:00
2e5dcf4ef5 Update Changelog 2023-06-07 05:01:42 +00:00
739162d2cd Bump tempfile from 3.5.0 to 3.6.0
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.5.0 to 3.6.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.5.0...v3.6.0)

---
updated-dependencies:
- dependency-name: tempfile
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-07 05:01:28 +00:00
4be1d9881b Merge pull request #625 from vbrandl/dependabot/cargo/tokio-1.28.2
Bump tokio from 1.28.1 to 1.28.2
2023-05-29 13:34:30 +02:00
f9e5175773 Update Changelog 2023-05-29 11:28:41 +00:00
96ca6bda04 Bump tokio from 1.28.1 to 1.28.2
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.28.1 to 1.28.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.28.1...tokio-1.28.2)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 11:28:25 +00:00
df96fcb091 Merge pull request #624 from vbrandl/dependabot/cargo/git2-0.17.2
Bump git2 from 0.17.1 to 0.17.2
2023-05-29 13:27:24 +02:00
1bae5a2b99 Update Changelog 2023-05-29 05:00:27 +00:00
5924f2ab23 Bump git2 from 0.17.1 to 0.17.2
Bumps [git2](https://github.com/rust-lang/git2-rs) from 0.17.1 to 0.17.2.
- [Changelog](https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/git2-rs/compare/0.17.1...0.17.2)

---
updated-dependencies:
- dependency-name: git2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 05:00:14 +00:00
202c9ba03e Merge pull request #623 from vbrandl/dependabot/cargo/tracing-actix-web-0.7.5
Bump tracing-actix-web from 0.7.4 to 0.7.5
2023-05-25 16:54:34 +02:00
8123b59e33 Update Changelog 2023-05-25 12:55:55 +00:00
7bb8e82c3b Bump tracing-actix-web from 0.7.4 to 0.7.5
Bumps [tracing-actix-web](https://github.com/LukeMathWalker/tracing-actix-web) from 0.7.4 to 0.7.5.
- [Commits](https://github.com/LukeMathWalker/tracing-actix-web/compare/v0.7.4...v0.7.5)

---
updated-dependencies:
- dependency-name: tracing-actix-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-25 12:55:37 +00:00
5f1fc70a05 Merge pull request #622 from vbrandl/dependabot/cargo/vergen-8.2.1
Bump vergen from 8.2.0 to 8.2.1
2023-05-25 14:54:20 +02:00
d60462f7ce Update Changelog 2023-05-25 04:59:39 +00:00
4ce55c8e32 Bump vergen from 8.2.0 to 8.2.1
Bumps [vergen](https://github.com/rustyhorde/vergen) from 8.2.0 to 8.2.1.
- [Release notes](https://github.com/rustyhorde/vergen/releases)
- [Commits](https://github.com/rustyhorde/vergen/compare/8.2.0...8.2.1)

---
updated-dependencies:
- dependency-name: vergen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-25 04:59:25 +00:00
1a8db00ce4 Merge pull request #621 from vbrandl/dependabot/cargo/vergen-8.2.0
Bump vergen from 8.1.3 to 8.2.0
2023-05-22 13:14:23 +02:00
c304164935 Update Changelog 2023-05-22 05:02:23 +00:00
e2594b3c5b Bump vergen from 8.1.3 to 8.2.0
Bumps [vergen](https://github.com/rustyhorde/vergen) from 8.1.3 to 8.2.0.
- [Release notes](https://github.com/rustyhorde/vergen/releases)
- [Commits](https://github.com/rustyhorde/vergen/compare/8.1.3...8.2.0)

---
updated-dependencies:
- dependency-name: vergen
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 05:02:05 +00:00
12c400e5b8 Merge pull request #619 from vbrandl/dependabot/cargo/reqwest-0.11.18
Bump reqwest from 0.11.17 to 0.11.18
2023-05-17 15:41:15 +02:00
745a9021cd Update Changelog 2023-05-17 13:28:43 +00:00
4bb0c8adc7 Bump reqwest from 0.11.17 to 0.11.18
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.17 to 0.11.18.
- [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.11.17...v0.11.18)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 13:21:10 +00:00
e7cf23c625 Merge pull request #620 from vbrandl/feature/rerun-workflows
Some checks failed
/ Clippy (push) Failing after 1m8s
/ Test Suite (ubuntu-latest) (push) Failing after 42s
/ Rustfmt (push) Successful in 59s
Security audit / security_audit (push) Failing after 19s
continuous-integration/drone/push Build is passing
Use custom token to trigger reruns
2023-05-17 15:20:11 +02:00
78078132ce Use custom token to trigger reruns
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-17 15:15:49 +02:00
6aa253d44e Merge pull request #618 from vbrandl/dependabot/cargo/tokio-1.28.1
Some checks failed
Security audit / security_audit (push) Failing after 15s
/ Rustfmt (push) Successful in 44s
/ Test Suite (ubuntu-latest) (push) Failing after 44s
/ Clippy (push) Failing after 30s
continuous-integration/drone/push Build is passing
Bump tokio from 1.28.0 to 1.28.1
2023-05-11 13:35:05 +02:00
d461a8f6a1 Update Changelog 2023-05-11 11:21:01 +00:00
4847cc4f1f Bump tokio from 1.28.0 to 1.28.1
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.28.0 to 1.28.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.28.0...tokio-1.28.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-11 11:20:47 +00:00
bef518d594 Merge pull request #617 from vbrandl/dependabot/cargo/serde-1.0.163
Bump serde from 1.0.162 to 1.0.163
2023-05-11 13:20:07 +02:00
c22cc59924 Update Changelog 2023-05-11 11:06:57 +00:00
a4e28984ef Bump serde from 1.0.162 to 1.0.163
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.162 to 1.0.163.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.162...v1.0.163)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-11 11:06:41 +00:00
f4372c3248 Merge pull request #616 from vbrandl/dependabot/github_actions/actions/cache-3
Some checks failed
Security audit / security_audit (push) Failing after 14s
/ Rustfmt (push) Successful in 45s
/ Clippy (push) Failing after 39s
/ Test Suite (ubuntu-latest) (push) Failing after 40s
continuous-integration/drone/push Build is passing
Bump actions/cache from 2 to 3
2023-05-06 01:47:27 +02:00
e9554a20a7 Update Changelog 2023-05-05 23:36:33 +00:00
7862446e16 Bump actions/cache from 2 to 3
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-05 23:36:18 +00:00
b4a7444442 Merge pull request #615 from vbrandl/feature/dependabot-auto-changelog
Some checks failed
Security audit / security_audit (push) Failing after 15s
/ Clippy (push) Failing after 42s
/ Test Suite (ubuntu-latest) (push) Failing after 43s
/ Rustfmt (push) Successful in 45s
continuous-integration/drone/push Build is passing
Update github actions using dependabot
2023-05-06 01:35:56 +02:00
66861cb4d3 Merge branch 'master' into feature/dependabot-auto-changelog 2023-05-06 01:32:13 +02:00
e6b1dfece8 Update github actions using dependabot
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-06 01:27:13 +02:00
6837660a79 Merge pull request #613 from vbrandl/dependabot/cargo/serde-1.0.162
Some checks failed
Security audit / security_audit (push) Failing after 17s
/ Rustfmt (push) Successful in 55s
/ Clippy (push) Failing after 50s
/ Test Suite (ubuntu-latest) (push) Failing after 41s
continuous-integration/drone/push Build is passing
chore(deps): Bump serde from 1.0.160 to 1.0.162
2023-05-06 01:18:14 +02:00
109886ad9a Update Changelog 2023-05-05 23:12:00 +00:00
dcadae98b6 chore(deps): Bump serde from 1.0.160 to 1.0.162
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.160 to 1.0.162.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.160...1.0.162)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-05 23:11:48 +00:00
4845826023 Merge pull request #614 from vbrandl/feature/dependabot-auto-changelog
Autogenerate changelog entry for dependabot PRs
2023-05-06 01:10:58 +02:00
ce9db6b4a7 Autogenerate changelog entry for dependabot PRs 2023-05-06 01:06:41 +02:00
24f2d43550 Add dependabot label to dependabot PRs 2023-05-06 01:06:32 +02:00
43bbf4d377 Merge pull request #612 from vbrandl/release/v0.35.0
Some checks failed
Security audit / security_audit (push) Failing after 13s
/ Rustfmt (push) Successful in 44s
/ Clippy (push) Failing after 43s
/ Test Suite (ubuntu-latest) (push) Failing after 43s
continuous-integration/drone/push Build is passing
Release v0.35.0
2023-05-04 13:00:54 +02:00
17 changed files with 141 additions and 88 deletions

View File

@ -10,3 +10,15 @@ updates:
- vbrandl
labels:
- dependencies
- dependabot
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'daily'
open-pull-requests-limit: 10
assignees:
- vbrandl
labels:
- dependabot
- dependencies

View File

@ -16,6 +16,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/audit-check@v1
- uses: rustsec/audit-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -0,0 +1,26 @@
name: 'Dependabot Changelog'
on:
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
- labeled
- unlabeled
jobs:
changelog:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.ACTION_TOKEN }}
- uses: dangoslen/dependabot-changelog-helper@v3
with:
activationLabel: 'dependabot'
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "Update Changelog"

View File

@ -42,7 +42,7 @@ jobs:
override: true
- name: Cache cargo registry, index and build directory
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: |
~/.cargo/registry

View File

@ -16,18 +16,11 @@ jobs:
uses: actions/checkout@v3
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
components: rustfmt
uses: dtolnay/rust-toolchain@stable
- name: Check Formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
run: cargo fmt --all -- --check
clippy:
name: Clippy
@ -37,12 +30,7 @@ jobs:
uses: actions/checkout@v3
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
components: rustfmt
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry, index and build directory
uses: actions/cache@v3
@ -54,10 +42,13 @@ jobs:
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Clippy Linting
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
run: cargo clippy --all-features -- -Dclippy::all
# TODO
# run: cargo clippy --all-features -- -Dclippy::all -Dclippy::pedantic
- name: Clippy Test Linting
run: cargo clippy --tests -- -Dclippy::all
# TODO
# run: cargo clippy --tests -- -Dclippy::all -Dclippy::pedantic
test:
@ -74,11 +65,7 @@ jobs:
uses: actions/checkout@v3
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry, index and build directory
uses: actions/cache@v3
@ -90,6 +77,4 @@ jobs:
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Run Tests
uses: actions-rs/cargo@v1
with:
command: test
run: cargo test

View File

@ -4,6 +4,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Dependencies
- Bump `serde` from 1.0.160 to 1.0.164 (#613, #617, #627)
- Bump `actions/cache` from 2 to 3 (#616)
- Bump `tokio` from 1.28.0 to 1.28.2 (#618, #625)
- Bump `reqwest` from 0.11.17 to 0.11.18 (#619)
- Bump `vergen` from 8.1.3 to 8.2.1 (#621, #622)
- Bump `tracing-actix-web` from 0.7.4 to 0.7.5 (#623)
- Bump `git2` from 0.17.1 to 0.17.2 (#624)
- Bump `tempfile` from 3.5.0 to 3.6.0 (#626)
## [0.35.0] 2023-05-04
@ -227,4 +236,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[#502]: https://github.com/vbrandl/hoc/pull/502
[#503]: https://github.com/vbrandl/hoc/pull/503
[#504]: https://github.com/vbrandl/hoc/pull/504
[#508]: https://github.com/vbrandl/hoc/pull/508
[#508]: https://github.com/vbrandl/hoc/pull/508

39
Cargo.lock generated
View File

@ -807,9 +807,9 @@ dependencies = [
[[package]]
name = "git2"
version = "0.17.1"
version = "0.17.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b7905cdfe33d31a88bb2e8419ddd054451f5432d1da9eaf2ac7804ee1ea12d5"
checksum = "7b989d6a7ca95a362cf2cfc5ad688b3a467be1f87e480b8dad07fee8c79b0044"
dependencies = [
"bitflags 1.3.2",
"libc",
@ -1671,9 +1671,9 @@ checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
[[package]]
name = "libgit2-sys"
version = "0.15.1+1.6.4"
version = "0.15.2+1.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb4577bde8cdfc7d6a2a4bcb7b049598597de33ffd337276e9c7db6cd4a2cee7"
checksum = "a80df2e11fb4a61f4ba2ab42dbe7f74468da143f1a75c74e11dee7c813f694fa"
dependencies = [
"cc",
"libc",
@ -2197,9 +2197,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "reqwest"
version = "0.11.17"
version = "0.11.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91"
checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
dependencies = [
"base64 0.21.0",
"bytes",
@ -2357,18 +2357,18 @@ checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
[[package]]
name = "serde"
version = "1.0.160"
version = "1.0.164"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c"
checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.160"
version = "1.0.164"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
dependencies = [
"proc-macro2",
"quote",
@ -2509,15 +2509,16 @@ dependencies = [
[[package]]
name = "tempfile"
version = "3.5.0"
version = "3.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
dependencies = [
"autocfg",
"cfg-if",
"fastrand",
"redox_syscall 0.3.5",
"rustix",
"windows-sys 0.45.0",
"windows-sys 0.48.0",
]
[[package]]
@ -2596,9 +2597,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.28.0"
version = "1.28.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f"
checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
dependencies = [
"autocfg",
"bytes",
@ -2665,9 +2666,9 @@ dependencies = [
[[package]]
name = "tracing-actix-web"
version = "0.7.4"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2def0ffabc0116481e14e82cf705fef814f5178171d445b6790137ff8a85a73"
checksum = "ce52ffaf2d544e317d3bef63f49a6a22022866505fa4840a4339b1756834a2a9"
dependencies = [
"actix-web",
"pin-project",
@ -2838,9 +2839,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vergen"
version = "8.1.3"
version = "8.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e03272e388fb78fc79481a493424f78d77be1d55f21bcd314b5a6716e195afe"
checksum = "8b3c89c2c7e50f33e4d35527e5bf9c11d6d132226dbbd1753f0fbe9f19ef88c6"
dependencies = [
"anyhow",
"gix",

View File

@ -20,17 +20,17 @@ bytes = "1.4.0"
config = { version = "0.13.3", features = ["toml"] }
dotenvy = "0.15.7"
futures = "0.3.27"
git2 = "0.17.1"
git2 = "0.17.2"
lazy_static = "1.4.0"
mime = "0.3"
number_prefix = "0.4.0"
openssl-probe = "0.1.5"
reqwest = "0.11.17"
serde = "1.0.158"
reqwest = "0.11.18"
serde = "1.0.164"
serde_derive = "1.0.137"
serde_json = "1.0.94"
tracing = "0.1.37"
tracing-actix-web = "0.7.3"
tracing-actix-web = "0.7.5"
tracing-bunyan-formatter = "0.3.6"
tracing-futures = "0.2.5"
tracing-log = "0.1.3"
@ -39,10 +39,10 @@ tracing-subscriber = { version = "0.3.17", features = ["registry", "env-filter"]
[build-dependencies]
anyhow = "1.0.71"
ructe = { version = "0.16.1", features = ["mime03"] }
vergen = { version = "8.1.3", default-features = false, features = ["git", "gitoxide"] }
vergen = { version = "8.2.1", default-features = false, features = ["git", "gitoxide"] }
[dev-dependencies]
awc = "3.1.1"
ructe = "0.16.1"
tempfile = "3.5.0"
tokio = "1.28.0"
tempfile = "3.6.0"
tokio = "1.28.2"

View File

@ -36,10 +36,10 @@ impl<'a> CacheState<'a> {
trace!("Reading cache");
if path.as_ref().exists() {
let cache: Cache = serde_json::from_reader(BufReader::new(File::open(path)?))?;
Ok(cache
.entries
.get(branch)
.map(|c| {
Ok(cache.entries.get(branch).map_or_else(
// TODO: get rid of clone
|| CacheState::NoneForBranch(cache.clone()),
|c| {
if c.head == head {
trace!("Cache is up to date");
CacheState::Current {
@ -56,9 +56,8 @@ impl<'a> CacheState<'a> {
cache: cache.clone(),
}
}
})
// TODO: get rid of clone
.unwrap_or_else(|| CacheState::NoneForBranch(cache.clone())))
},
))
} else {
Ok(CacheState::No)
}

View File

@ -18,6 +18,12 @@ pub struct Settings {
}
impl Settings {
/// Load the configuration from file and environment.
///
/// # Errors
///
/// * File cannot be read or parsed
/// * Environment variables cannot be parsed
pub fn load() -> Result<Self, ConfigError> {
Config::builder()
.add_source(File::with_name("hoc.toml").required(false))

View File

@ -22,7 +22,7 @@ use crate::{
cache::CacheState,
config::Settings,
error::{Error, Result},
service::{Bitbucket, FormService, GitHub, Gitlab, Service, Sourcehut},
service::{Bitbucket, FormValue, GitHub, Gitlab, Service, Sourcehut},
statics::{CLIENT, VERSION_INFO},
template::{RepoGeneratorInfo, RepoInfo},
};
@ -53,7 +53,7 @@ include!(concat!(env!("OUT_DIR"), "/templates.rs"));
#[derive(Deserialize, Serialize)]
struct GeneratorForm<'a> {
service: FormService,
service: FormValue,
user: Cow<'a, str>,
repo: Cow<'a, str>,
branch: Option<Cow<'a, str>>,
@ -309,7 +309,7 @@ pub(crate) async fn json_hoc<T: Service>(
let branch = branch.branch.as_deref().unwrap_or("master");
let rc_clone = repo_count.clone();
let mapper = move |r| match r {
HocResult::NotFound => p404(rc_clone),
HocResult::NotFound => p404(&rc_clone),
HocResult::Hoc {
hoc, head, commits, ..
} => Ok(HttpResponse::Ok().json(JsonResponse {
@ -345,7 +345,7 @@ pub(crate) async fn calculate_hoc<T: Service>(
let rc_clone = repo_count.clone();
let label = query.label.clone();
let mapper = move |r| match r {
HocResult::NotFound => p404(rc_clone),
HocResult::NotFound => p404(&rc_clone),
HocResult::Hoc { hoc_pretty, .. } => {
let badge_opt = BadgeOptions {
subject: label,
@ -386,7 +386,7 @@ async fn overview<T: Service>(
let base_url = state.settings.base_url.clone();
let rc_clone = repo_count.clone();
let mapper = move |r| match r {
HocResult::NotFound => p404(rc_clone),
HocResult::NotFound => p404(&rc_clone),
HocResult::Hoc {
hoc,
commits,
@ -413,7 +413,7 @@ async fn overview<T: Service>(
VERSION_INFO,
rc_clone.load(Ordering::Relaxed),
repo_info,
label,
&label,
)?;
Ok(HttpResponse::Ok().content_type("text/html").body(buf))
@ -423,11 +423,13 @@ async fn overview<T: Service>(
}
#[get("/health_check")]
#[allow(clippy::unused_async)]
async fn health_check() -> HttpResponse {
HttpResponse::Ok().finish()
}
#[get("/")]
#[allow(clippy::unused_async)]
async fn index(
state: web::Data<State>,
repo_count: web::Data<AtomicUsize>,
@ -443,6 +445,7 @@ async fn index(
}
#[post("/generate")]
#[allow(clippy::unused_async)]
async fn generate(
params: web::Form<GeneratorForm<'_>>,
state: web::Data<State>,
@ -470,20 +473,22 @@ async fn generate(
Ok(HttpResponse::Ok().content_type("text/html").body(buf))
}
fn p404(repo_count: web::Data<AtomicUsize>) -> Result<HttpResponse> {
fn p404(repo_count: &web::Data<AtomicUsize>) -> Result<HttpResponse> {
let mut buf = Vec::new();
templates::p404_html(&mut buf, VERSION_INFO, repo_count.load(Ordering::Relaxed))?;
Ok(HttpResponse::NotFound().content_type("text/html").body(buf))
}
#[allow(clippy::unused_async)]
async fn async_p404(repo_count: web::Data<AtomicUsize>) -> Result<HttpResponse> {
p404(repo_count)
p404(&repo_count)
}
/// A duration to add to current time for a far expires header.
static FAR: Duration = Duration::from_secs(180 * 24 * 60 * 60);
#[get("/static/{filename}")]
#[allow(clippy::unused_async)]
async fn static_file(
path: web::Path<String>,
repo_count: web::Data<AtomicUsize>,
@ -496,11 +501,11 @@ async fn static_file(
.content_type(data.mime.clone())
.body(data.content)
})
.map(Result::Ok)
.unwrap_or_else(|| p404(repo_count))
.map_or_else(|| p404(&repo_count), Result::Ok)
}
#[get("/favicon.ico")]
#[allow(clippy::unused_async)]
async fn favicon32() -> HttpResponse {
let data = &template_statics::favicon32_png;
HttpResponse::Ok()
@ -508,6 +513,7 @@ async fn favicon32() -> HttpResponse {
.body(data.content)
}
#[allow(clippy::unused_async)]
async fn start_server(listener: TcpListener, settings: Settings) -> std::io::Result<Server> {
let workers = settings.workers;
let repo_count =
@ -536,6 +542,11 @@ async fn start_server(listener: TcpListener, settings: Settings) -> std::io::Res
.run())
}
/// Start the server.
///
/// # Errors
///
/// * server cannot bind to `listener`
pub async fn run(listener: TcpListener, settings: Settings) -> std::io::Result<Server> {
let span = info_span!("hoc", version = env!("CARGO_PKG_VERSION"));
let _ = span.enter();

View File

@ -29,7 +29,7 @@ pub(crate) trait Service: Sized + 'static {
}
#[derive(Deserialize, Serialize, Clone, Copy)]
pub enum FormService {
pub enum FormValue {
#[serde(rename = "github")]
GitHub,
#[serde(rename = "gitlab")]
@ -40,22 +40,22 @@ pub enum FormService {
Sourcehut,
}
impl FormService {
impl FormValue {
pub(crate) fn url(&self) -> &str {
match self {
FormService::GitHub => "github.com",
FormService::Gitlab => "gitlab.com",
FormService::Bitbucket => "bitbucket.org",
FormService::Sourcehut => "git.sr.ht",
FormValue::GitHub => "github.com",
FormValue::Gitlab => "gitlab.com",
FormValue::Bitbucket => "bitbucket.org",
FormValue::Sourcehut => "git.sr.ht",
}
}
pub(crate) fn service(&self) -> &str {
match self {
FormService::GitHub => "github",
FormService::Gitlab => "gitlab",
FormService::Bitbucket => "bitbucket",
FormService::Sourcehut => "sourcehut",
FormValue::GitHub => "github",
FormValue::Gitlab => "gitlab",
FormValue::Bitbucket => "bitbucket",
FormValue::Sourcehut => "sourcehut",
}
}
}

View File

@ -1,3 +1,4 @@
#[derive(Clone, Copy)]
pub struct VersionInfo<'a> {
pub commit: &'a str,
pub version: &'a str,

View File

@ -1,5 +1,6 @@
use crate::service::FormService;
use crate::service::FormValue;
#[derive(Clone, Copy)]
pub struct RepoInfo<'a> {
pub commit_url: &'a str,
pub commits: u64,
@ -13,7 +14,7 @@ pub struct RepoInfo<'a> {
}
pub struct RepoGeneratorInfo<'a> {
pub service: FormService,
pub service: FormValue,
pub user: &'a str,
pub repo: &'a str,
pub branch: &'a str,

View File

@ -1,4 +1,4 @@
@use super::statics::*;
@use super::statics::tacit_css_min_css;
@use crate::statics::VersionInfo;
@(title: &str, header: &str, content: Content, version_info: VersionInfo, repo_count: usize)

View File

@ -2,7 +2,7 @@
@use crate::statics::VersionInfo;
@use crate::template::RepoInfo;
@(version_info: VersionInfo, repo_count: usize, repo_info: RepoInfo, label: String)
@(version_info: VersionInfo, repo_count: usize, repo_info: RepoInfo, label: &str)
@:base_html("Hits-of-Code Badges", "Overview", {

View File

@ -38,6 +38,8 @@ pub async fn spawn_app() -> TestApp {
.await
.expect("Failed to bind address");
#[allow(clippy::let_underscore_future)]
// don't await so the test server runs in the background
let _ = tokio::spawn(server);
TestApp {