Compare commits
5 commits
main
...
thetadev-t
Author | SHA1 | Date | |
---|---|---|---|
|
e2d5883a82 | ||
9ce25467f1 | |||
|
c16bc2fb84 | ||
|
60f3bb405f | ||
|
ea32909621 |
18 changed files with 602 additions and 1114 deletions
|
@ -1,23 +0,0 @@
|
|||
name: DockerHub README
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "README.md"
|
||||
- ".forgejo/workflows/docker-readme.yaml"
|
||||
|
||||
jobs:
|
||||
update:
|
||||
runs-on: cimaster-latest
|
||||
steps:
|
||||
- name: 👁️ Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker Hub Description
|
||||
uses: https://github.com/peter-evans/dockerhub-description@v4
|
||||
with:
|
||||
username: thetadev256
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
repository: thetadev256/artifactview
|
||||
enable-url-completion: true
|
|
@ -1,63 +0,0 @@
|
|||
name: renovate
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["main"]
|
||||
paths:
|
||||
- ".forgejo/workflows/renovate.yaml"
|
||||
- "renovate.json"
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
RENOVATE_REPOSITORIES: ${{ github.repository }}
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: docker
|
||||
container:
|
||||
image: renovate/renovate:latest
|
||||
|
||||
steps:
|
||||
- name: Load renovate repo cache
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
.tmp/cache/renovate/repository
|
||||
.tmp/cache/renovate/renovate-cache-sqlite
|
||||
.tmp/osv
|
||||
key: repo-cache-${{ github.run_id }}
|
||||
restore-keys: |
|
||||
repo-cache-
|
||||
|
||||
- name: Run renovate
|
||||
run: renovate
|
||||
env:
|
||||
LOG_LEVEL: info
|
||||
RENOVATE_BASE_DIR: ${{ github.workspace }}/.tmp
|
||||
RENOVATE_ENDPOINT: ${{ github.server_url }}
|
||||
RENOVATE_PLATFORM: gitea
|
||||
RENOVATE_REPOSITORY_CACHE: 'enabled'
|
||||
RENOVATE_TOKEN: ${{ secrets.FORGEJO_CI_BOT_TOKEN }}
|
||||
GITHUB_COM_TOKEN: ${{ secrets.GH_PUBLIC_TOKEN }}
|
||||
RENOVATE_GIT_AUTHOR: 'Renovate Bot <forgejo-renovate-action@forgejo.org>'
|
||||
|
||||
RENOVATE_X_SQLITE_PACKAGE_CACHE: true
|
||||
|
||||
GIT_AUTHOR_NAME: 'Renovate Bot'
|
||||
GIT_AUTHOR_EMAIL: 'forgejo-renovate-action@forgejo.org'
|
||||
GIT_COMMITTER_NAME: 'Renovate Bot'
|
||||
GIT_COMMITTER_EMAIL: 'forgejo-renovate-action@forgejo.org'
|
||||
|
||||
OSV_OFFLINE_ROOT_DIR: ${{ github.workspace }}/.tmp/osv
|
||||
|
||||
- name: Save renovate repo cache
|
||||
if: always() && env.RENOVATE_DRY_RUN != 'full'
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: |
|
||||
.tmp/cache/renovate/repository
|
||||
.tmp/cache/renovate/renovate-cache-sqlite
|
||||
.tmp/osv
|
||||
key: repo-cache-${{ github.run_id }}
|
115
CHANGELOG.md
115
CHANGELOG.md
|
@ -3,121 +3,6 @@
|
|||
All notable changes to this project will be documented in this file.
|
||||
|
||||
|
||||
## [v0.4.7](https://codeberg.org/ThetaDev/artifactview/compare/v0.4.6..v0.4.7) - 2024-10-12
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(deps)* Update rust crate serde_json to v1.0.121 (#29) - ([df805bf](https://codeberg.org/ThetaDev/artifactview/commit/df805bfe8394dd148ded1d4d3af901eb97593885))
|
||||
- *(deps)* Update rust crate serde_json to v1.0.122 (#32) - ([db67487](https://codeberg.org/ThetaDev/artifactview/commit/db67487abdfc15fe55854fcb233e0bb876b603b3))
|
||||
- *(deps)* Update rust crate regex to v1.10.6 (#33) - ([7c2a976](https://codeberg.org/ThetaDev/artifactview/commit/7c2a97666d98d4959affbb8ece93c4ba162a760d))
|
||||
- *(deps)* Update rust crate serde-env to 0.2.0 (#37) - ([6b7d107](https://codeberg.org/ThetaDev/artifactview/commit/6b7d107387ff3e52e62e4ed19c64e63f8048c478))
|
||||
- *(deps)* Update rust crate serde to v1.0.205 (#38) - ([f9698b5](https://codeberg.org/ThetaDev/artifactview/commit/f9698b5a7f9c7f3748d4d7aa38f7dc4c0f5f2029))
|
||||
- *(deps)* Update rust crate serde to v1.0.206 (#39) - ([ed86f30](https://codeberg.org/ThetaDev/artifactview/commit/ed86f30cf4a736eeb4a3d471e81b8e7f7344b53b))
|
||||
- *(deps)* Update rust crate serde_json to v1.0.124 (#40) - ([cc6a495](https://codeberg.org/ThetaDev/artifactview/commit/cc6a4959983205ae2f40d81c9a40c8514165c0bb))
|
||||
- *(deps)* Update rust crate serde to v1.0.207 (#41) - ([0c2b39a](https://codeberg.org/ThetaDev/artifactview/commit/0c2b39a68a1adb567a1582f0c1b9e024fda9ed53))
|
||||
- *(deps)* Update rust crate serde to v1.0.208 (#43) - ([8073e90](https://codeberg.org/ThetaDev/artifactview/commit/8073e90f685d80565db81e23769841c16c2af261))
|
||||
- *(deps)* Update rust crate serde_json to v1.0.125 (#44) - ([4b3639a](https://codeberg.org/ThetaDev/artifactview/commit/4b3639aea7beed4ebc421fdfe26823be164d5c1c))
|
||||
- *(deps)* Update rust crate comrak to 0.27.0 (#46) - ([3cef317](https://codeberg.org/ThetaDev/artifactview/commit/3cef3175767170824f604fcccdc912bf09745bf9))
|
||||
- *(deps)* Update rust crate comrak to 0.28.0 (#47) - ([a88a3c6](https://codeberg.org/ThetaDev/artifactview/commit/a88a3c6103e776a4d10b3f7e6e9a37a2c672cfba))
|
||||
- *(deps)* Update rust crate quick_cache to v0.6.6 (#50) - ([73959c0](https://codeberg.org/ThetaDev/artifactview/commit/73959c00f2c54b682c3db8640ca12319ce4ee37d))
|
||||
- *(deps)* Update rust crate reqwest to v0.12.7 (#51) - ([22d5626](https://codeberg.org/ThetaDev/artifactview/commit/22d5626bf025783a127cd99faa0052778e0253b1))
|
||||
- *(deps)* Update rust crate serde to v1.0.210 (#52) - ([f8c9d6f](https://codeberg.org/ThetaDev/artifactview/commit/f8c9d6f7cb475f4642f5e4f11108c4d053cc8c7e))
|
||||
- *(deps)* Update rust crate serde_json to v1.0.128 (#57) - ([a48e23b](https://codeberg.org/ThetaDev/artifactview/commit/a48e23beceefc1b4c51910dc7114ab62abfd189c))
|
||||
- *(deps)* Update rust crate quick_cache to v0.6.9 (#59) - ([4eb2b22](https://codeberg.org/ThetaDev/artifactview/commit/4eb2b22a8f1c2b1b28f72303d364708d04790eca))
|
||||
- *(deps)* Update rust crate tower-http to 0.6.0 (#61) - ([1d03f5b](https://codeberg.org/ThetaDev/artifactview/commit/1d03f5b4b09596a68893126d8b177226b62fb38a))
|
||||
- *(deps)* Update rust crate axum to v0.7.6 (#62) - ([61f65e5](https://codeberg.org/ThetaDev/artifactview/commit/61f65e54db431b3e94d21188920ae88233c44d3b))
|
||||
- *(deps)* Update rust crate quick-xml to v0.36.2 (#64) - ([de4459f](https://codeberg.org/ThetaDev/artifactview/commit/de4459f646444a949c390394524f284a1944a0da))
|
||||
- *(deps)* Update rust crate axum-extra to v0.9.4 (#63) - ([6619ef6](https://codeberg.org/ThetaDev/artifactview/commit/6619ef60e44832dd8839bcaf82d43707965b772a))
|
||||
- *(deps)* Update rust crate thiserror to v1.0.64 (#66) - ([923f97f](https://codeberg.org/ThetaDev/artifactview/commit/923f97f8e9d0855ff97685496221a180018ae686))
|
||||
- *(deps)* Update rust crate tower-http to v0.6.1 (#68) - ([ca0734d](https://codeberg.org/ThetaDev/artifactview/commit/ca0734d47072d555ba07b2f512975b9379305a58))
|
||||
- *(deps)* Update rust crate secrecy to 0.10.0 (#60) - ([72d0cde](https://codeberg.org/ThetaDev/artifactview/commit/72d0cde37075220cc6a938840ad30781ecdcbaa7))
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(deps)* Update rust crate zip to v2.1.6 (#31) - ([7e0aaa8](https://codeberg.org/ThetaDev/artifactview/commit/7e0aaa8362005b56526ed5a6114f473893a5cf46))
|
||||
- *(deps)* Update rust crate flate2 to v1.0.31 (#34) - ([01e6a9c](https://codeberg.org/ThetaDev/artifactview/commit/01e6a9c8ad1f7c7dd5307a02a4a2b3c381aeacd6))
|
||||
- *(deps)* Update rust crate rstest to 0.22.0 (#35) - ([b9d0a29](https://codeberg.org/ThetaDev/artifactview/commit/b9d0a29741138a4dd7b758417b003c9bddc35f3e))
|
||||
- *(deps)* Update rust crate scraper to 0.20.0 (#36) - ([ca174a3](https://codeberg.org/ThetaDev/artifactview/commit/ca174a3aa21d0466930c2aa3291c2ecbed2ac31f))
|
||||
- *(deps)* Update rust crate axum-test to v15.3.1 (#42) - ([24171c9](https://codeberg.org/ThetaDev/artifactview/commit/24171c9800aa52270c203e5a5fc40f520b6ac74c))
|
||||
- *(deps)* Update rust crate tokio to v1.39.3 (#45) - ([63978d7](https://codeberg.org/ThetaDev/artifactview/commit/63978d79f9c3e276e59d7f3a558cec5f8f88e17e))
|
||||
- *(deps)* Update rust crate flate2 to v1.0.33 (#48) - ([980e596](https://codeberg.org/ThetaDev/artifactview/commit/980e5968eaa909c9d7a72d78156d3465c4599abe))
|
||||
- *(deps)* Update rust crate tokio-util to v0.7.12 (#49) - ([78179fd](https://codeberg.org/ThetaDev/artifactview/commit/78179fd73791c47cd3a60a37e704472109b50c15))
|
||||
- *(deps)* Update rust crate insta to v1.40.0 (#54) - ([03597d1](https://codeberg.org/ThetaDev/artifactview/commit/03597d10e58eca8a56e4708971cac1750e7707f4))
|
||||
- *(deps)* Update rust crate tokio to v1.40.0 (#55) - ([97b9610](https://codeberg.org/ThetaDev/artifactview/commit/97b9610f308c8ad0a083f6522c8b661c4b2c1e4f))
|
||||
- *(deps)* Update rust crate zip to v2.2.0 (#56) - ([3f719ac](https://codeberg.org/ThetaDev/artifactview/commit/3f719ac939612722b82b8bad2744b4570ff40df7))
|
||||
- *(deps)* Update rust crate once_cell to v1.20.0 (#58) - ([f8a95c8](https://codeberg.org/ThetaDev/artifactview/commit/f8a95c82e4a627d10906330327e94cd829d6f4c8))
|
||||
- *(deps)* Update rust crate axum-test to v15.7.1 (#53) - ([7a92941](https://codeberg.org/ThetaDev/artifactview/commit/7a92941452b0e2f59e0ceda49a378f0ef43784cb))
|
||||
- *(deps)* Update rust crate axum-test to v15.7.3 (#65) - ([82ca6dd](https://codeberg.org/ThetaDev/artifactview/commit/82ca6dd6bff9d8cb87a349cc8edb46f42a9721fc))
|
||||
- *(deps)* Update rust crate axum-test to v16 (#69) - ([dbcee49](https://codeberg.org/ThetaDev/artifactview/commit/dbcee4945c0be57534bdd2d7d98d85767e0cf92c))
|
||||
- *(deps)* Update rust crate flate2 to v1.0.34 (#70) - ([6f3544e](https://codeberg.org/ThetaDev/artifactview/commit/6f3544e3d8051697053cad5a751df6a1b4bc658b))
|
||||
- *(deps)* Update rust crate axum to v0.7.7 (#71) - ([01c494c](https://codeberg.org/ThetaDev/artifactview/commit/01c494c2773dc67f922beed7e84aa2ff59fb575f))
|
||||
- *(deps)* Update rust crate axum-test to v16.0.1 (#72) - ([2367512](https://codeberg.org/ThetaDev/artifactview/commit/23675124bdb15e01f037a6380f97f4d2921a34eb))
|
||||
- *(deps)* Update rust crate once_cell to v1.20.1 (#73) - ([484f113](https://codeberg.org/ThetaDev/artifactview/commit/484f1136469f5459b1d464944621e9db450d2f6a))
|
||||
- *(deps)* Update rust crate axum-test to v16.1.0 (#74) - ([2ed0cdc](https://codeberg.org/ThetaDev/artifactview/commit/2ed0cdc4a372c0a40de2ddc70a14b658a3619eec))
|
||||
- *(deps)* Update rust crate regex to v1.11.0 (#75) - ([e436f77](https://codeberg.org/ThetaDev/artifactview/commit/e436f77c3e4969d83c42d45201c15f0375d90ad0))
|
||||
- *(deps)* Update rust crate rstest to 0.23.0 (#76) - ([7c684eb](https://codeberg.org/ThetaDev/artifactview/commit/7c684eb5657eda84668bf3a1aadf38f1e4ac51db))
|
||||
- *(deps)* Update rust crate reqwest to v0.12.8 (#77) - ([a3f028f](https://codeberg.org/ThetaDev/artifactview/commit/a3f028f2ad11d3e599bf20d1f92679bf8b8dafc4))
|
||||
- *(deps)* Update rust crate async-compression to v0.4.13 (#78) - ([7cefbd4](https://codeberg.org/ThetaDev/artifactview/commit/7cefbd4a67e5636f046177f35fce14fff6300cb4))
|
||||
- *(deps)* Update rust crate once_cell to v1.20.2 (#79) - ([8309901](https://codeberg.org/ThetaDev/artifactview/commit/8309901a8c658cdf948889df57b731147d77c949))
|
||||
- *(deps)* Update rust crate pin-project to v1.1.6 (#80) - ([6ca7088](https://codeberg.org/ThetaDev/artifactview/commit/6ca7088b9c7ecd001df52f9cb35e86301c231bbb))
|
||||
- *(deps)* Update rust crate axum-test to v16.2.0 (#81) - ([e63baec](https://codeberg.org/ThetaDev/artifactview/commit/e63baec2490e069953f63d158f9af212f154055b))
|
||||
- *(deps)* Update rust crate secrecy to v0.10.3 (#82) - ([a2dc40f](https://codeberg.org/ThetaDev/artifactview/commit/a2dc40f4443cb3c3d1c7cf2b9e7178777c4b73e7))
|
||||
- *(deps)* Update rust crate async-compression to v0.4.14 (#83) - ([51f098f](https://codeberg.org/ThetaDev/artifactview/commit/51f098f4ada63ddc550774a60a81eb3d55697b44))
|
||||
- *(deps)* Update rust crate comrak to 0.29.0 (#84) - ([5da4074](https://codeberg.org/ThetaDev/artifactview/commit/5da4074bb9e87c9d17ed70669b6e47a3d57b1e8f))
|
||||
|
||||
|
||||
## [v0.4.6](https://codeberg.org/ThetaDev/artifactview/compare/v0.4.5..v0.4.6) - 2024-07-28
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(deps)* Update rust crate serde_json to v1.0.120 (#14) - ([06f9c27](https://codeberg.org/ThetaDev/artifactview/commit/06f9c278a857a272580ee1c4f8e58078556accda))
|
||||
- *(deps)* Update rust crate quick_cache to 0.6.0 (#15) - ([2e06266](https://codeberg.org/ThetaDev/artifactview/commit/2e0626667e5fc344df9870cd8c924b9dd60886bb))
|
||||
- *(deps)* Update rust crate serde to v1.0.204 (#16) - ([1321386](https://codeberg.org/ThetaDev/artifactview/commit/13213861ba0ea30504caa50da2a99af567876e5c))
|
||||
- *(deps)* Update rust crate quick-xml to 0.36.0 (#19) - ([5f94794](https://codeberg.org/ThetaDev/artifactview/commit/5f94794d24f300762da2ab162f4336508b516eda))
|
||||
- *(deps)* Update rust crate async-compression to v0.4.12 (#22) - ([88c635c](https://codeberg.org/ThetaDev/artifactview/commit/88c635cbad535eb902ea54a314e8511965a792b4))
|
||||
- *(deps)* Update rust crate quick-xml to v0.36.1 (#23) - ([c5c9f85](https://codeberg.org/ThetaDev/artifactview/commit/c5c9f85e4baec58dcc2001ac3a7f005c7f501557))
|
||||
- *(deps)* Update rust crate quick_cache to v0.6.2 (#24) - ([a5d4973](https://codeberg.org/ThetaDev/artifactview/commit/a5d49733fd84ba37e8c258f191bf79f4affb86f9))
|
||||
- *(deps)* Update rust crate thiserror to v1.0.63 (#25) - ([b67b173](https://codeberg.org/ThetaDev/artifactview/commit/b67b1730b1e9c06b4ff99774c37c71391f48f93a))
|
||||
- *(deps)* Update rust crate comrak to 0.26.0 (#27) - ([642930d](https://codeberg.org/ThetaDev/artifactview/commit/642930d397efa106267bd2aff8c413ab4173a5c6))
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(deps)* Update rust crate axum-test to v15.3.0 (#17) - ([a88f1ba](https://codeberg.org/ThetaDev/artifactview/commit/a88f1ba91c054fdb267f0edef10aacf14a909694))
|
||||
- *(deps)* Lock file maintenance (#18) - ([f41a922](https://codeberg.org/ThetaDev/artifactview/commit/f41a92243c91086d5d774410b1452303fad64ccf))
|
||||
- *(deps)* Update rust crate env_logger to v0.11.5 (#20) - ([c9db056](https://codeberg.org/ThetaDev/artifactview/commit/c9db0567916e500017034d6a99eb48a25a1671e0))
|
||||
- *(deps)* Update rust crate scraper to v0.19.1 (#21) - ([1a5c056](https://codeberg.org/ThetaDev/artifactview/commit/1a5c056204b488e36ef95145b05a674c661a2154))
|
||||
- *(deps)* Update rust crate tokio to v1.39.1 (#26) - ([057a365](https://codeberg.org/ThetaDev/artifactview/commit/057a365a0ecafe00fa84e53c736272f5db26f0f1))
|
||||
- *(deps)* Update rust crate tokio to v1.39.2 (#28) - ([3ae7f88](https://codeberg.org/ThetaDev/artifactview/commit/3ae7f8813e19818098a6b67d0c6770db8a79defe))
|
||||
- *(deps)* Update rust crate zip to v2 (#9) - ([a7160fa](https://codeberg.org/ThetaDev/artifactview/commit/a7160fadde6c95c6c03c90c5d2301738c8e559c2))
|
||||
|
||||
|
||||
## [v0.4.5](https://codeberg.org/ThetaDev/artifactview/compare/v0.4.4..v0.4.5) - 2024-07-01
|
||||
|
||||
### 🚀 Features
|
||||
|
||||
- Update PR comment format - ([197eeea](https://codeberg.org/ThetaDev/artifactview/commit/197eeea75baa8ba44d27ec46c5f552028052869b))
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(deps)* Update rust crate serde_json to v1.0.118 (#5) - ([fc3b5a1](https://codeberg.org/ThetaDev/artifactview/commit/fc3b5a1530985012ff8364a8fa676626e7544eaf))
|
||||
- *(deps)* Update rust crate quick-xml to 0.34.0 (#8) - ([595a9d0](https://codeberg.org/ThetaDev/artifactview/commit/595a9d0f4115faf5056653406b6d05bf671dc2b3))
|
||||
- *(deps)* Update rust crate mime_guess to v2.0.5 (#10) - ([94191f8](https://codeberg.org/ThetaDev/artifactview/commit/94191f878d774bef165cca850fcdf00fde16d662))
|
||||
- *(deps)* Update rust crate quick-xml to 0.35.0 (#11) - ([7ebe881](https://codeberg.org/ThetaDev/artifactview/commit/7ebe8815462f3e704a79af038b9b1850ed4677ed))
|
||||
- *(deps)* Update rust crate serde_json to v1.0.119 (#12) - ([2525022](https://codeberg.org/ThetaDev/artifactview/commit/2525022df76b3c16951983c14a55fa9617114a8e))
|
||||
- Swap crc and size column (#3) - ([7d2c686](https://codeberg.org/ThetaDev/artifactview/commit/7d2c68630ec6e75061c050a4c8b035edb472d150))
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- Make example CI step compatible with GitHub+Forgejo - ([39f0019](https://codeberg.org/ThetaDev/artifactview/commit/39f0019455cc23f1b8c39b77d2aaa5af278731a9))
|
||||
- Update README - ([40ae3a7](https://codeberg.org/ThetaDev/artifactview/commit/40ae3a7f557c63a0bb2abcd595218c8ec1095fe7))
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(deps)* Update rust crate proptest to v1.5.0 (#6) - ([797fc0c](https://codeberg.org/ThetaDev/artifactview/commit/797fc0c04c2a51811a24cfc431496e6e5dbf0bea))
|
||||
- *(deps)* Update rust crate rstest to 0.21.0 (#7) - ([cec3aa3](https://codeberg.org/ThetaDev/artifactview/commit/cec3aa3fc02e6a871d9c221f61c3f2d8828f9f63))
|
||||
- *(deps)* Lock file maintenance (#13) - ([9767167](https://codeberg.org/ThetaDev/artifactview/commit/9767167661e22775614cea7b888a19ee16c17d65))
|
||||
|
||||
|
||||
## [v0.4.4](https://codeberg.org/ThetaDev/artifactview/compare/v0.4.3..v0.4.4) - 2024-06-22
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
|
1382
Cargo.lock
generated
1382
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
22
Cargo.toml
22
Cargo.toml
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "artifactview"
|
||||
version = "0.4.7"
|
||||
version = "0.4.4"
|
||||
edition = "2021"
|
||||
authors = ["ThetaDev <thetadev@magenta.de>"]
|
||||
license = "MIT"
|
||||
|
@ -30,12 +30,12 @@ axum = { version = "0.7.5", default-features = false, features = [
|
|||
"tracing",
|
||||
] }
|
||||
axum-extra = { version = "0.9.3", features = ["typed-header"] }
|
||||
comrak = { version = "0.30.0", default-features = false }
|
||||
comrak = { version = "0.24.1", default-features = false }
|
||||
dotenvy = "0.15.7"
|
||||
envy = { path = "crates/envy" }
|
||||
flate2 = "1.0.30"
|
||||
futures-lite = "2.3.0"
|
||||
governor = "0.7.0"
|
||||
governor = "0.6.3"
|
||||
headers = "0.4.0"
|
||||
http = "1.1.0"
|
||||
humansize = "2.1.3"
|
||||
|
@ -46,16 +46,16 @@ once_cell = "1.19.0"
|
|||
path_macro = "1.0.0"
|
||||
percent-encoding = "2.3.1"
|
||||
pin-project = "1.1.5"
|
||||
quick_cache = "0.6.0"
|
||||
quick_cache = "0.5.1"
|
||||
rand = "0.8.5"
|
||||
regex = "1.10.4"
|
||||
reqwest = { version = "0.12.4", default-features = false, features = [
|
||||
"json",
|
||||
"stream",
|
||||
] }
|
||||
secrecy = { version = "0.10.0", features = ["serde"] }
|
||||
secrecy = { version = "0.8.0", features = ["serde"] }
|
||||
serde = { version = "1.0.203", features = ["derive"] }
|
||||
serde-env = "0.2.0"
|
||||
serde-env = "0.1.1"
|
||||
serde-hex = "0.1.0"
|
||||
serde_json = "1.0.117"
|
||||
serde_urlencoded = "0.7.1"
|
||||
|
@ -66,11 +66,11 @@ syntect = { version = "5.2.0", default-features = false, features = [
|
|||
"html",
|
||||
"regex-onig",
|
||||
] }
|
||||
thiserror = "2.0.0"
|
||||
thiserror = "1.0.61"
|
||||
time = { version = "0.3.36", features = ["serde-human-readable", "macros"] }
|
||||
tokio = { version = "1.37.0", features = ["macros", "fs", "rt-multi-thread"] }
|
||||
tokio-util = { version = "0.7.11", features = ["io"] }
|
||||
tower-http = { version = "0.6.0", features = ["trace", "set-header"] }
|
||||
tower-http = { version = "0.5.2", features = ["trace", "set-header"] }
|
||||
tracing = "0.1.40"
|
||||
tracing-subscriber = "0.3.18"
|
||||
url = "2.5.0"
|
||||
|
@ -80,13 +80,13 @@ yarte = { version = "0.15.7", features = ["json"] }
|
|||
yarte_helpers = "0.15.8"
|
||||
|
||||
[dev-dependencies]
|
||||
axum-test = "16.0.0"
|
||||
axum-test = "15.0.1"
|
||||
flate2 = "1.0.30"
|
||||
httpdate = "1.0.3"
|
||||
insta = { version = "1.39.0", features = ["json"] }
|
||||
proptest = "1.4.0"
|
||||
rstest = { version = "0.23.0", default-features = false }
|
||||
scraper = "0.21.0"
|
||||
rstest = { version = "0.20.0", default-features = false }
|
||||
scraper = "0.19.0"
|
||||
temp_testdir = "0.2.3"
|
||||
|
||||
[workspace]
|
||||
|
|
11
README.md
11
README.md
|
@ -1,5 +1,7 @@
|
|||
# Artifactview
|
||||
|
||||
**This is a test PR**: 5
|
||||
|
||||
View CI build artifacts from Forgejo/GitHub using your web browser!
|
||||
|
||||
Forgejo and GitHub's CI systems allow you to upload files and directories as
|
||||
|
@ -22,8 +24,7 @@ teammates.
|
|||
- 👁️ Viewer for Markdown, syntax-highlighted code and JUnit test reports
|
||||
- 🐵 Greasemonkey userscript to automatically add a "View artifact" button to
|
||||
GitHub/Gitea/Forgejo
|
||||
- 🦀 Fast and efficient, only extracts files from zip archive if the client does not support gzip
|
||||
- 🔗 Automatically creates pull request comments with links to all build artifacts
|
||||
- 🦀 Fast and efficient, only extracts files from zip archive if necessary
|
||||
|
||||
## How to use
|
||||
|
||||
|
@ -71,7 +72,8 @@ The script adds a "View artifact" link with an eye icon next to every CI artifac
|
|||
both GitHub and Forgejo.
|
||||
|
||||
If you want to give every collaborator to your project easy access to previews, you can
|
||||
automatically create a comment with links to the artifacts under every pull request.
|
||||
use Artifactview to automatically create a pull request comments with links to the
|
||||
artifacts.
|
||||
|
||||
![Pull request comment](./resources/screenshotPrComment.png)
|
||||
|
||||
|
@ -83,8 +85,7 @@ artifacts).
|
|||
if: ${{ always() && github.event_name == 'pull_request' }}
|
||||
run: |
|
||||
if [[ "$GITEA_ACTIONS" == "true" ]]; then RUN_NUMBER="$GITHUB_RUN_NUMBER"; else RUN_NUMBER="$GITHUB_RUN_ID"; fi
|
||||
curl -SsL --fail-with-body -w "\n" -X POST https://av.thetadev.de/.well-known/api/prComment -H "Content-Type: application/json" \
|
||||
--data '{"url": "'"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$RUN_NUMBER"'", "pr": ${{ github.event.number }}}'
|
||||
curl -SsL --fail-with-body -w "\n" -X POST https://av.thetadev.de/.well-known/api/prComment -H "Content-Type: application/json" --data "{\"url\": \"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$RUN_NUMBER\", \"pr\": ${{ github.event.number }}}"
|
||||
```
|
||||
|
||||
## API
|
||||
|
|
|
@ -37,7 +37,7 @@ rustdoc-args = ["--cfg", "docsrs"]
|
|||
crc32fast = "1"
|
||||
futures-lite = { version = "2.1.0", default-features = false, features = ["std"] }
|
||||
pin-project = "1"
|
||||
thiserror = "2"
|
||||
thiserror = "1"
|
||||
|
||||
async-compression = { version = "0.4.2", default-features = false, features = ["futures-io"], optional = true }
|
||||
chrono = { version = "0.4", default-features = false, features = ["clock"], optional = true }
|
||||
|
@ -49,7 +49,7 @@ tokio-util = { version = "0.7", features = ["compat"], optional = true }
|
|||
tokio = { version = "1", features = ["full"] }
|
||||
tokio-util = { version = "0.7", features = ["compat"] }
|
||||
env_logger = "0.11.2"
|
||||
zip = "2.1.5"
|
||||
zip = "0.6.3"
|
||||
|
||||
# shared across multiple examples
|
||||
# anyhow = "1"
|
||||
|
|
|
@ -70,7 +70,7 @@ fn generate_zip64many_zip() -> std::path::PathBuf {
|
|||
|
||||
let zip_file = std::fs::File::create(&path).unwrap();
|
||||
let mut zip = zip::ZipWriter::new(zip_file);
|
||||
let options = FileOptions::<()>::default().compression_method(zip::CompressionMethod::Stored);
|
||||
let options = FileOptions::default().compression_method(zip::CompressionMethod::Stored);
|
||||
|
||||
for i in 0..2_u32.pow(16) + 1 {
|
||||
zip.start_file(format!("{i}.txt"), options).unwrap();
|
||||
|
|
|
@ -36,7 +36,7 @@ async fn test_write_zip64_file() {
|
|||
let cursor = std::io::Cursor::new(buffer);
|
||||
let mut zip = zip::read::ZipArchive::new(cursor).unwrap();
|
||||
let mut file1 = zip.by_name("file1").unwrap();
|
||||
assert_eq!(file1.extra_data(), Some(&[] as &[u8]));
|
||||
assert_eq!(file1.extra_data(), &[] as &[u8]);
|
||||
let mut buffer = Vec::new();
|
||||
file1.read_to_end(&mut buffer).unwrap();
|
||||
assert_eq!(buffer.as_slice(), &[0, 0, 0, 0]);
|
||||
|
|
|
@ -7,8 +7,8 @@ license = "BSD-2-Clause"
|
|||
repository = "https://github.com/borisfaure/junit-parser"
|
||||
|
||||
[dependencies]
|
||||
quick-xml = { version = "0.37.0", features = ["escape-html"] }
|
||||
thiserror = "2.0.0"
|
||||
quick-xml = { version = "0.32.0", features = ["escape-html"] }
|
||||
thiserror = "1.0.61"
|
||||
time = { version = "0.3.36", features = ["parsing", "serde-well-known"] }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:best-practices",
|
||||
":semanticCommitTypeAll(chore)"
|
||||
],
|
||||
"automerge": true,
|
||||
"automergeStrategy": "squash",
|
||||
"osvVulnerabilityAlerts": true,
|
||||
"labels": ["dependency-upgrade"],
|
||||
"enabledManagers": ["cargo"],
|
||||
"prHourlyLimit": 5
|
||||
}
|
39
src/app.rs
39
src/app.rs
|
@ -844,11 +844,6 @@ fn pr_comment_text(p: PrCommentTextParams) -> String {
|
|||
let query = p.query;
|
||||
let mut content = "### ".to_owned();
|
||||
let mut prevln = "- ".to_owned();
|
||||
let a_opts = r#"target="_blank" rel="noopener noreferrer""#;
|
||||
let date_started = p
|
||||
.run
|
||||
.date_started
|
||||
.and_then(|d| d.to_offset(time::UtcOffset::UTC).format(&DATE_FORMAT).ok());
|
||||
|
||||
let mut prev_builds = None;
|
||||
let mut np_content = None;
|
||||
|
@ -871,7 +866,10 @@ fn pr_comment_text(p: PrCommentTextParams) -> String {
|
|||
|
||||
let write_link_icon = |s: &mut String, title: &str, href: &str| {
|
||||
let (title_pfx, title) = util::split_icon_prefix(title);
|
||||
_ = write!(s, r#"{title_pfx}<a href="{href}" {a_opts}>{title}</a>"#,);
|
||||
_ = write!(
|
||||
s,
|
||||
r#"{title_pfx}<a href="{href}" target="_blank" rel="noopener noreferrer">{title}</a>"#,
|
||||
);
|
||||
};
|
||||
|
||||
// Comment title
|
||||
|
@ -879,23 +877,17 @@ fn pr_comment_text(p: PrCommentTextParams) -> String {
|
|||
let artifacts_url = format!("{}/?url={}", p.cfg.main_url(), run_url);
|
||||
write_link_icon(
|
||||
&mut content,
|
||||
p.title.unwrap_or("Latest build artifacts"),
|
||||
p.title.unwrap_or("👁️ Latest build artifacts"),
|
||||
&artifacts_url,
|
||||
);
|
||||
_ = write!(&mut content, "\n\n Run [#{}]({}) · ", query.run, run_url);
|
||||
_ = write!(&mut content, " (Run [#{}]({}), ", query.run, run_url);
|
||||
write_commit(&mut content, &p.run.head_sha);
|
||||
if let Some(date_started) = &date_started {
|
||||
_ = write!(&mut content, " · {} UTC", date_started);
|
||||
}
|
||||
_ = content.write_str("\n\n");
|
||||
_ = content.write_str(")\n\n");
|
||||
|
||||
// Previous run line
|
||||
_ = write!(&mut prevln, "[#{}]({}) [", query.run, run_url);
|
||||
write_commit(&mut prevln, &p.run.head_sha);
|
||||
_ = write!(
|
||||
&mut prevln,
|
||||
"] <a href=\"{artifacts_url}\" {a_opts}>Artifacts</a>: "
|
||||
);
|
||||
_ = write!(&mut prevln, "] [Artifacts]({artifacts_url}): ");
|
||||
|
||||
for a in p.artifacts.iter().filter(|a| !a.expired) {
|
||||
let mut url = p
|
||||
|
@ -918,8 +910,8 @@ fn pr_comment_text(p: PrCommentTextParams) -> String {
|
|||
_ = content.write_str("<br>\n");
|
||||
_ = write!(
|
||||
&mut prevln,
|
||||
r#" <a href="{url}" {a_opts}>`{}`</a>,"#,
|
||||
a.name
|
||||
r#" <a href="{}" target="_blank" rel="noopener noreferrer">`{}`</a>,"#,
|
||||
url, a.name
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -927,8 +919,15 @@ fn pr_comment_text(p: PrCommentTextParams) -> String {
|
|||
prevln.pop();
|
||||
}
|
||||
|
||||
if let Some(date_started) = &date_started {
|
||||
_ = write!(&mut prevln, " ({} UTC)", date_started);
|
||||
if let Some(date_started) = &p.run.date_started {
|
||||
_ = write!(
|
||||
&mut prevln,
|
||||
" ({} UTC)",
|
||||
date_started
|
||||
.to_offset(time::UtcOffset::UTC)
|
||||
.format(&DATE_FORMAT)
|
||||
.unwrap_or_default()
|
||||
);
|
||||
}
|
||||
|
||||
if np_content.is_some() || prev_builds.is_some() {
|
||||
|
|
|
@ -5,7 +5,7 @@ use std::{
|
|||
sync::Arc,
|
||||
};
|
||||
|
||||
use secrecy::SecretString;
|
||||
use secrecy::Secret;
|
||||
use serde::Deserialize;
|
||||
|
||||
use crate::{
|
||||
|
@ -49,9 +49,9 @@ pub struct ConfigData {
|
|||
/// GitHub API token for downloading GitHub artifacts
|
||||
///
|
||||
/// Using a fine-grained token with public read permissions is recommended.
|
||||
pub github_token: Option<SecretString>,
|
||||
pub github_token: Option<Secret<String>>,
|
||||
/// Forgejo/Gitea API tokens by host
|
||||
pub forgejo_tokens: HashMap<String, SecretString>,
|
||||
pub forgejo_tokens: HashMap<String, Secret<String>>,
|
||||
/// Number of artifact indexes to keep in memory
|
||||
pub mem_cache_size: usize,
|
||||
/// Get the client IP address from a HTTP request header
|
||||
|
|
|
@ -2,10 +2,8 @@
|
|||
source: src/app.rs
|
||||
expression: res
|
||||
---
|
||||
### <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/1" target="_blank" rel="noopener noreferrer">Latest build artifacts</a>
|
||||
|
||||
Run [#1](https://code.thetadev.de/thetadev/test-actions/actions/runs/1) · [15eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/15eed48a8382513147a949117ef4aa659989d397) · 15.06.2024 01:30:00 UTC
|
||||
### 👁️ <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/1" target="_blank" rel="noopener noreferrer">Latest build artifacts</a> (Run [#1](https://code.thetadev.de/thetadev/test-actions/actions/runs/1), [15eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/15eed48a8382513147a949117ef4aa659989d397))
|
||||
|
||||
🏠 <a href="https://code-thetadev-de--thetadev--test-actions--1-1.localhost:3000" target="_blank" rel="noopener noreferrer">Hello World ;-)</a><br>
|
||||
<a href="https://code-thetadev-de--thetadev--test-actions--1-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">Test</a><br>
|
||||
<!--NEXT_PREV - [#1](https://code.thetadev.de/thetadev/test-actions/actions/runs/1) [[15eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/15eed48a8382513147a949117ef4aa659989d397)] <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/1" target="_blank" rel="noopener noreferrer">Artifacts</a>: <a href="https://code-thetadev-de--thetadev--test-actions--1-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--1-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 01:30:00 UTC) -->
|
||||
<!--NEXT_PREV - [#1](https://code.thetadev.de/thetadev/test-actions/actions/runs/1) [[15eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/15eed48a8382513147a949117ef4aa659989d397)] [Artifacts](https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/1): <a href="https://code-thetadev-de--thetadev--test-actions--1-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--1-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 01:30:00 UTC) -->
|
||||
|
|
|
@ -2,15 +2,13 @@
|
|||
source: src/app.rs
|
||||
expression: res
|
||||
---
|
||||
### <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/2" target="_blank" rel="noopener noreferrer">Latest build artifacts</a>
|
||||
|
||||
Run [#2](https://code.thetadev.de/thetadev/test-actions/actions/runs/2) · [25eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/25eed48a8382513147a949117ef4aa659989d397) · 15.06.2024 02:30:00 UTC
|
||||
### 👁️ <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/2" target="_blank" rel="noopener noreferrer">Latest build artifacts</a> (Run [#2](https://code.thetadev.de/thetadev/test-actions/actions/runs/2), [25eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/25eed48a8382513147a949117ef4aa659989d397))
|
||||
|
||||
🏠 <a href="https://code-thetadev-de--thetadev--test-actions--2-1.localhost:3000" target="_blank" rel="noopener noreferrer">Hello World ;-)</a><br>
|
||||
<a href="https://code-thetadev-de--thetadev--test-actions--2-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">Test</a><br>
|
||||
<details>
|
||||
<summary>Previous builds</summary>
|
||||
|
||||
- [#1](https://code.thetadev.de/thetadev/test-actions/actions/runs/1) [[15eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/15eed48a8382513147a949117ef4aa659989d397)] <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/1" target="_blank" rel="noopener noreferrer">Artifacts</a>: <a href="https://code-thetadev-de--thetadev--test-actions--1-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--1-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 01:30:00 UTC)
|
||||
<!--NEXT_PREV - [#2](https://code.thetadev.de/thetadev/test-actions/actions/runs/2) [[25eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/25eed48a8382513147a949117ef4aa659989d397)] <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/2" target="_blank" rel="noopener noreferrer">Artifacts</a>: <a href="https://code-thetadev-de--thetadev--test-actions--2-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--2-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 02:30:00 UTC) -->
|
||||
- [#1](https://code.thetadev.de/thetadev/test-actions/actions/runs/1) [[15eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/15eed48a8382513147a949117ef4aa659989d397)] [Artifacts](https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/1): <a href="https://code-thetadev-de--thetadev--test-actions--1-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--1-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 01:30:00 UTC)
|
||||
<!--NEXT_PREV - [#2](https://code.thetadev.de/thetadev/test-actions/actions/runs/2) [[25eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/25eed48a8382513147a949117ef4aa659989d397)] [Artifacts](https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/2): <a href="https://code-thetadev-de--thetadev--test-actions--2-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--2-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 02:30:00 UTC) -->
|
||||
</details>
|
||||
|
|
|
@ -2,16 +2,14 @@
|
|||
source: src/app.rs
|
||||
expression: res
|
||||
---
|
||||
### <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/3" target="_blank" rel="noopener noreferrer">Latest build artifacts</a>
|
||||
|
||||
Run [#3](https://code.thetadev.de/thetadev/test-actions/actions/runs/3) · [35eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/35eed48a8382513147a949117ef4aa659989d397) · 15.06.2024 03:30:00 UTC
|
||||
### 👁️ <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/3" target="_blank" rel="noopener noreferrer">Latest build artifacts</a> (Run [#3](https://code.thetadev.de/thetadev/test-actions/actions/runs/3), [35eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/35eed48a8382513147a949117ef4aa659989d397))
|
||||
|
||||
🏠 <a href="https://code-thetadev-de--thetadev--test-actions--3-1.localhost:3000" target="_blank" rel="noopener noreferrer">Hello World ;-)</a><br>
|
||||
<a href="https://code-thetadev-de--thetadev--test-actions--3-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">Test</a><br>
|
||||
<details>
|
||||
<summary>Previous builds</summary>
|
||||
|
||||
- [#1](https://code.thetadev.de/thetadev/test-actions/actions/runs/1) [[15eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/15eed48a8382513147a949117ef4aa659989d397)] <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/1" target="_blank" rel="noopener noreferrer">Artifacts</a>: <a href="https://code-thetadev-de--thetadev--test-actions--1-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--1-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 01:30:00 UTC)
|
||||
- [#2](https://code.thetadev.de/thetadev/test-actions/actions/runs/2) [[25eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/25eed48a8382513147a949117ef4aa659989d397)] <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/2" target="_blank" rel="noopener noreferrer">Artifacts</a>: <a href="https://code-thetadev-de--thetadev--test-actions--2-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--2-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 02:30:00 UTC)
|
||||
<!--NEXT_PREV - [#3](https://code.thetadev.de/thetadev/test-actions/actions/runs/3) [[35eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/35eed48a8382513147a949117ef4aa659989d397)] <a href="https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/3" target="_blank" rel="noopener noreferrer">Artifacts</a>: <a href="https://code-thetadev-de--thetadev--test-actions--3-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--3-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 03:30:00 UTC) -->
|
||||
- [#1](https://code.thetadev.de/thetadev/test-actions/actions/runs/1) [[15eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/15eed48a8382513147a949117ef4aa659989d397)] [Artifacts](https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/1): <a href="https://code-thetadev-de--thetadev--test-actions--1-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--1-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 01:30:00 UTC)
|
||||
- [#2](https://code.thetadev.de/thetadev/test-actions/actions/runs/2) [[25eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/25eed48a8382513147a949117ef4aa659989d397)] [Artifacts](https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/2): <a href="https://code-thetadev-de--thetadev--test-actions--2-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--2-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 02:30:00 UTC)
|
||||
<!--NEXT_PREV - [#3](https://code.thetadev.de/thetadev/test-actions/actions/runs/3) [[35eed48a83](https://code.thetadev.de/thetadev/test-actions/commit/35eed48a8382513147a949117ef4aa659989d397)] [Artifacts](https://localhost:3000/?url=https://code.thetadev.de/thetadev/test-actions/actions/runs/3): <a href="https://code-thetadev-de--thetadev--test-actions--3-1.localhost:3000" target="_blank" rel="noopener noreferrer">`Hello`</a>, <a href="https://code-thetadev-de--thetadev--test-actions--3-2.localhost:3000/junit.xml?viewer=1" target="_blank" rel="noopener noreferrer">`Test`</a> (15.06.2024 03:30:00 UTC) -->
|
||||
</details>
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
<th><a href="?C=N&O=A">Name</a> <a
|
||||
href="?C=N&O=D"
|
||||
> ↓ </a></th>
|
||||
<th>CRC32</th>
|
||||
<th><a href="?C=S&O=A">Size</a> <a
|
||||
href="?C=S&O=D"
|
||||
> ↓ </a></th>
|
||||
<th>CRC32</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -45,8 +45,8 @@
|
|||
<span class="name">{{name}}</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>{{#if is_dir}}—{{else}}{{crc32}}{{/if}}</td>
|
||||
<td>{{#if is_dir}}—{{else}}{{size}}{{/if}}</td>
|
||||
<td>{{#if is_dir}}—{{else}}{{crc32}}{{/if}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
|
|
|
@ -242,8 +242,8 @@ fn parse_listing(doc: &Html) -> Vec<FileEntry> {
|
|||
|
||||
FileEntry {
|
||||
name,
|
||||
crc32: parts.next().expect("crc32"),
|
||||
size: parts.next().expect("size"),
|
||||
crc32: parts.next().expect("crc32"),
|
||||
}
|
||||
})
|
||||
.collect()
|
||||
|
|
Loading…
Reference in a new issue