Track where Nixpkgs pull requests have reached (is that update in nixpkgs-unstable
yet??).
$ 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: ✅
Originally created as a local and reliable CLI alternative to Alyssa Ross's Nixpkgs Pull Request Tracker website and based by getchoo/nixpkgs-tracker-bot. However, nixpkgs-track is now primarily based on the recent ocfox/nixpkgs-tracker project, solely using GitHub's API.
nix run github:uncenter/nixpkgs-track
Install from crates.io (recommended):
cargo install nixpkgs-track
Or directly from the Git source:
cargo install --git https://github.com/uncenter/nixpkgs-track.git
The simplest way to track a pull request is like so:
nixpkgs-track <PULL_REQUEST>
Where PULL_REQUEST
is the numerical ID of the pull request to track, such as 370713
for github.com/NixOS/nixpkgs/pull/370713.
Tip
Provide a GitHub API token with the --token
option or set it in the GITHUB_TOKEN
environment variable to avoid rate-limiting.
nixpkgs-track also supports saving a list of pull requests to check later on.
Add specified pull request(s) to the list.
Remove specified pull request(s) from the list. Remove all pull requests from the list with --all
.
List tracked pull requests and their metadata.
Check each tracked pull request. Equivalent to running nixpkgs-track <PULL_REQUEST>
for each pull request in the list.
This crate also exports a simple library interface for other programs. This is available as nixpkgs-track_lib
on crates.io.
The two primary functions are nixpkgs_track_lib::fetch_nixpkgs_pull_request
for fetching pull request data from the GitHub API, and nixpkgs_track_lib::branch_contains_commit
for checking if a commit SHA (such as from a merged pull request: PullRequest.merge_commit_sha
) is present in a specified branch on GitHub.
The implementation used for the command line interface can be found at crates/nixpkgs-track/src/main.rs
, under the check
function. See also src/commands/misc/nixpkgs.rs
of @isabelroses's Blåhaj bot for Discord.