Payload
{
"action": "created",
"comment": {
"url": "https://api.github.com/repos/darkmatter/infra/pulls/comments/3405038462",
"pull_request_review_id": 4487716952,
"id": 3405038462,
"node_id": "PRRC_kwDOPq3Cd87K9MN-",
"diff_hunk": "@@ -0,0 +1,135 @@\n+# Discover HTTP endpoints from Cloudflare + Tailscale and refresh the AutoKuma\n+# monitor ConfigMap, then open a PR against darkmatter/gitops for ArgoCD to deploy.\n+#\n+# Two-stage render: `nix run .#discover-services` queries the Cloudflare API\n+# (Workers domains, DNS records), the cloudflared tunnel config, and the\n+# Tailscale API to write config/discovered-services.json (a build artifact in\n+# the infra checkout, not committed here). `nix run .#render-uptime-kuma-config`\n+# then merges that discovery output with config/service-catalog.nix and rewrites\n+# the AutoKuma static-monitors ConfigMap into\n+# gitops/manifests/autokuma/monitors-configmap.yaml.\n+#\n+# Why a PR (not a direct push): gitops `main` is review-gated (CODEOWNERS +\n+# kubeconform `Validate` CI), so the bot opens/updates a PR and ArgoCD only\n+# deploys once it merges. The PR commit is created via the GitHub API\n+# (sign-commits: true) so it is \"Verified\" and attributed to darkmatter-bot[bot].\n+#\n+# Operator prerequisite (one-time): the darkmatter-bot GitHub App must be\n+# installed on BOTH `infra` and `gitops` with Contents: write + Pull requests:\n+# write. CLOUDFLARE_API_TOKEN is the same secret used by sync-cloudflare-tunnel-dns.\n+name: Discover services\n+\n+on:\n+ schedule:\n+ - cron: '0 6 * * *' # Daily at 06:00 UTC\n+ workflow_dispatch:\n+ push:\n+ branches: [main]\n+ paths:\n+ - config/service-catalog.nix\n+ - config/discovered-services.json\n+ - nix/flake/apps/discover-services.nix\n+ - nix/flake/apps/render-uptime-kuma-config.nix\n+ - .github/workflows/discover-services.yml\n+\n+# Never run two discoveries at once — they would race on the bot branch.\n+concurrency:\n+ group: discover-services\n+ cancel-in-progress: false\n+\n+permissions:\n+ contents: read # gitops writes happen via the App token, not GITHUB_TOKEN\n+\n+jobs:\n+ discover:\n+ runs-on: ubuntu-latest\n+ env:\n+ NIX_CONFIG: |\n+ accept-flake-config = true\n+ extra-substituters = https://cache.nixos.org https://nix-community.cachix.org https://darkmatter.cachix.org\n+ extra-trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= darkmatter.cachix.org-1:FM0VM+D2fvMt8R899nyKsAxkcwERzDVYaeJEZ9oKejQ=\n+ steps:\n+ - name: Checkout infra\n+ uses: actions/checkout@v4\n+ with:\n+ persist-credentials: false\n+\n+ - name: Install Nix (Determinate)\n+ uses: DeterminateSystems/determinate-nix-action@v3\n+\n+ # Token scoped to infra (flake eval needs the repo) + gitops (checkout +\n+ # PR). Reuses the same App as generate-homepage.yml.\n+ - name: Mint darkmatter-bot installation token\n+ id: app-token\n+ uses: actions/create-github-app-token@v1\n+ with:\n+ app-id: ${{ secrets.DARKMATTER_APP_ID }}\n+ private-key: ${{ secrets.DARKMATTER_APP_PRIVATE_KEY }}\n+ owner: darkmatter\n+ repositories: |\n+ infra\n+ gitops\n+\n+ - name: Checkout darkmatter/gitops\n+ uses: actions/checkout@v4\n+ with:\n+ persist-credentials: false\n+ repository: darkmatter/gitops\n+ path: gitops\n+ token: ${{ steps.app-token.outputs.token }}\n+\n+ - name: Discover services from Cloudflare + Tailscale\n+ env:\n+ CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}\n+ CLOUDFLARE_ACCOUNT_ID: 57637f68fc95064ca667662b05784e27\n+ # TAILSCALE_API_KEY: ${{ secrets.TAILSCALE_API_KEY }} # TODO: add when available\n+ run: |",
"path": ".github/workflows/discover-services.yml",
"commit_id": "1a3bc877897166e5a4759226a8bf57c6d94ce7b7",
"original_commit_id": "1a3bc877897166e5a4759226a8bf57c6d94ce7b7",
"user": {
"login": "Copilot",
"id": 175728472,
"node_id": "BOT_kgDOCnlnWA",
"avatar_url": "https://avatars.githubusercontent.com/in/946600?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/Copilot",
"html_url": "https://github.com/apps/copilot-pull-request-reviewer",
"followers_url": "https://api.github.com/users/Copilot/followers",
"following_url": "https://api.github.com/users/Copilot/following{/other_user}",
"gists_url": "https://api.github.com/users/Copilot/gists{/gist_id}",
"starred_url": "https://api.github.com/users/Copilot/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/Copilot/subscriptions",
"organizations_url": "https://api.github.com/users/Copilot/orgs",
"repos_url": "https://api.github.com/users/Copilot/repos",
"events_url": "https://api.github.com/users/Copilot/events{/privacy}",
"received_events_url": "https://api.github.com/users/Copilot/received_events",
"type": "Bot",
"user_view_type": "public",
"site_admin": false
},
"body": "This workflow sets `CLOUDFLARE_ACCOUNT_ID` to `5763…e27`, which is a **zone ID** (used under `/zones/{zone_id}/…`). The discovery script calls Workers endpoints under `/accounts/{account_id}/…`, so this value will break Worker discovery.\n\nUse the Cloudflare **account** ID here (e.g. `acb126dc2c4cf93764fa69d9bd55a3cf`) or wire it from a secret/env that already holds the account ID.",
"created_at": "2026-06-12T17:12:45Z",
"updated_at": "2026-06-12T17:12:47Z",
"html_url": "https://github.com/darkmatter/infra/pull/24#discussion_r3405038462",
"pull_request_url": "https://api.github.com/repos/darkmatter/infra/pulls/24",
"_links": {
"self": {
"href": "https://api.github.com/repos/darkmatter/infra/pulls/comments/3405038462"
},
"html": {
"href": "https://github.com/darkmatter/infra/pull/24#discussion_r3405038462"
},
"pull_request": {
"href": "https://api.github.com/repos/darkmatter/infra/pulls/24"
}
},
"reactions": {
"url": "https://api.github.com/repos/darkmatter/infra/pulls/comments/3405038462/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"start_line": 83,
"original_start_line": 83,
"start_side": "RIGHT",
"line": 86,
"original_line": 86,
"side": "RIGHT",
"author_association": "NONE",
"original_position": 86,
"position": 86,
"subject_type": "line"
},
"pull_request": {
"url": "https://api.github.com/repos/darkmatter/infra/pulls/24",
"id": 3856308142,
"node_id": "PR_kwDOPq3Cd87l2peu",
"html_url": "https://github.com/darkmatter/infra/pull/24",
"diff_url": "https://github.com/darkmatter/infra/pull/24.diff",
"patch_url": "https://github.com/darkmatter/infra/pull/24.patch",
"issue_url": "https://api.github.com/repos/darkmatter/infra/issues/24",
"number": 24,
"state": "open",
"locked": false,
"title": "feat: multi-source service discovery for Uptime Kuma",
"user": {
"login": "czxtm",
"id": 1325802,
"node_id": "MDQ6VXNlcjEzMjU4MDI=",
"avatar_url": "https://avatars.githubusercontent.com/u/1325802?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/czxtm",
"html_url": "https://github.com/czxtm",
"followers_url": "https://api.github.com/users/czxtm/followers",
"following_url": "https://api.github.com/users/czxtm/following{/other_user}",
"gists_url": "https://api.github.com/users/czxtm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/czxtm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/czxtm/subscriptions",
"organizations_url": "https://api.github.com/users/czxtm/orgs",
"repos_url": "https://api.github.com/users/czxtm/repos",
"events_url": "https://api.github.com/users/czxtm/events{/privacy}",
"received_events_url": "https://api.github.com/users/czxtm/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "Add discover-services Nix app + extend render-uptime-kuma-config to merge discovered services + CI workflow.\n\n**New:**\n- `nix/flake/apps/discover-services.nix` — queries Cloudflare Workers API, DNS records (5 zones), cloudflared tunnel ConfigMap, and Tailscale API\n- `.github/workflows/discover-services.yml` — daily cron + on-push\n\n**Modified:**\n- `nix/flake/apps/render-uptime-kuma-config.nix` — merges discovered-services.json with service-catalog.nix (catalog wins on conflict)\n- `nix/flake/apps.nix` — registered discover-services for both platforms\n\nRun manually: `CLOUDFLARE_API_TOKEN=$(himitsu read cloudflare-api-token) nix run .#discover-services`",
"created_at": "2026-06-12T17:07:16Z",
"updated_at": "2026-06-12T17:12:47Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": "9f7d4d5f7915925ccdd5c4403c1649cf7f74ae0d",
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/darkmatter/infra/pulls/24/commits",
"review_comments_url": "https://api.github.com/repos/darkmatter/infra/pulls/24/comments",
"review_comment_url": "https://api.github.com/repos/darkmatter/infra/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/darkmatter/infra/issues/24/comments",
"statuses_url": "https://api.github.com/repos/darkmatter/infra/statuses/1a3bc877897166e5a4759226a8bf57c6d94ce7b7",
"head": {
"label": "darkmatter:feat/add-gluon-inventory",
"ref": "feat/add-gluon-inventory",
"sha": "1a3bc877897166e5a4759226a8bf57c6d94ce7b7",
"user": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1051574903,
"node_id": "R_kgDOPq3Cdw",
"name": "infra",
"full_name": "darkmatter/infra",
"private": true,
"owner": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/darkmatter/infra",
"description": "Versioned infra repo",
"fork": false,
"url": "https://api.github.com/repos/darkmatter/infra",
"forks_url": "https://api.github.com/repos/darkmatter/infra/forks",
"keys_url": "https://api.github.com/repos/darkmatter/infra/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/darkmatter/infra/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/darkmatter/infra/teams",
"hooks_url": "https://api.github.com/repos/darkmatter/infra/hooks",
"issue_events_url": "https://api.github.com/repos/darkmatter/infra/issues/events{/number}",
"events_url": "https://api.github.com/repos/darkmatter/infra/events",
"assignees_url": "https://api.github.com/repos/darkmatter/infra/assignees{/user}",
"branches_url": "https://api.github.com/repos/darkmatter/infra/branches{/branch}",
"tags_url": "https://api.github.com/repos/darkmatter/infra/tags",
"blobs_url": "https://api.github.com/repos/darkmatter/infra/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/darkmatter/infra/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/darkmatter/infra/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/darkmatter/infra/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/darkmatter/infra/statuses/{sha}",
"languages_url": "https://api.github.com/repos/darkmatter/infra/languages",
"stargazers_url": "https://api.github.com/repos/darkmatter/infra/stargazers",
"contributors_url": "https://api.github.com/repos/darkmatter/infra/contributors",
"subscribers_url": "https://api.github.com/repos/darkmatter/infra/subscribers",
"subscription_url": "https://api.github.com/repos/darkmatter/infra/subscription",
"commits_url": "https://api.github.com/repos/darkmatter/infra/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/darkmatter/infra/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/darkmatter/infra/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/darkmatter/infra/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/darkmatter/infra/contents/{+path}",
"compare_url": "https://api.github.com/repos/darkmatter/infra/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/darkmatter/infra/merges",
"archive_url": "https://api.github.com/repos/darkmatter/infra/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/darkmatter/infra/downloads",
"issues_url": "https://api.github.com/repos/darkmatter/infra/issues{/number}",
"pulls_url": "https://api.github.com/repos/darkmatter/infra/pulls{/number}",
"milestones_url": "https://api.github.com/repos/darkmatter/infra/milestones{/number}",
"notifications_url": "https://api.github.com/repos/darkmatter/infra/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/darkmatter/infra/labels{/name}",
"releases_url": "https://api.github.com/repos/darkmatter/infra/releases{/id}",
"deployments_url": "https://api.github.com/repos/darkmatter/infra/deployments",
"created_at": "2025-09-06T09:28:59Z",
"updated_at": "2026-06-12T15:18:35Z",
"pushed_at": "2026-06-12T17:07:01Z",
"git_url": "git://github.com/darkmatter/infra.git",
"ssh_url": "git@github.com:darkmatter/infra.git",
"clone_url": "https://github.com/darkmatter/infra.git",
"svn_url": "https://github.com/darkmatter/infra",
"homepage": null,
"size": 59381,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Nix",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": true,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 2,
"license": null,
"allow_forking": false,
"is_template": false,
"web_commit_signoff_required": false,
"has_pull_requests": true,
"pull_request_creation_policy": "all",
"topics": [],
"visibility": "private",
"forks": 0,
"open_issues": 2,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "darkmatter:main",
"ref": "main",
"sha": "454fcc8682817388e9eaafd24b964e1717362406",
"user": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1051574903,
"node_id": "R_kgDOPq3Cdw",
"name": "infra",
"full_name": "darkmatter/infra",
"private": true,
"owner": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/darkmatter/infra",
"description": "Versioned infra repo",
"fork": false,
"url": "https://api.github.com/repos/darkmatter/infra",
"forks_url": "https://api.github.com/repos/darkmatter/infra/forks",
"keys_url": "https://api.github.com/repos/darkmatter/infra/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/darkmatter/infra/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/darkmatter/infra/teams",
"hooks_url": "https://api.github.com/repos/darkmatter/infra/hooks",
"issue_events_url": "https://api.github.com/repos/darkmatter/infra/issues/events{/number}",
"events_url": "https://api.github.com/repos/darkmatter/infra/events",
"assignees_url": "https://api.github.com/repos/darkmatter/infra/assignees{/user}",
"branches_url": "https://api.github.com/repos/darkmatter/infra/branches{/branch}",
"tags_url": "https://api.github.com/repos/darkmatter/infra/tags",
"blobs_url": "https://api.github.com/repos/darkmatter/infra/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/darkmatter/infra/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/darkmatter/infra/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/darkmatter/infra/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/darkmatter/infra/statuses/{sha}",
"languages_url": "https://api.github.com/repos/darkmatter/infra/languages",
"stargazers_url": "https://api.github.com/repos/darkmatter/infra/stargazers",
"contributors_url": "https://api.github.com/repos/darkmatter/infra/contributors",
"subscribers_url": "https://api.github.com/repos/darkmatter/infra/subscribers",
"subscription_url": "https://api.github.com/repos/darkmatter/infra/subscription",
"commits_url": "https://api.github.com/repos/darkmatter/infra/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/darkmatter/infra/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/darkmatter/infra/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/darkmatter/infra/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/darkmatter/infra/contents/{+path}",
"compare_url": "https://api.github.com/repos/darkmatter/infra/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/darkmatter/infra/merges",
"archive_url": "https://api.github.com/repos/darkmatter/infra/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/darkmatter/infra/downloads",
"issues_url": "https://api.github.com/repos/darkmatter/infra/issues{/number}",
"pulls_url": "https://api.github.com/repos/darkmatter/infra/pulls{/number}",
"milestones_url": "https://api.github.com/repos/darkmatter/infra/milestones{/number}",
"notifications_url": "https://api.github.com/repos/darkmatter/infra/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/darkmatter/infra/labels{/name}",
"releases_url": "https://api.github.com/repos/darkmatter/infra/releases{/id}",
"deployments_url": "https://api.github.com/repos/darkmatter/infra/deployments",
"created_at": "2025-09-06T09:28:59Z",
"updated_at": "2026-06-12T15:18:35Z",
"pushed_at": "2026-06-12T17:07:01Z",
"git_url": "git://github.com/darkmatter/infra.git",
"ssh_url": "git@github.com:darkmatter/infra.git",
"clone_url": "https://github.com/darkmatter/infra.git",
"svn_url": "https://github.com/darkmatter/infra",
"homepage": null,
"size": 59381,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Nix",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": true,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 2,
"license": null,
"allow_forking": false,
"is_template": false,
"web_commit_signoff_required": false,
"has_pull_requests": true,
"pull_request_creation_policy": "all",
"topics": [],
"visibility": "private",
"forks": 0,
"open_issues": 2,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/darkmatter/infra/pulls/24"
},
"html": {
"href": "https://github.com/darkmatter/infra/pull/24"
},
"issue": {
"href": "https://api.github.com/repos/darkmatter/infra/issues/24"
},
"comments": {
"href": "https://api.github.com/repos/darkmatter/infra/issues/24/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/darkmatter/infra/pulls/24/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/darkmatter/infra/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/darkmatter/infra/pulls/24/commits"
},
"statuses": {
"href": "https://api.github.com/repos/darkmatter/infra/statuses/1a3bc877897166e5a4759226a8bf57c6d94ce7b7"
}
},
"author_association": "MEMBER",
"auto_merge": null,
"assignee": null,
"active_lock_reason": null
},
"repository": {
"id": 1051574903,
"node_id": "R_kgDOPq3Cdw",
"name": "infra",
"full_name": "darkmatter/infra",
"private": true,
"owner": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/darkmatter/infra",
"description": "Versioned infra repo",
"fork": false,
"url": "https://api.github.com/repos/darkmatter/infra",
"forks_url": "https://api.github.com/repos/darkmatter/infra/forks",
"keys_url": "https://api.github.com/repos/darkmatter/infra/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/darkmatter/infra/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/darkmatter/infra/teams",
"hooks_url": "https://api.github.com/repos/darkmatter/infra/hooks",
"issue_events_url": "https://api.github.com/repos/darkmatter/infra/issues/events{/number}",
"events_url": "https://api.github.com/repos/darkmatter/infra/events",
"assignees_url": "https://api.github.com/repos/darkmatter/infra/assignees{/user}",
"branches_url": "https://api.github.com/repos/darkmatter/infra/branches{/branch}",
"tags_url": "https://api.github.com/repos/darkmatter/infra/tags",
"blobs_url": "https://api.github.com/repos/darkmatter/infra/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/darkmatter/infra/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/darkmatter/infra/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/darkmatter/infra/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/darkmatter/infra/statuses/{sha}",
"languages_url": "https://api.github.com/repos/darkmatter/infra/languages",
"stargazers_url": "https://api.github.com/repos/darkmatter/infra/stargazers",
"contributors_url": "https://api.github.com/repos/darkmatter/infra/contributors",
"subscribers_url": "https://api.github.com/repos/darkmatter/infra/subscribers",
"subscription_url": "https://api.github.com/repos/darkmatter/infra/subscription",
"commits_url": "https://api.github.com/repos/darkmatter/infra/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/darkmatter/infra/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/darkmatter/infra/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/darkmatter/infra/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/darkmatter/infra/contents/{+path}",
"compare_url": "https://api.github.com/repos/darkmatter/infra/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/darkmatter/infra/merges",
"archive_url": "https://api.github.com/repos/darkmatter/infra/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/darkmatter/infra/downloads",
"issues_url": "https://api.github.com/repos/darkmatter/infra/issues{/number}",
"pulls_url": "https://api.github.com/repos/darkmatter/infra/pulls{/number}",
"milestones_url": "https://api.github.com/repos/darkmatter/infra/milestones{/number}",
"notifications_url": "https://api.github.com/repos/darkmatter/infra/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/darkmatter/infra/labels{/name}",
"releases_url": "https://api.github.com/repos/darkmatter/infra/releases{/id}",
"deployments_url": "https://api.github.com/repos/darkmatter/infra/deployments",
"created_at": "2025-09-06T09:28:59Z",
"updated_at": "2026-06-12T15:18:35Z",
"pushed_at": "2026-06-12T17:07:01Z",
"git_url": "git://github.com/darkmatter/infra.git",
"ssh_url": "git@github.com:darkmatter/infra.git",
"clone_url": "https://github.com/darkmatter/infra.git",
"svn_url": "https://github.com/darkmatter/infra",
"homepage": null,
"size": 59381,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Nix",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": true,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 2,
"license": null,
"allow_forking": false,
"is_template": false,
"web_commit_signoff_required": false,
"has_pull_requests": true,
"pull_request_creation_policy": "all",
"topics": [],
"visibility": "private",
"forks": 0,
"open_issues": 2,
"watchers": 0,
"default_branch": "main",
"custom_properties": {}
},
"organization": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"url": "https://api.github.com/orgs/darkmatter",
"repos_url": "https://api.github.com/orgs/darkmatter/repos",
"events_url": "https://api.github.com/orgs/darkmatter/events",
"hooks_url": "https://api.github.com/orgs/darkmatter/hooks",
"issues_url": "https://api.github.com/orgs/darkmatter/issues",
"members_url": "https://api.github.com/orgs/darkmatter/members{/member}",
"public_members_url": "https://api.github.com/orgs/darkmatter/public_members{/member}",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"description": ""
},
"enterprise": {
"id": 469843,
"slug": "darkmatter",
"name": "darkmatter",
"node_id": "E_kgDOAAcrUw",
"avatar_url": "https://avatars.githubusercontent.com/b/469843?v=4",
"description": "",
"website_url": "darkmatter.io",
"html_url": "https://github.com/enterprises/darkmatter",
"created_at": "2025-09-07T16:01:00Z",
"updated_at": "2026-06-07T16:53:26Z"
},
"sender": {
"login": "Copilot",
"id": 175728472,
"node_id": "BOT_kgDOCnlnWA",
"avatar_url": "https://avatars.githubusercontent.com/in/946600?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/Copilot",
"html_url": "https://github.com/apps/copilot-pull-request-reviewer",
"followers_url": "https://api.github.com/users/Copilot/followers",
"following_url": "https://api.github.com/users/Copilot/following{/other_user}",
"gists_url": "https://api.github.com/users/Copilot/gists{/gist_id}",
"starred_url": "https://api.github.com/users/Copilot/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/Copilot/subscriptions",
"organizations_url": "https://api.github.com/users/Copilot/orgs",
"repos_url": "https://api.github.com/users/Copilot/repos",
"events_url": "https://api.github.com/users/Copilot/events{/privacy}",
"received_events_url": "https://api.github.com/users/Copilot/received_events",
"type": "Bot",
"user_view_type": "public",
"site_admin": false
},
"installation": {
"id": 131074261,
"node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMTMxMDc0MjYx"
}
}