3 个版本 (稳定)

1.0.1 2021 年 1 月 12 日
1.0.0 2020 年 4 月 30 日
0.1.0 2020 年 4 月 30 日

#13 in #github-action

MITLGPL-3.0

45KB
1K SLoC

urlsup CI 代码覆盖率

urlsup (urls up) 在文件中查找 URL 并通过发起 GET 请求并检查响应状态码来检查它们是否可达。这个工具对于包含你希望可达的 URL 的列表、仓库或任何类型的项目都很有用。

它是用 Rust (稳定版) 编写的,并在多个线程中异步执行请求,使其非常快速。结合其易用性,使其成为 CI 管道的完美工具。

这个项目是 awesome_bot 的精简版,但旨在更快。

使用方法

USAGE:
    urlsup [OPTIONS] <FILES>...

FLAGS:
        --allow-timeout             URLs that time out are allowed

OPTIONS:
    -a, --allow <status codes>      Comma separated status code errors to allow
        --threads <thread count>    Thread count for making requests (default: CPU core count)
    -t, --timeout <seconds>         Connection timeout in seconds (default: 30)
    -w, --white-list <urls>         Comma separated URLs to white list

ARGS:
    <FILES>...    Files to check

示例

$ urlsup `find . -name "*.md"`
> Using threads: 8
> Using timeout (seconds): 30
> Allow timeout: false
> Will check URLs in 1 file
   1. ./README.md

 Finding URLs in files...

> Found 2 unique URLs, 3 in total
   1. https://httpstat.us/401
   2. https://httpstat.us/404

 Checking URLs...

> Issues
   1. 401 https://httpstat.us/401
   2. 404 https://httpstat.us/404
$ urlsup `find . -name "*.md"`
> Using threads: 8
> Using timeout (seconds): 30
> Allow timeout: false
> Will check URLs in 1 file
   1. ./README.md

 Finding URLs in files...

> Found 1 unique URL, 1 in total
   1. https://httpstat.us/200

 Checking URLs...

> No issues!
$ urlsup README.md --white-list rust,crates
# white list all links starting with rust or crates

$ urlsup README.md,README-zh.md
# check links in 2 files

$ urlsup docs/*.md
# check all markdown files in docs/ directory

$ urlsup README.md --allow-timeout -t 5
# speed up validation by setting a timeout of 5 seconds per link request and allowing timeouts

$ urlsup README.md --allow 403,429
# allow status code errors 403 and 429

安装

使用 cargo 安装,在本地机器上运行 urlsup

cargo install urlsup

GitHub Actions

参见 urlsup-action

开发

此仓库使用 Makefile 作为常见操作的接口。

  1. 进行代码更改
  2. 运行 make build link 来构建项目并将构建的二进制文件从项目根目录创建符号链接
  3. 运行 ./urlsup 以执行具有您更改的二进制文件
  4. 盈利 ⭐

依赖

~13–27MB
~460K SLoC