nixpkgs-track
跟踪 Nixpkgs 拉取请求的进展(那个更新在 nixpkgs-unstable 中了吗??)。
$ nixpkgs-track 370713
[370713] helix: 24.07 -> 25.01
Merged 3 days 23 hours 9 minutes and 3 seconds ago (2025-01-03T21:58:20+00:00), 1 hour 18 minutes and 54 seconds after creation.
master: ✅
staging: ✅
staging-next: ✅
nixpkgs-unstable: ✅
nixos-unstable-small: ✅
nixos-unstable: ✅
安装
Nix
nixpkgs-track 可从 Nixpkgs 获取。
nix run nixpkgs#nixpkgs-track
Cargo
cargo install nixpkgs-track
用法
跟踪拉取请求的最简单方式如下:
nixpkgs-track <PULL_REQUEST>
其中 PULL_REQUEST 是要跟踪的拉取请求的数值 ID 或 GitHub URL。例如,370713 和 https://github.com/NixOS/nixpkgs/pull/370713 都是对 github.com/NixOS/nixpkgs/pull/370713 的有效引用。
[!TIP] 根据使用情况(在几分钟内跟踪多个/许多拉取请求),您可能需要提供 GitHub API 令牌以避免未认证请求的速率限制。nixpkgs-track 会自动检测
gh命令行工具,并在可用时尝试使用gh auth token获取 GitHub 令牌。否则,可以通过GITHUB_TOKEN环境变量或--token选项提供令牌。
nixpkgs-track 还支持保存一个拉取请求列表,以便将来检查。
add <PULL_REQUESTS...>
将指定的拉取请求添加到列表中。
remove [<PULL_REQUESTS...> | --all | --interactive]
从列表中移除指定的拉取请求。使用 --all 从列表中移除所有拉取请求。使用 --interactive 交互式地从列表中移除拉取请求。
list
列出已跟踪的拉取请求及其元数据。
check
检查每个被跟踪的拉取请求。相当于对列表中的每个拉取请求运行 nixpkgs-track <PULL_REQUEST>。
Library
此 crate 还为其他程序导出一个简单的库接口。这可以在 crates.io 上作为 nixpkgs-track_lib 获取。
两个主要函数是 nixpkgs_track_lib::fetch_nixpkgs_pull_request,用于从 GitHub API 获取拉取请求数据,以及 nixpkgs_track_lib::branch_contains_commit,用于检查提交 SHA(例如来自已合并的拉取请求:PullRequest.merge_commit_sha)是否存在于 GitHub 上指定的分支中。
用于命令行接口的实现可以在 crates/nixpkgs-track/src/main.rs 中找到,位于 check 函数下。另请参阅 @isabelroses 的 Blåhaj bot for Discord 的 src/commands/misc/nixpkgs.rs。
License & Credit
nixpkgs-track 最初是作为 Alyssa Ross 的 Nixpkgs Pull Request Tracker 网站的一个本地且可靠的 CLI 替代品创建的,并基于 getchoo/nixpkgs-tracker-bot。不过目前,nixpkgs-track 主要派生自最近的 ocfox/nixpkgs-tracker 项目。