#cli #pull-request #nix

bin+lib nixpkgs-track

Track where Nixpkgs pull requests have reached

3 releases (breaking)

new 0.3.0 May 23, 2025
0.2.0 Jan 7, 2025
0.1.0 Aug 19, 2024

#1708 in Command line utilities

Download history 29/week @ 2025-02-08 26/week @ 2025-02-15 17/week @ 2025-02-22 3/week @ 2025-03-01 1/week @ 2025-04-12 1/week @ 2025-04-19 2/week @ 2025-05-10 58/week @ 2025-05-17

63 downloads per month

MIT license

28KB
444 lines

nixpkgs-track

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:

Installation

Nix

nixpkgs-track is available in Nixpkgs.

nix run nixpkgs#nixpkgs-track

Cargo

cargo install nixpkgs-track

Usage

The simplest way to track a pull request is like so:

nixpkgs-track <PULL_REQUEST>

Where PULL_REQUEST is either the numerical ID or the GitHub URL of the pull request to track. For example, both 370713 and https://github.com/NixOS/nixpkgs/pull/370713 are valid references to github.com/NixOS/nixpkgs/pull/370713.

[!TIP] Depending on usage, you may need to provide a GitHub API token to avoid rate-limiting. This can be done with the --token option or GITHUB_TOKEN environment variable if necessary.

nixpkgs-track also supports saving a list of pull requests to check in the future.

add <PULL_REQUESTS...>

Add specified pull request(s) to the list.

remove [<PULL_REQUESTS...> | --all]

Remove specified pull request(s) from the list. Remove all pull requests from the list with --all.

list

List tracked pull requests and their metadata.

check

Check each tracked pull request. Equivalent to running nixpkgs-track <PULL_REQUEST> for each pull request in the list.

Library

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.

License & Credit

nixpkgs-track was originally created as a local and reliable CLI alternative to Alyssa Ross's Nixpkgs Pull Request Tracker website and based on getchoo/nixpkgs-tracker-bot. Currently though, nixpkgs-track is primarily derived from the recent ocfox/nixpkgs-tracker project.

MIT

Dependencies

~13–25MB
~357K SLoC