4 个版本
0.1.3 | 2024年4月27日 |
---|---|
0.1.2 | 2024年4月8日 |
0.1.1 | 2024年3月22日 |
0.1.0 | 2024年3月19日 |
#1072 in 网页编程
每月 31 下载
用于 grawler
18KB
346 行
gitfrog
获取 PR 和问题的当前信息
支持
- Github, Gitlab, Gitea
- Bugzilla
示例
自动检测知名 forge
use gitfrog::Info;
let url = Url::parse("https://github.com/catppuccin/nvim/pull/8").unwrap();
let info = Info::from_url(&url).await.unwrap();
assert_eq!(info.title, "Add Kitty themes");
assert_eq!(info.state, State::Closed);
assert_eq!(info.state.is_open(), false);
[!注意] 欢迎提交关于缺失 forge 的问题。也欢迎贡献力量!
自托管实例
use gitfrog::Host;
let url = Url::parse("https://gitlab.freedesktop.org/wayland/wayland/-/issues/369").unwrap();
let domain = url.domain().unwrap();
let info = Host::Gitlab(domain).get(&url).await.unwrap();
assert_eq!(info.title, "libwayland-server.so.0.21.0 ends in segfault and then somehow shuts down my system.");
assert_eq!(info.state, State::Closed);
assert_eq!(info.state.is_open(), false);
并行多个 URL
let wrapper = |x| Url::parse(&format!("https://github.com/catppuccin/nvim/pull/{x}")).unwrap();
let urls: Vec<Url> = vec![110, 143, 1].iter().map(wrapper).collect();
let info = Info::from_urls(&urls).await;
assert_eq!(info[0].as_ref().unwrap().title, "fix: typo");
assert_eq!(info[1].as_ref().unwrap().title, "fix: #103");
assert_eq!(info[2].is_err(), true);
依赖项
~8–24MB
~321K SLoC