21 Commits

Author SHA1 Message Date
3064d0231c Simplify printing
All checks were successful
test / test (pull_request) Successful in 36s
build / build (pull_request) Successful in 2m53s
2024-10-10 00:59:43 +02:00
5c73d55d91 Run ruff format
All checks were successful
test / test (push) Successful in 34s
build / build (push) Successful in 2m2s
2024-10-09 22:29:14 +02:00
9e70fc25d4 Update README
Some checks failed
test / test (push) Successful in 33s
build / build (push) Has been cancelled
2024-10-09 22:27:27 +02:00
63ee619aef Merge branch '16-watchlist'
Some checks failed
test / test (push) Successful in 33s
build / build (push) Has been cancelled
2024-10-09 22:25:48 +02:00
06abde6f6f Add watchlist command
All checks were successful
test / test (pull_request) Successful in 34s
build / build (pull_request) Successful in 2m3s
2024-10-09 22:21:28 +02:00
99e0887505 Limit package source using sourceFilesBySuffices
All checks were successful
test / test (push) Successful in 35s
build / build (push) Successful in 2m0s
2024-10-09 21:14:32 +02:00
4bc78716ee Merge pull request 'Update README' (#15) from 14-readme into master
All checks were successful
test / test (push) Successful in 33s
build / build (push) Successful in 2m4s
Reviewed-on: #15
2024-10-07 20:07:29 +00:00
a27f88a62b Update README
All checks were successful
test / test (pull_request) Successful in 39s
build / build (pull_request) Successful in 2m1s
2024-10-07 22:04:13 +02:00
2d94c8b561 Disable rich markup
All checks were successful
test / test (push) Successful in 37s
build / build (push) Successful in 1m52s
2024-10-07 17:16:25 +02:00
b4b2b2ec5d Merge pull request 'Don't check merge base branch' (#13) from 10-no-recheck-master into master
All checks were successful
test / test (push) Successful in 53s
build / build (push) Successful in 2m22s
Reviewed-on: #13
2024-10-07 14:39:35 +00:00
ec8e3e491e Don't check merge base branch
All checks were successful
test / test (pull_request) Successful in 51s
build / build (pull_request) Successful in 2m9s
2024-10-07 16:32:49 +02:00
2245698405 Merge pull request 'Add title to output' (#12) from 11-title into master
Some checks failed
test / test (push) Successful in 38s
build / build (push) Failing after 14m37s
Reviewed-on: #12
2024-10-07 14:07:30 +00:00
9ee3ec2018 Add title to pr command output
All checks were successful
test / test (pull_request) Successful in 53s
build / build (pull_request) Successful in 2m11s
2024-10-07 16:02:45 +02:00
356da4d8ec Merge pull request 'Backport checking' (#9) from 8-backport into master
Some checks failed
test / test (push) Successful in 38s
build / build (push) Failing after 13m51s
2024-10-06 23:53:18 +00:00
b40d4958f0 Check for backports if pr has label
Some checks failed
test / test (pull_request) Successful in 37s
build / build (pull_request) Failing after 11m22s
2024-10-07 01:50:22 +02:00
9b8ef2cade Limit workflow to master
All checks were successful
test / test (push) Successful in 35s
build / build (push) Successful in 2m4s
2024-10-06 19:47:33 +02:00
e3cbf3e9b9 Merge pull request 'Add since command' (#7) from 6-commits-since into master
Some checks are pending
build / build (push) Waiting to run
test / test (push) Successful in 36s
Reviewed-on: #7
2024-10-06 17:44:54 +00:00
de64f73c46 Add since command
All checks were successful
test / test (push) Successful in 1m7s
build / build (push) Successful in 2m21s
test / test (pull_request) Successful in 47s
build / build (pull_request) Successful in 2m21s
2024-10-06 19:39:42 +02:00
670c6c738e Add commits-since function 2024-10-06 19:34:11 +02:00
774cec521e Merge pull request 'Make test workflow' (#4) from 3-test-workflow into master
Some checks failed
build / build (push) Failing after 13m18s
test / test (push) Failing after 12m50s
Reviewed-on: #4
2024-10-06 00:13:47 +00:00
db2481002a Add test workflow
All checks were successful
test / test (push) Successful in 1m25s
build / build (push) Successful in 2m40s
test / test (pull_request) Successful in 58s
build / build (pull_request) Successful in 2m24s
2024-10-06 02:08:20 +02:00
19 changed files with 26029 additions and 55 deletions

View File

@@ -1,7 +1,10 @@
name: build
on:
push:
branches: master
pull_request:
branches:
- master
jobs:
build:

21
.github/workflows/test.yaml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: test
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
test:
runs-on: ubuntu-latest
container:
image: ghcr.io/catthehacker/ubuntu:runner-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: pipx run poetry -- install
- run: pipx run poetry -- run python -m unittest discover -s tests -v

View File

@@ -5,15 +5,27 @@ Nixpkgs PR status checker.
## Example
```console
$ nixprstatus 345501
$ nixprstatus pr 345501
ktailctl: 0.18.0 -> 0.18.1
✅ merged
✅ master
nixos-unstable-small
nixos-unstable
nixos-unstable-small
nixos-unstable
❌ nixos-24.05
$ nixprstatus --help
Usage: python -m nixprstatus [OPTIONS] COMMAND [ARGS]...
Options:
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to copy it or
customize the installation.
--help Show this message and exit.
Commands:
pr Get merge status of pull request.
since Return the count of commits that has happened between the...
watchlist Manage watchlist.
```
## TODO
* Support backported commits
* JSON output

View File

@@ -32,7 +32,12 @@
{
packages = {
nixprstatus = mkPoetryApplication {
projectDir = ./.;
projectDir = pkgs.lib.sourceFilesBySuffices ./. [
"pyproject.toml"
"poetry.lock"
"README.md"
".py"
];
python = pkgs.python312;
nativeBuildInputs = [ pkgs.installShellFiles ];
postInstall = ''

View File

@@ -1,9 +1,14 @@
import typer
import json
from typing import Annotated
from rich.console import Console
from nixprstatus.pr import pr_merge_status
from nixprstatus.pr import commits_since
from nixprstatus.watchlist import Watchlist
from nixprstatus.watchlist import OutputFormat
app = typer.Typer()
app = typer.Typer(rich_markup_mode=None)
watchlist_app = typer.Typer()
app.add_typer(watchlist_app, name="watchlist", help="Manage watchlist.")
DEFAULT_HEADERS = {
"Accept": "application/vnd.github.text+json",
@@ -18,24 +23,65 @@ def pr(
branches: Annotated[
list[str] | None, typer.Option(help="Check specific branch")
] = None,
format: Annotated[
OutputFormat, typer.Option(help="Output format")
] = OutputFormat.CONSOLE,
):
"""Get status of pull request"""
console = Console()
"""Get merge status of pull request."""
if branches:
status = pr_merge_status(pr, branches)
else:
status = pr_merge_status(pr)
merged = ":white_check_mark: merged" if status.merged else ":x: merged"
console.print(merged, highlight=False)
for branch in status.branches:
output = (
f":white_check_mark: {branch}"
if status.branches[branch]
else f":x: {branch}"
)
console.print(output, highlight=False)
status.print(format=format)
@app.command()
def since(
commit_sha: str,
target: str = "nixos-unstable",
waybar_format: Annotated[
bool, typer.Option(help="Output in format expected by waybar")
] = False,
):
"""
Return the count of commits that has happened between the two refs.
"""
count = commits_since(target, commit_sha)
if waybar_format:
output = {"text": str(count), "tooltip": f"{target}: {count}"}
typer.echo(json.dumps(output))
return
typer.echo(count)
@watchlist_app.command()
def list(watchlist: str | None = None, format: OutputFormat = OutputFormat.CONSOLE):
"""List PRs in watchlist."""
wl = Watchlist.from_file(path=watchlist)
wl.print(format=format)
@watchlist_app.command()
def add(pr: int, watchlist: str | None = None):
"""Add PR to watchlist."""
wl = Watchlist.from_file(path=watchlist)
info = wl.add_pr(pr)
wl.to_file(path=watchlist)
print(f"Added #{info.pr}: {info.title} to watchlist.")
@watchlist_app.command()
def remove(pr: int):
"""Remove PR from watchlist."""
wl = Watchlist.from_file()
if pr not in wl:
print(f"#{pr} not in watchlist.")
return
wl.remove(pr)
wl.to_file()
print(f"Removed #{pr} from watchlist.")
def main():

6
nixprstatus/output.py Normal file
View File

@@ -0,0 +1,6 @@
from enum import Enum
class OutputFormat(str, Enum):
CONSOLE = "console"
JSON = "json"

View File

@@ -1,16 +1,41 @@
import requests
from pydantic import BaseModel
from rich.console import Console
from nixprstatus.output import OutputFormat
DEFAULT_HEADERS = {
"Accept": "application/vnd.github.text+json",
}
DEFAULT_BRANCHES = ["master", "nixos-unstable-small", "nixos-unstable", "nixos-24.05"]
BACKPORT_LABEL = "backport release-24.05"
class PRStatus(BaseModel):
title: str
merged: bool
branches: dict[str, bool]
def print(self, format: OutputFormat = OutputFormat.CONSOLE):
match format:
case OutputFormat.JSON:
print(self.model_dump_json())
case OutputFormat.CONSOLE:
console = Console(highlight=False)
console.print(f"{self.title}\n")
merged = ":white_check_mark: merged" if self.merged else ":x: merged"
console.print(merged)
for branch in self.branches:
output = (
f":white_check_mark: {branch}"
if self.branches[branch]
else f":x: {branch}"
)
console.print(output)
case _:
raise ValueError(f"Unknown format: {format}")
def commit_in_branch(commit_sha: str, branch: str) -> bool:
url = f"https://api.github.com/repos/NixOS/nixpkgs/compare/{branch}...{commit_sha}"
@@ -23,23 +48,82 @@ def commit_in_branch(commit_sha: str, branch: str) -> bool:
return False
def pr_merge_status(pr: int, branches: list[str] = DEFAULT_BRANCHES) -> PRStatus:
def commits_since(first_ref: str, last_ref: str) -> int:
url = f"https://api.github.com/repos/NixOS/nixpkgs/compare/{first_ref}...{last_ref}"
commit_response = requests.get(url, headers=DEFAULT_HEADERS)
commit_response.raise_for_status()
return commit_response.json()["behind_by"]
def get_pr(pr: int) -> dict:
url = f"https://api.github.com/repos/NixOS/nixpkgs/pulls/{pr}"
pr_response = requests.get(url, headers=DEFAULT_HEADERS)
pr_response.raise_for_status()
return pr_response.json()
def pr_merge_status(
pr: int, branches: list[str] = DEFAULT_BRANCHES, check_backport: bool = True
) -> PRStatus:
url = f"https://api.github.com/repos/NixOS/nixpkgs/pulls/{pr}"
pr_response = requests.get(url, headers=DEFAULT_HEADERS)
pr_response.raise_for_status()
pr_data = pr_response.json()
title = pr_data["title"]
merged = pr_data["merged"]
if merged is False:
return PRStatus(merged=False, branches={branch: False for branch in branches})
return PRStatus(
title=title, merged=False, branches={branch: False for branch in branches}
)
commit_sha = pr_data.get("merge_commit_sha")
# Check for backport label
has_backport_label = BACKPORT_LABEL in [
label.get("name") for label in pr_data["labels"]
]
results = {}
# Check if base branch is in our list, if it is
# no need to call commit_in_branch
merge_base_branch = pr_data.get("base", {}).get("ref")
if merge_base_branch in branches:
results[merge_base_branch] = True
branches.remove(merge_base_branch)
for branch in branches:
in_branch = commit_in_branch(commit_sha, branch)
results[branch] = in_branch
return PRStatus(merged=True, branches=results)
if check_backport and has_backport_label and "nixos-24.05" in branches:
# Check comments for message about backport
comment_url = f"https://api.github.com/repos/NixOS/nixpkgs/issues/{pr}/comments"
comment_response = requests.get(comment_url, headers=DEFAULT_HEADERS)
comment_response.raise_for_status()
for comment in comment_response.json():
body = comment.get("body_text", "")
if "Successfully created backport PR" in body:
backport_pr = body.split("\n")[-1].replace("#", "")
# Check if backport pr has been merged
backport_url = (
f"https://api.github.com/repos/NixOS/nixpkgs/pulls/{backport_pr}"
)
backport_response = requests.get(backport_url, headers=DEFAULT_HEADERS)
backport_sha = backport_response.json().get("merge_commit_sha")
if backport_sha is None:
results[f"nixos-24.05 (#{backport_pr})"] = False
return PRStatus(title=title, merged=True, branches=results)
results.pop("nixos-24.05")
results[f"nixos-24.05 (#{backport_pr})"] = commit_in_branch(
backport_sha, "nixos-24.05"
)
return PRStatus(title=title, merged=True, branches=results)

88
nixprstatus/watchlist.py Normal file
View File

@@ -0,0 +1,88 @@
import json
import os
from pathlib import Path
from pydantic import BaseModel
from rich.console import Console
from nixprstatus.pr import get_pr
from nixprstatus.output import OutputFormat
class PRInfo(BaseModel):
pr: int
title: str
class Watchlist(BaseModel):
prs: list[PRInfo]
@classmethod
def from_file(cls, path: str | None = None) -> "Watchlist":
if not path:
path = _default_path()
p = Path(path).expanduser()
if not p.exists():
return cls(prs=[])
with open(p, "r") as f:
data = json.load(f)
return cls(**data)
def to_file(self, path: str | None = None):
if not path:
_ensure_default_path()
path = _default_path()
p = Path(path).expanduser()
with open(p, "w") as f:
f.write(self.model_dump_json())
def add_pr(self, pr: int) -> PRInfo:
# Lookup PR info
info = get_pr(pr)
title = info["title"]
info = PRInfo(pr=pr, title=title)
self.prs.append(info)
return info
def remove(self, pr: int):
self.prs = [p for p in self.prs if p.pr != pr]
def print(self, format: OutputFormat = OutputFormat.CONSOLE):
match format:
case OutputFormat.CONSOLE:
console = Console()
for pr in self.prs:
console.print(f"{pr.pr}: {pr.title}")
case OutputFormat.JSON:
print(self.model_dump_json())
case _:
raise ValueError(f"Unknown format: {format}")
def pr(self, pr: int) -> PRInfo | None:
for p in self.prs:
if p.pr == pr:
return p
return None
def __contains__(self, item: PRInfo | int):
match item:
case PRInfo():
return any([x == item for x in self.prs])
case int():
return any([x.pr == item for x in self.prs])
def _default_path() -> str:
if "XDG_STATE_HOME" in os.environ:
return f"{os.environ['XDG_STATE_HOME']}/nixprstatus/watchlist.json"
return "~/.config/nixprstatus/watchlist.json"
def _ensure_default_path():
p = Path(_default_path()).expanduser()
p.parent.mkdir(parents=True, exist_ok=True)

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "nixprstatus"
version = "0.1.1"
version = "0.1.5"
description = "Nixpkgs PR status checker"
authors = ["Torjus Håkestad <torjus@usit.uio.no>"]
license = "MIT"

0
tests/__init__.py Normal file
View File

177
tests/fixtures/comments_345769.json vendored Normal file
View File

@@ -0,0 +1,177 @@
[
{
"url": "https://api.github.com/repos/NixOS/nixpkgs/issues/comments/2388655041",
"html_url": "https://github.com/NixOS/nixpkgs/pull/345769#issuecomment-2388655041",
"issue_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/345769",
"id": 2388655041,
"node_id": "IC_kwDOAEVQ_M6OX_vB",
"user": {
"login": "mweinelt",
"id": 131599,
"node_id": "MDQ6VXNlcjEzMTU5OQ==",
"avatar_url": "https://avatars.githubusercontent.com/u/131599?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mweinelt",
"html_url": "https://github.com/mweinelt",
"followers_url": "https://api.github.com/users/mweinelt/followers",
"following_url": "https://api.github.com/users/mweinelt/following{/other_user}",
"gists_url": "https://api.github.com/users/mweinelt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mweinelt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mweinelt/subscriptions",
"organizations_url": "https://api.github.com/users/mweinelt/orgs",
"repos_url": "https://api.github.com/users/mweinelt/repos",
"events_url": "https://api.github.com/users/mweinelt/events{/privacy}",
"received_events_url": "https://api.github.com/users/mweinelt/received_events",
"type": "User",
"site_admin": false
},
"created_at": "2024-10-02T13:31:48Z",
"updated_at": "2024-10-02T13:31:48Z",
"author_association": "MEMBER",
"body_text": "@ofborg build firefox-unwrapped.tests",
"reactions": {
"url": "https://api.github.com/repos/NixOS/nixpkgs/issues/comments/2388655041/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"performed_via_github_app": null
},
{
"url": "https://api.github.com/repos/NixOS/nixpkgs/issues/comments/2389811254",
"html_url": "https://github.com/NixOS/nixpkgs/pull/345769#issuecomment-2389811254",
"issue_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/345769",
"id": 2389811254,
"node_id": "IC_kwDOAEVQ_M6OcaA2",
"user": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"created_at": "2024-10-02T22:45:02Z",
"updated_at": "2024-10-02T22:45:02Z",
"author_association": "CONTRIBUTOR",
"body_text": "Successfully created backport PR for `release-24.05`:\n\n#346022",
"reactions": {
"url": "https://api.github.com/repos/NixOS/nixpkgs/issues/comments/2389811254/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"performed_via_github_app": {
"id": 15368,
"client_id": "Iv1.05c79e9ad1f6bdfa",
"slug": "github-actions",
"node_id": "MDM6QXBwMTUzNjg=",
"owner": {
"login": "github",
"id": 9919,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
"avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github",
"html_url": "https://github.com/github",
"followers_url": "https://api.github.com/users/github/followers",
"following_url": "https://api.github.com/users/github/following{/other_user}",
"gists_url": "https://api.github.com/users/github/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github/subscriptions",
"organizations_url": "https://api.github.com/users/github/orgs",
"repos_url": "https://api.github.com/users/github/repos",
"events_url": "https://api.github.com/users/github/events{/privacy}",
"received_events_url": "https://api.github.com/users/github/received_events",
"type": "Organization",
"site_admin": false
},
"name": "GitHub Actions",
"description": "Automate your workflow from idea to production",
"external_url": "https://help.github.com/en/actions",
"html_url": "https://github.com/apps/github-actions",
"created_at": "2018-07-30T09:30:17Z",
"updated_at": "2024-04-10T20:33:16Z",
"permissions": {
"actions": "write",
"administration": "read",
"attestations": "write",
"checks": "write",
"contents": "write",
"deployments": "write",
"discussions": "write",
"issues": "write",
"merge_queues": "write",
"metadata": "read",
"packages": "write",
"pages": "write",
"pull_requests": "write",
"repository_hooks": "write",
"repository_projects": "write",
"security_events": "write",
"statuses": "write",
"vulnerability_alerts": "read"
},
"events": [
"branch_protection_rule",
"check_run",
"check_suite",
"create",
"delete",
"deployment",
"deployment_status",
"discussion",
"discussion_comment",
"fork",
"gollum",
"issues",
"issue_comment",
"label",
"merge_group",
"milestone",
"page_build",
"project",
"project_card",
"project_column",
"public",
"pull_request",
"pull_request_review",
"pull_request_review_comment",
"push",
"registry_package",
"release",
"repository",
"repository_dispatch",
"status",
"watch",
"workflow_dispatch",
"workflow_run"
]
}
}
]

View File

@@ -0,0 +1,186 @@
{
"url": "https://api.github.com/repos/NixOS/nixpkgs/compare/nixos-24.05...1e6376619b9192dc7603e07d7187572c45048dd7",
"html_url": "https://github.com/NixOS/nixpkgs/compare/nixos-24.05...1e6376619b9192dc7603e07d7187572c45048dd7",
"permalink_url": "https://github.com/NixOS/nixpkgs/compare/NixOS:ecbc1ca...NixOS:1e63766",
"diff_url": "https://github.com/NixOS/nixpkgs/compare/nixos-24.05...1e6376619b9192dc7603e07d7187572c45048dd7.diff",
"patch_url": "https://github.com/NixOS/nixpkgs/compare/nixos-24.05...1e6376619b9192dc7603e07d7187572c45048dd7.patch",
"base_commit": {
"sha": "ecbc1ca8ffd6aea8372ad16be9ebbb39889e55b6",
"node_id": "C_kwDOAEVQ_NoAKGVjYmMxY2E4ZmZkNmFlYTgzNzJhZDE2YmU5ZWJiYjM5ODg5ZTU1YjY",
"commit": {
"author": {
"name": "OTABI Tomoya",
"email": "tomoya.otabi@gmail.com",
"date": "2024-10-06T05:47:56Z"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2024-10-06T05:47:56Z"
},
"message": "[Backport release-24.05] brave: 1.70.119 -> 1.70.123 (#346428)",
"tree": {
"sha": "f0b5ae7d234fd6c2d86f5603b4522f2ba74eda5b",
"url": "https://api.github.com/repos/NixOS/nixpkgs/git/trees/f0b5ae7d234fd6c2d86f5603b4522f2ba74eda5b"
},
"url": "https://api.github.com/repos/NixOS/nixpkgs/git/commits/ecbc1ca8ffd6aea8372ad16be9ebbb39889e55b6",
"comment_count": 0,
"verification": {
"verified": true,
"reason": "valid",
"signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJnAiSMCRC1aQ7uu5UhlAAA0TYQAKRPy/FYu1l+CaEVlEayD+7E\ngFboJbXErmlX5/5lmwW/J3VQb2t3wlhlP5R82Utb66Gucy49vSbKcWAC3DgAT0fG\n2UOozKXq6bAJ+tzBPX/lFNNJHYmTFN3uGifkP+cHZdh7CE0EHH8IFE7rWOfYSMpK\n7Syjl1DsJ72j6ZNdWB3c1J4jCnGQKJRtgJI5yw7feqt6MYVUNLIENuo/RZHZtEF8\nCLZwx9a950pXPLUAH3HyTnoV76H9wC2ahWGUq3Mum/Cdf3WqPi0nuw+rqtjQvvCh\nK1cuS/wOlSTPqVt9S1U4GgUIdE1u82o2Zkxm/b8hOAxBNNg7nCf8RYyITL3gkubc\nIM4UgiOxL/ybpsYmNZ7zzpi8z1N28SrbGlfVG0Zp/7asniKCe/uJoXTQlxR+2GsN\nTld9B272Ttvrnyfokb05+DbTqEPV7NEG7HzXRIKcIYvcP0QdFFYch893n/t1fbFP\niOyqV3FJB68Dcjsr35zqQBPMcGNUtoo2hQFbmCZV3xYWKRfgUD6RnP+oFyIqrw5s\ne1WBwaiAbVnlCACkugGSXNF8s563cHauQkJi7553o75hqXsE8ezHCW12C4OUAQM8\nIspE3A8C/yC137IdAz3L/CpG6Qdp11AZQ1EG0oO0v7TtxQQHR3cBEUTO1vknG5iV\nuWuPBHuc5atQWRe2eVco\n=gGAX\n-----END PGP SIGNATURE-----\n",
"payload": "tree f0b5ae7d234fd6c2d86f5603b4522f2ba74eda5b\nparent 17ae88b569bb15590549ff478bab6494dde4a907\nparent d4eb7924598b8bd830e85c93aeb6aa7c5294de9a\nauthor OTABI Tomoya <tomoya.otabi@gmail.com> 1728193676 +0900\ncommitter GitHub <noreply@github.com> 1728193676 +0900\n\n[Backport release-24.05] brave: 1.70.119 -> 1.70.123 (#346428)\n\n"
}
},
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/ecbc1ca8ffd6aea8372ad16be9ebbb39889e55b6",
"html_url": "https://github.com/NixOS/nixpkgs/commit/ecbc1ca8ffd6aea8372ad16be9ebbb39889e55b6",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/commits/ecbc1ca8ffd6aea8372ad16be9ebbb39889e55b6/comments",
"author": {
"login": "natsukium",
"id": 25083790,
"node_id": "MDQ6VXNlcjI1MDgzNzkw",
"avatar_url": "https://avatars.githubusercontent.com/u/25083790?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/natsukium",
"html_url": "https://github.com/natsukium",
"followers_url": "https://api.github.com/users/natsukium/followers",
"following_url": "https://api.github.com/users/natsukium/following{/other_user}",
"gists_url": "https://api.github.com/users/natsukium/gists{/gist_id}",
"starred_url": "https://api.github.com/users/natsukium/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/natsukium/subscriptions",
"organizations_url": "https://api.github.com/users/natsukium/orgs",
"repos_url": "https://api.github.com/users/natsukium/repos",
"events_url": "https://api.github.com/users/natsukium/events{/privacy}",
"received_events_url": "https://api.github.com/users/natsukium/received_events",
"type": "User",
"site_admin": false
},
"committer": {
"login": "web-flow",
"id": 19864447,
"node_id": "MDQ6VXNlcjE5ODY0NDQ3",
"avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/web-flow",
"html_url": "https://github.com/web-flow",
"followers_url": "https://api.github.com/users/web-flow/followers",
"following_url": "https://api.github.com/users/web-flow/following{/other_user}",
"gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
"starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
"organizations_url": "https://api.github.com/users/web-flow/orgs",
"repos_url": "https://api.github.com/users/web-flow/repos",
"events_url": "https://api.github.com/users/web-flow/events{/privacy}",
"received_events_url": "https://api.github.com/users/web-flow/received_events",
"type": "User",
"site_admin": false
},
"parents": [
{
"sha": "17ae88b569bb15590549ff478bab6494dde4a907",
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/17ae88b569bb15590549ff478bab6494dde4a907",
"html_url": "https://github.com/NixOS/nixpkgs/commit/17ae88b569bb15590549ff478bab6494dde4a907"
},
{
"sha": "d4eb7924598b8bd830e85c93aeb6aa7c5294de9a",
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/d4eb7924598b8bd830e85c93aeb6aa7c5294de9a",
"html_url": "https://github.com/NixOS/nixpkgs/commit/d4eb7924598b8bd830e85c93aeb6aa7c5294de9a"
}
]
},
"merge_base_commit": {
"sha": "1e6376619b9192dc7603e07d7187572c45048dd7",
"node_id": "C_kwDOAEVQ_NoAKDFlNjM3NjYxOWI5MTkyZGM3NjAzZTA3ZDcxODc1NzJjNDUwNDhkZDc",
"commit": {
"author": {
"name": "Martin Weinelt",
"email": "mweinelt@users.noreply.github.com",
"date": "2024-10-04T00:25:13Z"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2024-10-04T00:25:13Z"
},
"message": "[Backport release-24.05] Firefox: 130.0.1 -> 131.0; 128.2.0esr -> 128.3.0esr; 115.15.0esr -> 115.16.0esr (#346022)",
"tree": {
"sha": "ca267bfaced108f8b846f36b4222f50bcbea132e",
"url": "https://api.github.com/repos/NixOS/nixpkgs/git/trees/ca267bfaced108f8b846f36b4222f50bcbea132e"
},
"url": "https://api.github.com/repos/NixOS/nixpkgs/git/commits/1e6376619b9192dc7603e07d7187572c45048dd7",
"comment_count": 0,
"verification": {
"verified": true,
"reason": "valid",
"signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJm/zXpCRC1aQ7uu5UhlAAAwfYQAKQ+YS049CLiRZX5L6663sip\nQ0lB49M6NgX6cx/uzDP2wkNdPZ+Ft/76Fngki9B3UBvJsdfgYsWMZ0L8lNCJPV5v\n65FCH0yzbwHz2gCgE2dTPMbd1qQGFaO1rSqksmLlovoA5NTHLrkoN7PEdNt97YQm\nvsJKHNAMzBgwmdom7OyxcBQfAmvNT4nijFqDW0AJ8VzS72EYW2il0S/uVzK2EE0k\nZdVX+oK2pYYYwaWchPofOalDLgXY5dteqNU7cQRdSI1saxoFbXVyLqo2N/lSm4/b\nv9+Uwwycjl7FyRCwucWXVBuMbbDsJW68xHSg060HbxBUEL3os8CleTiRWcXVa64d\nc619UC4/PQM+7pQFhOvATVBX+jWe508PQX5RCWIzQJWoOu+xcBbNeSImstM6jFWB\nDhKRYGM56+nPH+WRliTK6w07KAOhYMFDRAGHbUm3x5L03oqXowVjYx9UfdFBeNqW\noeETR77F6zfH/lBcW68JQMWM4ZG/sCo4HM81DY4vR99EPNKOPKNycjmV2Jb3WHRN\nO1DSmEeiCt7lgeuGmvIOXA5Z+QvAEGv8ZWRZ/K276GuK9kePh6xbu0ntAXRvy5iw\n/f426Ikzy7UM/yEL7458jrhyyqHlxiOXm+B+TSwbNSjLXHJdH5Ap3seIQjdo+num\nTWeoCrlH/oi+Tv83Iiye\n=G4zI\n-----END PGP SIGNATURE-----\n",
"payload": "tree ca267bfaced108f8b846f36b4222f50bcbea132e\nparent 0799dfba72420acad00f6c6b643e42f14589da6f\nparent 0010c39a77012492a1602258ad8e3fd5e9377bf6\nauthor Martin Weinelt <mweinelt@users.noreply.github.com> 1728001513 +0200\ncommitter GitHub <noreply@github.com> 1728001513 +0200\n\n[Backport release-24.05] Firefox: 130.0.1 -> 131.0; 128.2.0esr -> 128.3.0esr; 115.15.0esr -> 115.16.0esr (#346022)\n\n"
}
},
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/1e6376619b9192dc7603e07d7187572c45048dd7",
"html_url": "https://github.com/NixOS/nixpkgs/commit/1e6376619b9192dc7603e07d7187572c45048dd7",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/commits/1e6376619b9192dc7603e07d7187572c45048dd7/comments",
"author": {
"login": "mweinelt",
"id": 131599,
"node_id": "MDQ6VXNlcjEzMTU5OQ==",
"avatar_url": "https://avatars.githubusercontent.com/u/131599?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mweinelt",
"html_url": "https://github.com/mweinelt",
"followers_url": "https://api.github.com/users/mweinelt/followers",
"following_url": "https://api.github.com/users/mweinelt/following{/other_user}",
"gists_url": "https://api.github.com/users/mweinelt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mweinelt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mweinelt/subscriptions",
"organizations_url": "https://api.github.com/users/mweinelt/orgs",
"repos_url": "https://api.github.com/users/mweinelt/repos",
"events_url": "https://api.github.com/users/mweinelt/events{/privacy}",
"received_events_url": "https://api.github.com/users/mweinelt/received_events",
"type": "User",
"site_admin": false
},
"committer": {
"login": "web-flow",
"id": 19864447,
"node_id": "MDQ6VXNlcjE5ODY0NDQ3",
"avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/web-flow",
"html_url": "https://github.com/web-flow",
"followers_url": "https://api.github.com/users/web-flow/followers",
"following_url": "https://api.github.com/users/web-flow/following{/other_user}",
"gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
"starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
"organizations_url": "https://api.github.com/users/web-flow/orgs",
"repos_url": "https://api.github.com/users/web-flow/repos",
"events_url": "https://api.github.com/users/web-flow/events{/privacy}",
"received_events_url": "https://api.github.com/users/web-flow/received_events",
"type": "User",
"site_admin": false
},
"parents": [
{
"sha": "0799dfba72420acad00f6c6b643e42f14589da6f",
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/0799dfba72420acad00f6c6b643e42f14589da6f",
"html_url": "https://github.com/NixOS/nixpkgs/commit/0799dfba72420acad00f6c6b643e42f14589da6f"
},
{
"sha": "0010c39a77012492a1602258ad8e3fd5e9377bf6",
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/0010c39a77012492a1602258ad8e3fd5e9377bf6",
"html_url": "https://github.com/NixOS/nixpkgs/commit/0010c39a77012492a1602258ad8e3fd5e9377bf6"
}
]
},
"status": "behind",
"ahead_by": 0,
"behind_by": 68,
"total_commits": 0,
"commits": [
],
"files": [
]
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,185 @@
{
"url": "https://api.github.com/repos/NixOS/nixpkgs/compare/nixos-unstable...27e30d177e57d912d614c88c622dcfdb2e6e6515",
"html_url": "https://github.com/NixOS/nixpkgs/compare/nixos-unstable...27e30d177e57d912d614c88c622dcfdb2e6e6515",
"permalink_url": "https://github.com/NixOS/nixpkgs/compare/NixOS:bc947f5...NixOS:27e30d1",
"diff_url": "https://github.com/NixOS/nixpkgs/compare/nixos-unstable...27e30d177e57d912d614c88c622dcfdb2e6e6515.diff",
"patch_url": "https://github.com/NixOS/nixpkgs/compare/nixos-unstable...27e30d177e57d912d614c88c622dcfdb2e6e6515.patch",
"base_commit": {
"sha": "bc947f541ae55e999ffdb4013441347d83b00feb",
"node_id": "C_kwDOAEVQ_NoAKGJjOTQ3ZjU0MWFlNTVlOTk5ZmZkYjQwMTM0NDEzNDdkODNiMDBmZWI",
"commit": {
"author": {
"name": "Masum Reza",
"email": "50095635+JohnRTitor@users.noreply.github.com",
"date": "2024-10-04T05:06:13Z"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2024-10-04T05:06:13Z"
},
"message": "alpaca: 2.0.3 -> 2.0.5 (#345070)",
"tree": {
"sha": "3e7376cebbaf8793c39bb68447950f1045fd4ea5",
"url": "https://api.github.com/repos/NixOS/nixpkgs/git/trees/3e7376cebbaf8793c39bb68447950f1045fd4ea5"
},
"url": "https://api.github.com/repos/NixOS/nixpkgs/git/commits/bc947f541ae55e999ffdb4013441347d83b00feb",
"comment_count": 0,
"verification": {
"verified": true,
"reason": "valid",
"signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJm/3fFCRC1aQ7uu5UhlAAA2JMQAIz5pfsohrsrdPgPxlZVDuaQ\nVPLlM82MOpkq958U90OnXyC4ZlIX2+YwvCUkuRjYjMv9VlHMHU6olHy/jvt5VF/g\nckoaAMztOsPqgyKUXiMew83j8L8EBqVQQZ3W2Br9EnzG2RNEDUQdP5c6Fwc4tccl\nmb3PPb15Nm0lFnitwUO78KxILhrekjdxxrKC/wUihaL/gH4CzdkReVZJ6FPbq9l6\n/HTTDW+amrpOr2XLQ2dC5Cy/nvZS+MPjduNSPsf5a5/ElKmNltbPFChTY0pnv/dq\nrH1zDsohfbtk5WgcmLhiIOpvO86yLfa82sPUJA65GuAW7gYGbMsN6Sh3CnfY7sxb\n7x5r7/sSodxG4t2lML571JfX2aFCeNKgeYomViRu1ZGyHg3LJAN8jKi1JIyVCpH1\nkiTOmQQWzPJRC2COvMGSdXVc7h4CuInev7MmDDiubJDkFYyT8DBzpqVxUTmni13p\ndwr6QAWZZpjnxZxVFnYLlTSifLUIazEJTqaNWnCCc99hyWAo+f5njUlT+9fPLoKE\nHAgMmC55sOzOXnLLgPIoZe2g3wtHNELY3Y6wq7hfS2K9GCxJnJ3mttiUypnyHEuR\n/dVGOlES5p7xWUZ+zEYOp+cLnMWudB5X5cf/ojooLQJc8CL8gIfOD7KOrKewf2Yi\nUUUYH6/erCgoQE2klAaS\n=Hu+V\n-----END PGP SIGNATURE-----\n",
"payload": "tree 3e7376cebbaf8793c39bb68447950f1045fd4ea5\nparent 674acd883193175de91d37a6b3ea8c814d12c8bb\nparent e229318f7d34f4988a815e6d10b8fb0f7e0e2974\nauthor Masum Reza <50095635+JohnRTitor@users.noreply.github.com> 1728018373 +0530\ncommitter GitHub <noreply@github.com> 1728018373 +0530\n\nalpaca: 2.0.3 -> 2.0.5 (#345070)\n\n"
}
},
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/bc947f541ae55e999ffdb4013441347d83b00feb",
"html_url": "https://github.com/NixOS/nixpkgs/commit/bc947f541ae55e999ffdb4013441347d83b00feb",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/commits/bc947f541ae55e999ffdb4013441347d83b00feb/comments",
"author": {
"login": "JohnRTitor",
"id": 50095635,
"node_id": "MDQ6VXNlcjUwMDk1NjM1",
"avatar_url": "https://avatars.githubusercontent.com/u/50095635?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/JohnRTitor",
"html_url": "https://github.com/JohnRTitor",
"followers_url": "https://api.github.com/users/JohnRTitor/followers",
"following_url": "https://api.github.com/users/JohnRTitor/following{/other_user}",
"gists_url": "https://api.github.com/users/JohnRTitor/gists{/gist_id}",
"starred_url": "https://api.github.com/users/JohnRTitor/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/JohnRTitor/subscriptions",
"organizations_url": "https://api.github.com/users/JohnRTitor/orgs",
"repos_url": "https://api.github.com/users/JohnRTitor/repos",
"events_url": "https://api.github.com/users/JohnRTitor/events{/privacy}",
"received_events_url": "https://api.github.com/users/JohnRTitor/received_events",
"type": "User",
"site_admin": false
},
"committer": {
"login": "web-flow",
"id": 19864447,
"node_id": "MDQ6VXNlcjE5ODY0NDQ3",
"avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/web-flow",
"html_url": "https://github.com/web-flow",
"followers_url": "https://api.github.com/users/web-flow/followers",
"following_url": "https://api.github.com/users/web-flow/following{/other_user}",
"gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
"starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
"organizations_url": "https://api.github.com/users/web-flow/orgs",
"repos_url": "https://api.github.com/users/web-flow/repos",
"events_url": "https://api.github.com/users/web-flow/events{/privacy}",
"received_events_url": "https://api.github.com/users/web-flow/received_events",
"type": "User",
"site_admin": false
},
"parents": [
{
"sha": "674acd883193175de91d37a6b3ea8c814d12c8bb",
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/674acd883193175de91d37a6b3ea8c814d12c8bb",
"html_url": "https://github.com/NixOS/nixpkgs/commit/674acd883193175de91d37a6b3ea8c814d12c8bb"
},
{
"sha": "e229318f7d34f4988a815e6d10b8fb0f7e0e2974",
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/e229318f7d34f4988a815e6d10b8fb0f7e0e2974",
"html_url": "https://github.com/NixOS/nixpkgs/commit/e229318f7d34f4988a815e6d10b8fb0f7e0e2974"
}
]
},
"merge_base_commit": {
"sha": "27e30d177e57d912d614c88c622dcfdb2e6e6515",
"node_id": "C_kwDOAEVQ_NoAKDI3ZTMwZDE3N2U1N2Q5MTJkNjE0Yzg4YzYyMmRjZmRiMmU2ZTY1MTU",
"commit": {
"author": {
"name": "nixpkgs-merge-bot[bot]",
"email": "148217876+nixpkgs-merge-bot[bot]@users.noreply.github.com",
"date": "2024-10-01T17:15:20Z"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2024-10-01T17:15:20Z"
},
"message": "fflogs: 8.13.5 -> 8.14.0 (#344409)",
"tree": {
"sha": "209d35171564896577260569f6da7d444d22435d",
"url": "https://api.github.com/repos/NixOS/nixpkgs/git/trees/209d35171564896577260569f6da7d444d22435d"
},
"url": "https://api.github.com/repos/NixOS/nixpkgs/git/commits/27e30d177e57d912d614c88c622dcfdb2e6e6515",
"comment_count": 0,
"verification": {
"verified": true,
"reason": "valid",
"signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJm/C4oCRC1aQ7uu5UhlAAAqUMQAINLlEPM+qnZU0Tb+7sJW/Ww\nu7SViLn6rH2EzZSVxS4DBD/phRm2wmQyjmVRpYMkRFsUQQFLQBjA5oPfzlT+frej\nNCHADxJ8h27xfV3mi40hJkWaC++ssuElh2ZYoyC9wC1yuViO44tuDQKapt6ROQIG\n8Wrg10RN7FBjd5Mb87NBOlSamiIdwobnQUBFCN3MweZ7i7CiuSq2ShKKyEy1KZIn\nH1GVV6rSkRXS0uN9s62uiISSVsvS88RpIMES83Z+fh8v6C+gw6fhUOIP0fLSVogi\neYAB3btJMCryvam7r7gfDDn2yQ6gxlpQYRDgVoK1sLeXg5hy4ouzykkrxvBbvgFd\nGl1eOePkRX+Pz5dPBIYON6QkhgEq6Ysnk4Z7FKvCmXpzDD8Yu0DWWMh65gzMXl9n\nFtThPLEurDXtZoxGnTmqD5MgNpYdH+NgLGH7ml69TinkgkRfvNeDeScmECydBnwN\n/4WTVXCzr6O0sER2MOd3Lb+LjOcymegzLnkySzvCousB2O2viVet9xs2D8QhD1LW\n9eiWfPNsuoC4xjBk/4DPmw0aSjfFiueVudG8cHg0+QxYMnbCVb3kBbjaPTmDTj8U\n/c8Eni7wIp7KEquEJTIh9Uq0thloNk/wgqY9Hj9XErcuyWZCmcB3CqIm2ZuRk9Bh\neHggC9G9VXULWzRj2OvC\n=G9Lq\n-----END PGP SIGNATURE-----\n",
"payload": "tree 209d35171564896577260569f6da7d444d22435d\nparent 9133b9f5554437083a6618581eeae88c53593b0d\nparent c914c30b5b9f65577b83cf0b84a01e46fa1ddf96\nauthor nixpkgs-merge-bot[bot] <148217876+nixpkgs-merge-bot[bot]@users.noreply.github.com> 1727802920 +0000\ncommitter GitHub <noreply@github.com> 1727802920 +0000\n\nfflogs: 8.13.5 -> 8.14.0 (#344409)\n\n"
}
},
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/27e30d177e57d912d614c88c622dcfdb2e6e6515",
"html_url": "https://github.com/NixOS/nixpkgs/commit/27e30d177e57d912d614c88c622dcfdb2e6e6515",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/commits/27e30d177e57d912d614c88c622dcfdb2e6e6515/comments",
"author": {
"login": "nixpkgs-merge-bot[bot]",
"id": 148217876,
"node_id": "BOT_kgDOCNWgFA",
"avatar_url": "https://avatars.githubusercontent.com/in/409421?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D",
"html_url": "https://github.com/apps/nixpkgs-merge-bot",
"followers_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/nixpkgs-merge-bot%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"committer": {
"login": "web-flow",
"id": 19864447,
"node_id": "MDQ6VXNlcjE5ODY0NDQ3",
"avatar_url": "https://avatars.githubusercontent.com/u/19864447?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/web-flow",
"html_url": "https://github.com/web-flow",
"followers_url": "https://api.github.com/users/web-flow/followers",
"following_url": "https://api.github.com/users/web-flow/following{/other_user}",
"gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}",
"starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/web-flow/subscriptions",
"organizations_url": "https://api.github.com/users/web-flow/orgs",
"repos_url": "https://api.github.com/users/web-flow/repos",
"events_url": "https://api.github.com/users/web-flow/events{/privacy}",
"received_events_url": "https://api.github.com/users/web-flow/received_events",
"type": "User",
"site_admin": false
},
"parents": [
{
"sha": "9133b9f5554437083a6618581eeae88c53593b0d",
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/9133b9f5554437083a6618581eeae88c53593b0d",
"html_url": "https://github.com/NixOS/nixpkgs/commit/9133b9f5554437083a6618581eeae88c53593b0d"
},
{
"sha": "c914c30b5b9f65577b83cf0b84a01e46fa1ddf96",
"url": "https://api.github.com/repos/NixOS/nixpkgs/commits/c914c30b5b9f65577b83cf0b84a01e46fa1ddf96",
"html_url": "https://github.com/NixOS/nixpkgs/commit/c914c30b5b9f65577b83cf0b84a01e46fa1ddf96"
}
]
},
"status": "behind",
"ahead_by": 0,
"behind_by": 795,
"total_commits": 0,
"commits": [
],
"files": [
]
}

453
tests/fixtures/pulls_345769.json vendored Normal file
View File

@@ -0,0 +1,453 @@
{
"url": "https://api.github.com/repos/NixOS/nixpkgs/pulls/345769",
"id": 2102240863,
"node_id": "PR_kwDOAEVQ_M59TaZf",
"html_url": "https://github.com/NixOS/nixpkgs/pull/345769",
"diff_url": "https://github.com/NixOS/nixpkgs/pull/345769.diff",
"patch_url": "https://github.com/NixOS/nixpkgs/pull/345769.patch",
"issue_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/345769",
"number": 345769,
"state": "closed",
"locked": false,
"title": "Firefox: 130.0.1 -> 131.0; 128.2.0esr -> 128.3.0esr; 115.15.0esr -> 115.16.0esr",
"user": {
"login": "mweinelt",
"id": 131599,
"node_id": "MDQ6VXNlcjEzMTU5OQ==",
"avatar_url": "https://avatars.githubusercontent.com/u/131599?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mweinelt",
"html_url": "https://github.com/mweinelt",
"followers_url": "https://api.github.com/users/mweinelt/followers",
"following_url": "https://api.github.com/users/mweinelt/following{/other_user}",
"gists_url": "https://api.github.com/users/mweinelt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mweinelt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mweinelt/subscriptions",
"organizations_url": "https://api.github.com/users/mweinelt/orgs",
"repos_url": "https://api.github.com/users/mweinelt/repos",
"events_url": "https://api.github.com/users/mweinelt/events{/privacy}",
"received_events_url": "https://api.github.com/users/mweinelt/received_events",
"type": "User",
"site_admin": false
},
"body": "https://www.mozilla.org/en-US/firefox/131.0/releasenotes/\r\nhttps://www.mozilla.org/en-US/firefox/128.3.0/releasenotes/\r\nhttps://www.mozilla.org/en-US/firefox/115.16.0/releasenotes/\r\nhttps://www.mozilla.org/security/advisories/mfsa2024-46\r\nhttps://www.mozilla.org/security/advisories/mfsa2024-47\r\nhttps://www.mozilla.org/security/advisories/mfsa2024-48\r\n\r\n## Things done\r\n\r\n<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->\r\n\r\n- Built on platform(s)\r\n - [ ] x86_64-linux\r\n - [x] aarch64-linux\r\n - [ ] x86_64-darwin\r\n - [ ] aarch64-darwin\r\n- For non-Linux: Is sandboxing enabled in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))\r\n - [ ] `sandbox = relaxed`\r\n - [ ] `sandbox = true`\r\n- [x] Tested, as applicable:\r\n - [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))\r\n - and/or [package tests](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests)\r\n - or, for functions and \"core\" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)\r\n - made sure NixOS tests are [linked](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#linking-nixos-module-tests-to-a-package) to the relevant packages\r\n- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run \"nixpkgs-review rev HEAD\"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)\r\n- [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)\r\n- [24.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2411.section.md) (or backporting [23.11](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2311.section.md) and [24.05](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2405.section.md) Release notes)\r\n - [ ] (Package updates) Added a release notes entry if the change is major or breaking\r\n - [ ] (Module updates) Added a release notes entry if the change is significant\r\n - [ ] (Module addition) Added a release notes entry if adding a new NixOS module\r\n- [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).\r\n\r\n<!--\r\nTo help with the large amounts of pull requests, we would appreciate your\r\nreviews of other pull requests, especially simple package updates. Just leave a\r\ncomment describing what you have tested in the relevant package/service.\r\nReviewing helps to reduce the average time-to-merge for everyone.\r\nThanks a lot if you do!\r\n\r\nList of open PRs: https://github.com/NixOS/nixpkgs/pulls\r\nReviewing guidelines: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#reviewing-contributions\r\n-->\r\n\r\n---\r\n\r\nAdd a :+1: [reaction] to [pull requests you find important].\r\n\r\n[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/\r\n[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc\r\n",
"created_at": "2024-10-01T20:21:32Z",
"updated_at": "2024-10-02T22:45:03Z",
"closed_at": "2024-10-02T22:44:30Z",
"merged_at": "2024-10-02T22:44:30Z",
"merge_commit_sha": "3569a56280e8afba7c10f9171dac71ff882ff1c1",
"assignee": null,
"assignees": [
],
"requested_reviewers": [
{
"login": "lovesegfault",
"id": 7243783,
"node_id": "MDQ6VXNlcjcyNDM3ODM=",
"avatar_url": "https://avatars.githubusercontent.com/u/7243783?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/lovesegfault",
"html_url": "https://github.com/lovesegfault",
"followers_url": "https://api.github.com/users/lovesegfault/followers",
"following_url": "https://api.github.com/users/lovesegfault/following{/other_user}",
"gists_url": "https://api.github.com/users/lovesegfault/gists{/gist_id}",
"starred_url": "https://api.github.com/users/lovesegfault/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/lovesegfault/subscriptions",
"organizations_url": "https://api.github.com/users/lovesegfault/orgs",
"repos_url": "https://api.github.com/users/lovesegfault/repos",
"events_url": "https://api.github.com/users/lovesegfault/events{/privacy}",
"received_events_url": "https://api.github.com/users/lovesegfault/received_events",
"type": "User",
"site_admin": false
}
],
"requested_teams": [
],
"labels": [
{
"id": 126506420,
"node_id": "MDU6TGFiZWwxMjY1MDY0MjA=",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/1.severity:%20security",
"name": "1.severity: security",
"color": "e11d21",
"default": false,
"description": null
},
{
"id": 731734101,
"node_id": "MDU6TGFiZWw3MzE3MzQxMDE=",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/10.rebuild-linux:%2011-100",
"name": "10.rebuild-linux: 11-100",
"color": "fbca04",
"default": false,
"description": null
},
{
"id": 731735222,
"node_id": "MDU6TGFiZWw3MzE3MzUyMjI=",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/10.rebuild-darwin:%201-10",
"name": "10.rebuild-darwin: 1-10",
"color": "eeffee",
"default": false,
"description": null
},
{
"id": 740714914,
"node_id": "MDU6TGFiZWw3NDA3MTQ5MTQ=",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/11.by:%20package-maintainer",
"name": "11.by: package-maintainer",
"color": "ddeecc",
"default": false,
"description": null
},
{
"id": 6984924132,
"node_id": "LA_kwDOAEVQ_M8AAAABoFV75A",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/backport%20release-24.05",
"name": "backport release-24.05",
"color": "0fafaa",
"default": false,
"description": "Backport PR automatically"
}
],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls/345769/commits",
"review_comments_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls/345769/comments",
"review_comment_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/345769/comments",
"statuses_url": "https://api.github.com/repos/NixOS/nixpkgs/statuses/ee93526fc9f1de32f23df4187f3e573eeafc562d",
"head": {
"label": "mweinelt:firefox-131.0",
"ref": "firefox-131.0",
"sha": "ee93526fc9f1de32f23df4187f3e573eeafc562d",
"user": {
"login": "mweinelt",
"id": 131599,
"node_id": "MDQ6VXNlcjEzMTU5OQ==",
"avatar_url": "https://avatars.githubusercontent.com/u/131599?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mweinelt",
"html_url": "https://github.com/mweinelt",
"followers_url": "https://api.github.com/users/mweinelt/followers",
"following_url": "https://api.github.com/users/mweinelt/following{/other_user}",
"gists_url": "https://api.github.com/users/mweinelt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mweinelt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mweinelt/subscriptions",
"organizations_url": "https://api.github.com/users/mweinelt/orgs",
"repos_url": "https://api.github.com/users/mweinelt/repos",
"events_url": "https://api.github.com/users/mweinelt/events{/privacy}",
"received_events_url": "https://api.github.com/users/mweinelt/received_events",
"type": "User",
"site_admin": false
},
"repo": {
"id": 101918349,
"node_id": "MDEwOlJlcG9zaXRvcnkxMDE5MTgzNDk=",
"name": "nixpkgs",
"full_name": "mweinelt/nixpkgs",
"private": false,
"owner": {
"login": "mweinelt",
"id": 131599,
"node_id": "MDQ6VXNlcjEzMTU5OQ==",
"avatar_url": "https://avatars.githubusercontent.com/u/131599?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mweinelt",
"html_url": "https://github.com/mweinelt",
"followers_url": "https://api.github.com/users/mweinelt/followers",
"following_url": "https://api.github.com/users/mweinelt/following{/other_user}",
"gists_url": "https://api.github.com/users/mweinelt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mweinelt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mweinelt/subscriptions",
"organizations_url": "https://api.github.com/users/mweinelt/orgs",
"repos_url": "https://api.github.com/users/mweinelt/repos",
"events_url": "https://api.github.com/users/mweinelt/events{/privacy}",
"received_events_url": "https://api.github.com/users/mweinelt/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/mweinelt/nixpkgs",
"description": "Nix Packages collection",
"fork": true,
"url": "https://api.github.com/repos/mweinelt/nixpkgs",
"forks_url": "https://api.github.com/repos/mweinelt/nixpkgs/forks",
"keys_url": "https://api.github.com/repos/mweinelt/nixpkgs/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/mweinelt/nixpkgs/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/mweinelt/nixpkgs/teams",
"hooks_url": "https://api.github.com/repos/mweinelt/nixpkgs/hooks",
"issue_events_url": "https://api.github.com/repos/mweinelt/nixpkgs/issues/events{/number}",
"events_url": "https://api.github.com/repos/mweinelt/nixpkgs/events",
"assignees_url": "https://api.github.com/repos/mweinelt/nixpkgs/assignees{/user}",
"branches_url": "https://api.github.com/repos/mweinelt/nixpkgs/branches{/branch}",
"tags_url": "https://api.github.com/repos/mweinelt/nixpkgs/tags",
"blobs_url": "https://api.github.com/repos/mweinelt/nixpkgs/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/mweinelt/nixpkgs/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/mweinelt/nixpkgs/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/mweinelt/nixpkgs/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/mweinelt/nixpkgs/statuses/{sha}",
"languages_url": "https://api.github.com/repos/mweinelt/nixpkgs/languages",
"stargazers_url": "https://api.github.com/repos/mweinelt/nixpkgs/stargazers",
"contributors_url": "https://api.github.com/repos/mweinelt/nixpkgs/contributors",
"subscribers_url": "https://api.github.com/repos/mweinelt/nixpkgs/subscribers",
"subscription_url": "https://api.github.com/repos/mweinelt/nixpkgs/subscription",
"commits_url": "https://api.github.com/repos/mweinelt/nixpkgs/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/mweinelt/nixpkgs/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/mweinelt/nixpkgs/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/mweinelt/nixpkgs/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/mweinelt/nixpkgs/contents/{+path}",
"compare_url": "https://api.github.com/repos/mweinelt/nixpkgs/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/mweinelt/nixpkgs/merges",
"archive_url": "https://api.github.com/repos/mweinelt/nixpkgs/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/mweinelt/nixpkgs/downloads",
"issues_url": "https://api.github.com/repos/mweinelt/nixpkgs/issues{/number}",
"pulls_url": "https://api.github.com/repos/mweinelt/nixpkgs/pulls{/number}",
"milestones_url": "https://api.github.com/repos/mweinelt/nixpkgs/milestones{/number}",
"notifications_url": "https://api.github.com/repos/mweinelt/nixpkgs/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/mweinelt/nixpkgs/labels{/name}",
"releases_url": "https://api.github.com/repos/mweinelt/nixpkgs/releases{/id}",
"deployments_url": "https://api.github.com/repos/mweinelt/nixpkgs/deployments",
"created_at": "2017-08-30T18:59:28Z",
"updated_at": "2023-01-31T16:52:24Z",
"pushed_at": "2024-10-04T00:24:53Z",
"git_url": "git://github.com/mweinelt/nixpkgs.git",
"ssh_url": "git@github.com:mweinelt/nixpkgs.git",
"clone_url": "https://github.com/mweinelt/nixpkgs.git",
"svn_url": "https://github.com/mweinelt/nixpkgs",
"homepage": null,
"size": 4358923,
"stargazers_count": 1,
"watchers_count": 1,
"language": "Nix",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 2,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
],
"visibility": "public",
"forks": 0,
"open_issues": 2,
"watchers": 1,
"default_branch": "master"
}
},
"base": {
"label": "NixOS:master",
"ref": "master",
"sha": "2b40f1b3c890531e18d8d09a53bc1a62c4add99e",
"user": {
"login": "NixOS",
"id": 487568,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQ4NzU2OA==",
"avatar_url": "https://avatars.githubusercontent.com/u/487568?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/NixOS",
"html_url": "https://github.com/NixOS",
"followers_url": "https://api.github.com/users/NixOS/followers",
"following_url": "https://api.github.com/users/NixOS/following{/other_user}",
"gists_url": "https://api.github.com/users/NixOS/gists{/gist_id}",
"starred_url": "https://api.github.com/users/NixOS/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/NixOS/subscriptions",
"organizations_url": "https://api.github.com/users/NixOS/orgs",
"repos_url": "https://api.github.com/users/NixOS/repos",
"events_url": "https://api.github.com/users/NixOS/events{/privacy}",
"received_events_url": "https://api.github.com/users/NixOS/received_events",
"type": "Organization",
"site_admin": false
},
"repo": {
"id": 4542716,
"node_id": "MDEwOlJlcG9zaXRvcnk0NTQyNzE2",
"name": "nixpkgs",
"full_name": "NixOS/nixpkgs",
"private": false,
"owner": {
"login": "NixOS",
"id": 487568,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQ4NzU2OA==",
"avatar_url": "https://avatars.githubusercontent.com/u/487568?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/NixOS",
"html_url": "https://github.com/NixOS",
"followers_url": "https://api.github.com/users/NixOS/followers",
"following_url": "https://api.github.com/users/NixOS/following{/other_user}",
"gists_url": "https://api.github.com/users/NixOS/gists{/gist_id}",
"starred_url": "https://api.github.com/users/NixOS/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/NixOS/subscriptions",
"organizations_url": "https://api.github.com/users/NixOS/orgs",
"repos_url": "https://api.github.com/users/NixOS/repos",
"events_url": "https://api.github.com/users/NixOS/events{/privacy}",
"received_events_url": "https://api.github.com/users/NixOS/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/NixOS/nixpkgs",
"description": "Nix Packages collection & NixOS",
"fork": false,
"url": "https://api.github.com/repos/NixOS/nixpkgs",
"forks_url": "https://api.github.com/repos/NixOS/nixpkgs/forks",
"keys_url": "https://api.github.com/repos/NixOS/nixpkgs/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/NixOS/nixpkgs/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/NixOS/nixpkgs/teams",
"hooks_url": "https://api.github.com/repos/NixOS/nixpkgs/hooks",
"issue_events_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/events{/number}",
"events_url": "https://api.github.com/repos/NixOS/nixpkgs/events",
"assignees_url": "https://api.github.com/repos/NixOS/nixpkgs/assignees{/user}",
"branches_url": "https://api.github.com/repos/NixOS/nixpkgs/branches{/branch}",
"tags_url": "https://api.github.com/repos/NixOS/nixpkgs/tags",
"blobs_url": "https://api.github.com/repos/NixOS/nixpkgs/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/NixOS/nixpkgs/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/NixOS/nixpkgs/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/NixOS/nixpkgs/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/NixOS/nixpkgs/statuses/{sha}",
"languages_url": "https://api.github.com/repos/NixOS/nixpkgs/languages",
"stargazers_url": "https://api.github.com/repos/NixOS/nixpkgs/stargazers",
"contributors_url": "https://api.github.com/repos/NixOS/nixpkgs/contributors",
"subscribers_url": "https://api.github.com/repos/NixOS/nixpkgs/subscribers",
"subscription_url": "https://api.github.com/repos/NixOS/nixpkgs/subscription",
"commits_url": "https://api.github.com/repos/NixOS/nixpkgs/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/NixOS/nixpkgs/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/NixOS/nixpkgs/contents/{+path}",
"compare_url": "https://api.github.com/repos/NixOS/nixpkgs/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/NixOS/nixpkgs/merges",
"archive_url": "https://api.github.com/repos/NixOS/nixpkgs/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/NixOS/nixpkgs/downloads",
"issues_url": "https://api.github.com/repos/NixOS/nixpkgs/issues{/number}",
"pulls_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls{/number}",
"milestones_url": "https://api.github.com/repos/NixOS/nixpkgs/milestones{/number}",
"notifications_url": "https://api.github.com/repos/NixOS/nixpkgs/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/NixOS/nixpkgs/labels{/name}",
"releases_url": "https://api.github.com/repos/NixOS/nixpkgs/releases{/id}",
"deployments_url": "https://api.github.com/repos/NixOS/nixpkgs/deployments",
"created_at": "2012-06-04T02:49:46Z",
"updated_at": "2024-10-06T22:10:34Z",
"pushed_at": "2024-10-06T22:19:24Z",
"git_url": "git://github.com/NixOS/nixpkgs.git",
"ssh_url": "git@github.com:NixOS/nixpkgs.git",
"clone_url": "https://github.com/NixOS/nixpkgs.git",
"svn_url": "https://github.com/NixOS/nixpkgs",
"homepage": "",
"size": 4523255,
"stargazers_count": 17645,
"watchers_count": 17645,
"language": "Nix",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 13801,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 15261,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"hacktoberfest",
"linux",
"nix",
"nixos",
"nixpkgs"
],
"visibility": "public",
"forks": 13801,
"open_issues": 15261,
"watchers": 17645,
"default_branch": "master"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/pulls/345769"
},
"html": {
"href": "https://github.com/NixOS/nixpkgs/pull/345769"
},
"issue": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/issues/345769"
},
"comments": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/issues/345769/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/pulls/345769/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/pulls/345769/commits"
},
"statuses": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/statuses/ee93526fc9f1de32f23df4187f3e573eeafc562d"
}
},
"author_association": "MEMBER",
"auto_merge": null,
"active_lock_reason": null,
"merged": true,
"mergeable": null,
"rebaseable": null,
"mergeable_state": "unknown",
"merged_by": {
"login": "mweinelt",
"id": 131599,
"node_id": "MDQ6VXNlcjEzMTU5OQ==",
"avatar_url": "https://avatars.githubusercontent.com/u/131599?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mweinelt",
"html_url": "https://github.com/mweinelt",
"followers_url": "https://api.github.com/users/mweinelt/followers",
"following_url": "https://api.github.com/users/mweinelt/following{/other_user}",
"gists_url": "https://api.github.com/users/mweinelt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mweinelt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mweinelt/subscriptions",
"organizations_url": "https://api.github.com/users/mweinelt/orgs",
"repos_url": "https://api.github.com/users/mweinelt/repos",
"events_url": "https://api.github.com/users/mweinelt/events{/privacy}",
"received_events_url": "https://api.github.com/users/mweinelt/received_events",
"type": "User",
"site_admin": false
},
"comments": 2,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 4,
"additions": 419,
"deletions": 419,
"changed_files": 2
}

468
tests/fixtures/pulls_346022.json vendored Normal file
View File

@@ -0,0 +1,468 @@
{
"url": "https://api.github.com/repos/NixOS/nixpkgs/pulls/346022",
"id": 2104407907,
"node_id": "PR_kwDOAEVQ_M59brdj",
"html_url": "https://github.com/NixOS/nixpkgs/pull/346022",
"diff_url": "https://github.com/NixOS/nixpkgs/pull/346022.diff",
"patch_url": "https://github.com/NixOS/nixpkgs/pull/346022.patch",
"issue_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/346022",
"number": 346022,
"state": "closed",
"locked": false,
"title": "[Backport release-24.05] Firefox: 130.0.1 -> 131.0; 128.2.0esr -> 128.3.0esr; 115.15.0esr -> 115.16.0esr",
"user": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"body": "Bot-based backport to `release-24.05`, triggered by a label in #345769.\n\n* [x] Before merging, ensure that this backport is [acceptable for the release](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#changes-acceptable-for-releases).\n * Even as a non-commiter, if you find that it is not acceptable, leave a comment.",
"created_at": "2024-10-02T22:45:00Z",
"updated_at": "2024-10-04T00:25:16Z",
"closed_at": "2024-10-04T00:25:13Z",
"merged_at": "2024-10-04T00:25:13Z",
"merge_commit_sha": "1e6376619b9192dc7603e07d7187572c45048dd7",
"assignee": null,
"assignees": [
],
"requested_reviewers": [
{
"login": "mweinelt",
"id": 131599,
"node_id": "MDQ6VXNlcjEzMTU5OQ==",
"avatar_url": "https://avatars.githubusercontent.com/u/131599?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mweinelt",
"html_url": "https://github.com/mweinelt",
"followers_url": "https://api.github.com/users/mweinelt/followers",
"following_url": "https://api.github.com/users/mweinelt/following{/other_user}",
"gists_url": "https://api.github.com/users/mweinelt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mweinelt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mweinelt/subscriptions",
"organizations_url": "https://api.github.com/users/mweinelt/orgs",
"repos_url": "https://api.github.com/users/mweinelt/repos",
"events_url": "https://api.github.com/users/mweinelt/events{/privacy}",
"received_events_url": "https://api.github.com/users/mweinelt/received_events",
"type": "User",
"site_admin": false
},
{
"login": "lovesegfault",
"id": 7243783,
"node_id": "MDQ6VXNlcjcyNDM3ODM=",
"avatar_url": "https://avatars.githubusercontent.com/u/7243783?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/lovesegfault",
"html_url": "https://github.com/lovesegfault",
"followers_url": "https://api.github.com/users/lovesegfault/followers",
"following_url": "https://api.github.com/users/lovesegfault/following{/other_user}",
"gists_url": "https://api.github.com/users/lovesegfault/gists{/gist_id}",
"starred_url": "https://api.github.com/users/lovesegfault/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/lovesegfault/subscriptions",
"organizations_url": "https://api.github.com/users/lovesegfault/orgs",
"repos_url": "https://api.github.com/users/lovesegfault/repos",
"events_url": "https://api.github.com/users/lovesegfault/events{/privacy}",
"received_events_url": "https://api.github.com/users/lovesegfault/received_events",
"type": "User",
"site_admin": false
}
],
"requested_teams": [
],
"labels": [
{
"id": 126506420,
"node_id": "MDU6TGFiZWwxMjY1MDY0MjA=",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/1.severity:%20security",
"name": "1.severity: security",
"color": "e11d21",
"default": false,
"description": null
},
{
"id": 731734101,
"node_id": "MDU6TGFiZWw3MzE3MzQxMDE=",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/10.rebuild-linux:%2011-100",
"name": "10.rebuild-linux: 11-100",
"color": "fbca04",
"default": false,
"description": null
},
{
"id": 731735222,
"node_id": "MDU6TGFiZWw3MzE3MzUyMjI=",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/10.rebuild-darwin:%201-10",
"name": "10.rebuild-darwin: 1-10",
"color": "eeffee",
"default": false,
"description": null
},
{
"id": 1955058051,
"node_id": "MDU6TGFiZWwxOTU1MDU4MDUx",
"url": "https://api.github.com/repos/NixOS/nixpkgs/labels/10.rebuild-darwin:%201",
"name": "10.rebuild-darwin: 1",
"color": "eeffee",
"default": false,
"description": ""
}
],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls/346022/commits",
"review_comments_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls/346022/comments",
"review_comment_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/346022/comments",
"statuses_url": "https://api.github.com/repos/NixOS/nixpkgs/statuses/0010c39a77012492a1602258ad8e3fd5e9377bf6",
"head": {
"label": "NixOS:backport-345769-to-release-24.05",
"ref": "backport-345769-to-release-24.05",
"sha": "0010c39a77012492a1602258ad8e3fd5e9377bf6",
"user": {
"login": "NixOS",
"id": 487568,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQ4NzU2OA==",
"avatar_url": "https://avatars.githubusercontent.com/u/487568?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/NixOS",
"html_url": "https://github.com/NixOS",
"followers_url": "https://api.github.com/users/NixOS/followers",
"following_url": "https://api.github.com/users/NixOS/following{/other_user}",
"gists_url": "https://api.github.com/users/NixOS/gists{/gist_id}",
"starred_url": "https://api.github.com/users/NixOS/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/NixOS/subscriptions",
"organizations_url": "https://api.github.com/users/NixOS/orgs",
"repos_url": "https://api.github.com/users/NixOS/repos",
"events_url": "https://api.github.com/users/NixOS/events{/privacy}",
"received_events_url": "https://api.github.com/users/NixOS/received_events",
"type": "Organization",
"site_admin": false
},
"repo": {
"id": 4542716,
"node_id": "MDEwOlJlcG9zaXRvcnk0NTQyNzE2",
"name": "nixpkgs",
"full_name": "NixOS/nixpkgs",
"private": false,
"owner": {
"login": "NixOS",
"id": 487568,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQ4NzU2OA==",
"avatar_url": "https://avatars.githubusercontent.com/u/487568?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/NixOS",
"html_url": "https://github.com/NixOS",
"followers_url": "https://api.github.com/users/NixOS/followers",
"following_url": "https://api.github.com/users/NixOS/following{/other_user}",
"gists_url": "https://api.github.com/users/NixOS/gists{/gist_id}",
"starred_url": "https://api.github.com/users/NixOS/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/NixOS/subscriptions",
"organizations_url": "https://api.github.com/users/NixOS/orgs",
"repos_url": "https://api.github.com/users/NixOS/repos",
"events_url": "https://api.github.com/users/NixOS/events{/privacy}",
"received_events_url": "https://api.github.com/users/NixOS/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/NixOS/nixpkgs",
"description": "Nix Packages collection & NixOS",
"fork": false,
"url": "https://api.github.com/repos/NixOS/nixpkgs",
"forks_url": "https://api.github.com/repos/NixOS/nixpkgs/forks",
"keys_url": "https://api.github.com/repos/NixOS/nixpkgs/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/NixOS/nixpkgs/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/NixOS/nixpkgs/teams",
"hooks_url": "https://api.github.com/repos/NixOS/nixpkgs/hooks",
"issue_events_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/events{/number}",
"events_url": "https://api.github.com/repos/NixOS/nixpkgs/events",
"assignees_url": "https://api.github.com/repos/NixOS/nixpkgs/assignees{/user}",
"branches_url": "https://api.github.com/repos/NixOS/nixpkgs/branches{/branch}",
"tags_url": "https://api.github.com/repos/NixOS/nixpkgs/tags",
"blobs_url": "https://api.github.com/repos/NixOS/nixpkgs/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/NixOS/nixpkgs/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/NixOS/nixpkgs/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/NixOS/nixpkgs/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/NixOS/nixpkgs/statuses/{sha}",
"languages_url": "https://api.github.com/repos/NixOS/nixpkgs/languages",
"stargazers_url": "https://api.github.com/repos/NixOS/nixpkgs/stargazers",
"contributors_url": "https://api.github.com/repos/NixOS/nixpkgs/contributors",
"subscribers_url": "https://api.github.com/repos/NixOS/nixpkgs/subscribers",
"subscription_url": "https://api.github.com/repos/NixOS/nixpkgs/subscription",
"commits_url": "https://api.github.com/repos/NixOS/nixpkgs/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/NixOS/nixpkgs/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/NixOS/nixpkgs/contents/{+path}",
"compare_url": "https://api.github.com/repos/NixOS/nixpkgs/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/NixOS/nixpkgs/merges",
"archive_url": "https://api.github.com/repos/NixOS/nixpkgs/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/NixOS/nixpkgs/downloads",
"issues_url": "https://api.github.com/repos/NixOS/nixpkgs/issues{/number}",
"pulls_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls{/number}",
"milestones_url": "https://api.github.com/repos/NixOS/nixpkgs/milestones{/number}",
"notifications_url": "https://api.github.com/repos/NixOS/nixpkgs/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/NixOS/nixpkgs/labels{/name}",
"releases_url": "https://api.github.com/repos/NixOS/nixpkgs/releases{/id}",
"deployments_url": "https://api.github.com/repos/NixOS/nixpkgs/deployments",
"created_at": "2012-06-04T02:49:46Z",
"updated_at": "2024-10-06T23:37:45Z",
"pushed_at": "2024-10-06T23:20:18Z",
"git_url": "git://github.com/NixOS/nixpkgs.git",
"ssh_url": "git@github.com:NixOS/nixpkgs.git",
"clone_url": "https://github.com/NixOS/nixpkgs.git",
"svn_url": "https://github.com/NixOS/nixpkgs",
"homepage": "",
"size": 4523386,
"stargazers_count": 17644,
"watchers_count": 17644,
"language": "Nix",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 13801,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 15261,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"hacktoberfest",
"linux",
"nix",
"nixos",
"nixpkgs"
],
"visibility": "public",
"forks": 13801,
"open_issues": 15261,
"watchers": 17644,
"default_branch": "master"
}
},
"base": {
"label": "NixOS:release-24.05",
"ref": "release-24.05",
"sha": "5966581aa04be7eff830b9e1457d56dc70a0b798",
"user": {
"login": "NixOS",
"id": 487568,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQ4NzU2OA==",
"avatar_url": "https://avatars.githubusercontent.com/u/487568?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/NixOS",
"html_url": "https://github.com/NixOS",
"followers_url": "https://api.github.com/users/NixOS/followers",
"following_url": "https://api.github.com/users/NixOS/following{/other_user}",
"gists_url": "https://api.github.com/users/NixOS/gists{/gist_id}",
"starred_url": "https://api.github.com/users/NixOS/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/NixOS/subscriptions",
"organizations_url": "https://api.github.com/users/NixOS/orgs",
"repos_url": "https://api.github.com/users/NixOS/repos",
"events_url": "https://api.github.com/users/NixOS/events{/privacy}",
"received_events_url": "https://api.github.com/users/NixOS/received_events",
"type": "Organization",
"site_admin": false
},
"repo": {
"id": 4542716,
"node_id": "MDEwOlJlcG9zaXRvcnk0NTQyNzE2",
"name": "nixpkgs",
"full_name": "NixOS/nixpkgs",
"private": false,
"owner": {
"login": "NixOS",
"id": 487568,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjQ4NzU2OA==",
"avatar_url": "https://avatars.githubusercontent.com/u/487568?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/NixOS",
"html_url": "https://github.com/NixOS",
"followers_url": "https://api.github.com/users/NixOS/followers",
"following_url": "https://api.github.com/users/NixOS/following{/other_user}",
"gists_url": "https://api.github.com/users/NixOS/gists{/gist_id}",
"starred_url": "https://api.github.com/users/NixOS/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/NixOS/subscriptions",
"organizations_url": "https://api.github.com/users/NixOS/orgs",
"repos_url": "https://api.github.com/users/NixOS/repos",
"events_url": "https://api.github.com/users/NixOS/events{/privacy}",
"received_events_url": "https://api.github.com/users/NixOS/received_events",
"type": "Organization",
"site_admin": false
},
"html_url": "https://github.com/NixOS/nixpkgs",
"description": "Nix Packages collection & NixOS",
"fork": false,
"url": "https://api.github.com/repos/NixOS/nixpkgs",
"forks_url": "https://api.github.com/repos/NixOS/nixpkgs/forks",
"keys_url": "https://api.github.com/repos/NixOS/nixpkgs/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/NixOS/nixpkgs/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/NixOS/nixpkgs/teams",
"hooks_url": "https://api.github.com/repos/NixOS/nixpkgs/hooks",
"issue_events_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/events{/number}",
"events_url": "https://api.github.com/repos/NixOS/nixpkgs/events",
"assignees_url": "https://api.github.com/repos/NixOS/nixpkgs/assignees{/user}",
"branches_url": "https://api.github.com/repos/NixOS/nixpkgs/branches{/branch}",
"tags_url": "https://api.github.com/repos/NixOS/nixpkgs/tags",
"blobs_url": "https://api.github.com/repos/NixOS/nixpkgs/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/NixOS/nixpkgs/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/NixOS/nixpkgs/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/NixOS/nixpkgs/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/NixOS/nixpkgs/statuses/{sha}",
"languages_url": "https://api.github.com/repos/NixOS/nixpkgs/languages",
"stargazers_url": "https://api.github.com/repos/NixOS/nixpkgs/stargazers",
"contributors_url": "https://api.github.com/repos/NixOS/nixpkgs/contributors",
"subscribers_url": "https://api.github.com/repos/NixOS/nixpkgs/subscribers",
"subscription_url": "https://api.github.com/repos/NixOS/nixpkgs/subscription",
"commits_url": "https://api.github.com/repos/NixOS/nixpkgs/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/NixOS/nixpkgs/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/NixOS/nixpkgs/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/NixOS/nixpkgs/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/NixOS/nixpkgs/contents/{+path}",
"compare_url": "https://api.github.com/repos/NixOS/nixpkgs/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/NixOS/nixpkgs/merges",
"archive_url": "https://api.github.com/repos/NixOS/nixpkgs/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/NixOS/nixpkgs/downloads",
"issues_url": "https://api.github.com/repos/NixOS/nixpkgs/issues{/number}",
"pulls_url": "https://api.github.com/repos/NixOS/nixpkgs/pulls{/number}",
"milestones_url": "https://api.github.com/repos/NixOS/nixpkgs/milestones{/number}",
"notifications_url": "https://api.github.com/repos/NixOS/nixpkgs/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/NixOS/nixpkgs/labels{/name}",
"releases_url": "https://api.github.com/repos/NixOS/nixpkgs/releases{/id}",
"deployments_url": "https://api.github.com/repos/NixOS/nixpkgs/deployments",
"created_at": "2012-06-04T02:49:46Z",
"updated_at": "2024-10-06T23:37:45Z",
"pushed_at": "2024-10-06T23:20:18Z",
"git_url": "git://github.com/NixOS/nixpkgs.git",
"ssh_url": "git@github.com:NixOS/nixpkgs.git",
"clone_url": "https://github.com/NixOS/nixpkgs.git",
"svn_url": "https://github.com/NixOS/nixpkgs",
"homepage": "",
"size": 4523386,
"stargazers_count": 17644,
"watchers_count": 17644,
"language": "Nix",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 13801,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 15261,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"hacktoberfest",
"linux",
"nix",
"nixos",
"nixpkgs"
],
"visibility": "public",
"forks": 13801,
"open_issues": 15261,
"watchers": 17644,
"default_branch": "master"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/pulls/346022"
},
"html": {
"href": "https://github.com/NixOS/nixpkgs/pull/346022"
},
"issue": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/issues/346022"
},
"comments": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/issues/346022/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/pulls/346022/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/pulls/346022/commits"
},
"statuses": {
"href": "https://api.github.com/repos/NixOS/nixpkgs/statuses/0010c39a77012492a1602258ad8e3fd5e9377bf6"
}
},
"author_association": "CONTRIBUTOR",
"auto_merge": null,
"active_lock_reason": null,
"merged": true,
"mergeable": null,
"rebaseable": null,
"mergeable_state": "unknown",
"merged_by": {
"login": "mweinelt",
"id": 131599,
"node_id": "MDQ6VXNlcjEzMTU5OQ==",
"avatar_url": "https://avatars.githubusercontent.com/u/131599?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/mweinelt",
"html_url": "https://github.com/mweinelt",
"followers_url": "https://api.github.com/users/mweinelt/followers",
"following_url": "https://api.github.com/users/mweinelt/following{/other_user}",
"gists_url": "https://api.github.com/users/mweinelt/gists{/gist_id}",
"starred_url": "https://api.github.com/users/mweinelt/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/mweinelt/subscriptions",
"organizations_url": "https://api.github.com/users/mweinelt/orgs",
"repos_url": "https://api.github.com/users/mweinelt/repos",
"events_url": "https://api.github.com/users/mweinelt/events{/privacy}",
"received_events_url": "https://api.github.com/users/mweinelt/received_events",
"type": "User",
"site_admin": false
},
"comments": 1,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 4,
"additions": 419,
"deletions": 419,
"changed_files": 2
}

32
tests/helpers/mocks.py Normal file
View File

@@ -0,0 +1,32 @@
import requests
import json
def mocked_requests_get(*args, **kwargs):
class MockedResponse:
def __init__(self, json_data, status_code):
self.json_data = json_data
self.status_code = status_code
def json(self):
return json.loads(self.json_data)
def raise_for_status(self):
if self.status_code not in [200, 201]:
raise requests.exceptions.HTTPError()
if "pulls" in args[0]:
pr = args[0].split("/")[-1]
with open(f"tests/fixtures/pulls_{pr}.json") as f:
data = f.read()
return MockedResponse(data, 200)
elif "compare" in args[0]:
branch, commit_sha = args[0].split("/")[-1].split("...")
with open(f"tests/fixtures/compare_{branch}_{commit_sha}.json") as f:
data = f.read()
return MockedResponse(data, 200)
elif "comments" in args[0]:
pr = args[0].split("/")[-2]
with open(f"tests/fixtures/comments_{pr}.json") as f:
data = f.read()
return MockedResponse(data, 200)

View File

@@ -1,34 +1,8 @@
import unittest
import unittest.mock
import requests
import json
from nixprstatus.pr import commit_in_branch, pr_merge_status
def mocked_requests_get(*args, **kwargs):
class MockedResponse:
def __init__(self, json_data, status_code):
self.json_data = json_data
self.status_code = status_code
def json(self):
return json.loads(self.json_data)
def raise_for_status(self):
if self.status_code not in [200, 201]:
raise requests.exceptions.HTTPError()
if "pulls" in args[0]:
pr = args[0].split("/")[-1]
with open(f"tests/fixtures/pulls_{pr}.json") as f:
data = f.read()
return MockedResponse(data, 200)
elif "compare" in args[0]:
branch, commit_sha = args[0].split("/")[-1].split("...")
with open(f"tests/fixtures/compare_{branch}_{commit_sha}.json") as f:
data = f.read()
return MockedResponse(data, 200)
from nixprstatus.pr import commit_in_branch, pr_merge_status, commits_since
from tests.helpers.mocks import mocked_requests_get
class TestPRMergeStatus(unittest.TestCase):
@@ -37,12 +11,43 @@ class TestPRMergeStatus(unittest.TestCase):
pr = 345583
branches = ["master", "nixos-unstable", "nixos-24.05"]
res = pr_merge_status(pr, branches)
res = pr_merge_status(pr, branches, check_backport=False)
self.assertTrue(res.merged)
self.assertTrue(res.branches["master"])
self.assertTrue(res.branches["nixos-unstable"])
self.assertFalse(res.branches["nixos-24.05"])
@unittest.mock.patch("requests.get", side_effect=mocked_requests_get)
def test_pr_merge_status_backport_345769(self, mock_get):
pr = 345769
branches = ["nixos-24.05"]
res = pr_merge_status(pr, branches, check_backport=True)
self.assertTrue(res.merged)
self.assertTrue(res.branches["nixos-24.05 (#346022)"])
@unittest.mock.patch("requests.get", side_effect=mocked_requests_get)
def test_pr_merge_status_title_345769(self, mock_get):
pr = 345769
branches = ["nixos-24.05"]
expected_title = "Firefox: 130.0.1 -> 131.0; 128.2.0esr -> 128.3.0esr; 115.15.0esr -> 115.16.0esr"
res = pr_merge_status(pr, branches, check_backport=True)
self.assertEqual(res.title, expected_title)
@unittest.mock.patch("requests.get", side_effect=mocked_requests_get)
def test_pr_merge_status_no_check_master_345583(self, mock_get):
pr = 345583
branches = ["master", "nixos-unstable", "nixos-24.05"]
master_compare_url = "https://api.github.com/repos/NixOS/nixpkgs/compare/master...2c5fac3edf2d00d948253e392ec1604b29b38f14"
res = pr_merge_status(pr, branches, check_backport=False)
self.assertTrue(res.merged)
self.assertTrue(res.branches["master"])
urls_called = [call[0][0] for call in mock_get.call_args_list]
self.assertFalse(master_compare_url in urls_called)
class TestCommitInBranch(unittest.TestCase):
@unittest.mock.patch("requests.get", side_effect=mocked_requests_get)
@@ -53,3 +58,12 @@ class TestCommitInBranch(unittest.TestCase):
self.assertTrue(res)
res = commit_in_branch(commit_sha, "nixos-24.05")
self.assertFalse(res)
class TestCommitsSince(unittest.TestCase):
@unittest.mock.patch("requests.get", side_effect=mocked_requests_get)
def test_commits_since_27e30d17(self, mock_get):
commit_sha = "27e30d177e57d912d614c88c622dcfdb2e6e6515"
res = commits_since("nixos-unstable", commit_sha)
self.assertEqual(res, 795)

40
tests/test_watchlist.py Normal file
View File

@@ -0,0 +1,40 @@
from nixprstatus.watchlist import Watchlist, PRInfo
from tempfile import TemporaryDirectory
import unittest
from tests.helpers.mocks import mocked_requests_get
class TestWatchlist(unittest.TestCase):
def test_save_load(self):
with TemporaryDirectory() as d:
filename = f"{d}/test.json"
watchlist = Watchlist(prs=[PRInfo(pr=1, title="PR 1")])
watchlist.to_file(filename)
# Check that the file was written correctly
with open(filename, "r") as f:
self.assertEqual(watchlist.model_dump_json(), f.read())
# Check that the file can be read back
loaded = Watchlist.from_file(filename)
self.assertEqual(watchlist, loaded)
@unittest.mock.patch("requests.get", side_effect=mocked_requests_get)
def test_add_pr(self, mock_get):
w = Watchlist(prs=[])
w.add_pr(345583)
self.assertEqual(len(w.prs), 1)
self.assertEqual(w.prs[0].title, "wireshark: 4.2.6 -> 4.2.7")
def test_get_pr(self):
w = Watchlist(prs=[PRInfo(pr=1, title="PR 1")])
self.assertEqual(w.pr(1), PRInfo(pr=1, title="PR 1"))
self.assertEqual(w.pr(2), None)
def test_contains(self):
w = Watchlist(prs=[PRInfo(pr=1, title="PR 1")])
self.assertIn(PRInfo(pr=1, title="PR 1"), w)
self.assertIn(1, w)
self.assertNotIn(2, w)