Find a file
Patrick 71547ae3ab
fix: html newline
fix: pr number templating
2024-07-19 23:21:54 +02:00
LICENSES Initial commit 2021-02-17 15:16:29 +00:00
src fix: html newline 2024-07-19 23:21:54 +02:00
templates WIP: interface und documentation 2024-07-18 12:31:14 +02:00
vendor Initial commit 2021-02-17 15:16:29 +00:00
.editorconfig .editorconfig: set max_line_length for README 2021-05-22 11:20:45 +00:00
.envrc feat(flake): add flake 2024-07-13 22:37:31 +02:00
.gitignore feat(flake): add flake 2024-07-13 22:37:31 +02:00
.pre-commit-config.yaml feat(flake): add flake 2024-07-13 22:37:31 +02:00
build.rs Initial commit 2021-02-17 15:16:29 +00:00
Cargo.lock feat: allow unsubscribing 2024-07-18 01:03:05 +02:00
Cargo.lock.license Initial commit 2021-02-17 15:16:29 +00:00
Cargo.toml feat: allow unsubscribing 2024-07-18 01:03:05 +02:00
deny.toml deny.toml: add clarification of encoding_rs license 2022-02-16 17:17:33 +00:00
flake.lock feat(flake): add flake 2024-07-13 22:37:31 +02:00
flake.nix feat(flake): add flake 2024-07-13 22:37:31 +02:00
Makefile Initial commit 2021-02-17 15:16:29 +00:00
NEWS Version 1.4.0 2023-11-18 14:06:29 +01:00
README WIP: interface und documentation 2024-07-18 12:31:14 +02:00
README.license README.license: add missing date 2021-05-24 13:25:58 +00:00

pr-tracker
==========

Run a web server that displays the path a Nixpkgs pull request will
take through the various release channels.  An instance is available
at the time of writing at <https://nixpk.gs/pr-tracker.html>.


Installation
------------

Build and runtime dependencies:
 - libsystemd
 - OpenSSL

Other build dependencies:
 - Cargo
 - rustc
 - pkg-config

Other runtime dependencies:
 - Git

In most cases, installation should be as simple as

	make install


Usage
-----

The program must be supplied with a local checkout of the monitored
git repository, the remote name in the repository corresponding to
upstream Nixpkgs and a User-Agent string to use when contacting the
GitHub API. Optionally, a "mount" path can be specified, which will be
prefixed to all of the server's routes, so that it can be served at a
non-root HTTP path.

For example:

	pr-tracker \
		--path /var/lib/nixpkgs.git \
		--remote nixpkgs \
		--user-agent 'pr-tracker (alyssais)' \
		--mount pr-tracker

Additionally, a GitHub API token should be supplied on pr-tracker's
standard input.

pr-tracker expects the socket(s) for it to listen on to be set up for
it by a service supervisor, using the systemd socket activation
protocol.  It does not support binding its own sockets.  To run
outside of a systemd unit, you can use systemd-socket-activate:

	systemd-socket-activate -l 0.0.0.0:8000 pr-tracker [...]

Further information on available command line arguments can be
obtained with

	pr-tracker --help


Development
-----------

The upstream git repository for pr-tracker is available at
<https://git.qyliss.net/pr-tracker/>.

Bugs and patches can be sent to the author,
Alyssa Ross <hi@alyssa.is>.

For information about how to use git to send a patch email, see
<https://git-send-email.io/>.


License
-------

Copyright 2021 Alyssa Ross <hi@alyssa.is>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation; either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public
License along with this program; if not, see
<https://www.gnu.org/licenses>.

Additional permission under GNU AGPL version 3 section 7

If you modify this Program, or any covered work, by linking or
combining it with OpenSSL (or a modified version of that library),
containing parts covered by the terms of the OpenSSL License, or the
Original SSLeay License, the licensors of this Program grant you
additional permission to convey the resulting work.