Darkmatter · agent stage: prod
preview@internal.darkmatter
Events received
146568
Ignored
146351
Jobs dispatched
223

Event dce3d0d0…

← All events

Event

Delivery
dce3d0d0-63c9-11f1-8427-8522f5e922f5
Event
issues
Action
edited
Received
2026-06-09T06:10:08.091Z
Signature
valid
Parsed
yes
Sender
czxtm
Repo
darkmatter/nixmac
Status
ignored — unsupported_event

Headers

{
  "accept": "*/*",
  "accept-encoding": "gzip, br",
  "cf-connecting-ip": "140.82.115.104",
  "cf-ipcountry": "US",
  "cf-ray": "a08df8b06f6ad634",
  "cf-visitor": "{\"scheme\":\"https\"}",
  "connection": "Keep-Alive",
  "content-length": "17547",
  "content-type": "application/json",
  "host": "github-bot.darkmatter.io",
  "user-agent": "GitHub-Hookshot/73b248b",
  "x-forwarded-proto": "https",
  "x-github-delivery": "dce3d0d0-63c9-11f1-8427-8522f5e922f5",
  "x-github-event": "issues",
  "x-github-hook-id": "628737947",
  "x-github-hook-installation-target-id": "3663660",
  "x-github-hook-installation-target-type": "integration",
  "x-real-ip": "140.82.115.104"
}

Payload

{
  "action": "edited",
  "issue": {
    "url": "https://api.github.com/repos/darkmatter/nixmac/issues/350",
    "repository_url": "https://api.github.com/repos/darkmatter/nixmac",
    "labels_url": "https://api.github.com/repos/darkmatter/nixmac/issues/350/labels{/name}",
    "comments_url": "https://api.github.com/repos/darkmatter/nixmac/issues/350/comments",
    "events_url": "https://api.github.com/repos/darkmatter/nixmac/issues/350/events",
    "html_url": "https://github.com/darkmatter/nixmac/issues/350",
    "id": 4618515429,
    "node_id": "I_kwDOSB6EzM8AAAABE0jz5Q",
    "number": 350,
    "title": "Onboarding: git-less onboarding",
    "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
    },
    "labels": [],
    "state": "open",
    "locked": false,
    "assignees": [],
    "milestone": null,
    "comments": 0,
    "created_at": "2026-06-09T03:27:25Z",
    "updated_at": "2026-06-09T06:10:06Z",
    "closed_at": null,
    "assignee": null,
    "author_association": "MEMBER",
    "issue_field_values": [],
    "type": null,
    "active_lock_reason": null,
    "sub_issues_summary": {
      "total": 0,
      "completed": 0,
      "percent_completed": 0
    },
    "issue_dependencies_summary": {
      "blocked_by": 0,
      "total_blocked_by": 0,
      "blocking": 0,
      "total_blocking": 0
    },
    "body": "I did an end-to-end test of onboarding using a real macbook that was freshly unboxed and it revealed some issues that we have not discovered yet. This is probably closely reproducible by putting yourself in an environment where git is not available.\n\nMy scenario was this: how many steps would it take from fresh Macbook to get back to my setup?\n\nSince git is not installed by default AND requires command line tools from XCode, git as a requirement is a non-starter. So here's the path I went with:\n\n1. Open Safari, go to github, sign in. This is the most annoying part because I don't have 1password yet so I need to pull out my phone and type the password or use my passkey.\n2. Can't run `git clone`, so I went to my repo and clicked download to get a zip of my repo\n3. Unzip, and first issue is uncovered: The zip does not include a `.git` in it, so our app doesn't work with it since it needs to be `git add`ed to work\n4. This means that we have to use a flake reference like `github:username/darwin` directly. The only way to do this with reasonable UX is to have one of those \"Connect Github\" OAuth flows in order to get an access token so that we can pass it to nix. We need to run `nix run nix-darwin — build --flake github:username/darwin`\n\nSo basically the goal of this issue is:\n\n* Allow `github:org/repo` references instead of local pathnames, which would fetch from github directly.\n* If the repo is private, this will only work if we add Github OAuth, so we need to add that.\n* We still need to clone their repo to disk, so our git integration needs to also support `git clone` and probably `git remote` commands.\n* The above only solves the direct reference case, but does not solve the case where someone unzips the file from github. For this, we need to support `git init` as well\n\n## Slack Context (2026-06-08)\n\nCooper and Scott discussed the implementation approach in DMs:\n\n* Preferred path: use `libgit2` (built with SSH support) to do `git clone` with auth — `ssh-keygen` + `ssh-add`, then libgit2 handles the rest without requiring git to be installed\n* Short-term workaround: add an instruction in onboarding to guide users through manual git setup\n* Open question: libgit2 won't fully replace all git auth flows; needs careful scoping\n\n---\n\n## Acceptance Criteria / Gherkin Specs\n\n```gherkin\nScenario: User without git can import their config via GitHub URL during onboarding\n  Given I am on a fresh macOS install without git or Xcode CLI tools installed\n  When I enter a GitHub repo URL (e.g., github:username/darwin) in the onboarding config step\n  Then nixmac fetches and clones the repo using its built-in git support\n  And I am not asked to install git separately\n\nScenario: Private GitHub repo requires OAuth authentication\n  Given I enter a private GitHub repo URL during onboarding\n  When nixmac detects the repo requires authentication\n  Then I am prompted to connect my GitHub account via OAuth\n  And after authorizing, nixmac clones the private repo successfully\n\nScenario: User downloads a zip from GitHub and uses it as config source\n  Given I downloaded a zip archive of my config repo from GitHub\n  And the zip does not contain a .git directory\n  When I point nixmac at the extracted folder\n  Then nixmac initializes a git repo in that folder (git init)\n  And adds the existing files to git tracking\n  And proceeds with the normal onboarding flow\n\nScenario: Config directory is on disk before evolution runs\n  Given a user provided a github:org/repo reference\n  When the onboarding clone completes\n  Then the repo is cloned to a local path on disk\n  And nixmac uses that local path for all subsequent evolution operations\n  And the user can inspect the files locally\n\nScenario: Onboarding instructions guide git-less users if auto-clone is unavailable\n  Given nixmac cannot complete the git clone automatically\n  When the failure is detected\n  Then clear instructions are shown explaining how to manually clone or download the repo\n  And a \"retry\" button is available once the user has set up their config directory\n```",
    "reactions": {
      "url": "https://api.github.com/repos/darkmatter/nixmac/issues/350/reactions",
      "total_count": 0,
      "+1": 0,
      "-1": 0,
      "laugh": 0,
      "hooray": 0,
      "confused": 0,
      "heart": 0,
      "rocket": 0,
      "eyes": 0
    },
    "timeline_url": "https://api.github.com/repos/darkmatter/nixmac/issues/350/timeline",
    "performed_via_github_app": {
      "id": 1658531,
      "client_id": "Iv23lia2it3rsjIhboVE",
      "slug": "linear-code",
      "node_id": "A_kwHOAshhgs4AGU6j",
      "owner": {
        "login": "linear",
        "id": 46686594,
        "node_id": "MDEyOk9yZ2FuaXphdGlvbjQ2Njg2NTk0",
        "avatar_url": "https://avatars.githubusercontent.com/u/46686594?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/linear",
        "html_url": "https://github.com/linear",
        "followers_url": "https://api.github.com/users/linear/followers",
        "following_url": "https://api.github.com/users/linear/following{/other_user}",
        "gists_url": "https://api.github.com/users/linear/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/linear/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/linear/subscriptions",
        "organizations_url": "https://api.github.com/users/linear/orgs",
        "repos_url": "https://api.github.com/users/linear/repos",
        "events_url": "https://api.github.com/users/linear/events{/privacy}",
        "received_events_url": "https://api.github.com/users/linear/received_events",
        "type": "Organization",
        "user_view_type": "public",
        "site_admin": false
      },
      "name": "Linear Code",
      "description": "",
      "external_url": "https://linear.app",
      "html_url": "https://github.com/apps/linear-code",
      "created_at": "2025-07-24T11:29:06Z",
      "updated_at": "2026-04-14T21:31:51Z",
      "permissions": {
        "actions": "write",
        "checks": "read",
        "contents": "write",
        "deployments": "read",
        "issues": "write",
        "members": "read",
        "merge_queues": "read",
        "metadata": "read",
        "pull_requests": "write",
        "statuses": "read",
        "workflows": "write"
      },
      "events": [
        "check_run",
        "check_suite",
        "commit_comment",
        "issues",
        "issue_comment",
        "member",
        "membership",
        "organization",
        "pull_request",
        "pull_request_review",
        "pull_request_review_comment",
        "pull_request_review_thread",
        "repository",
        "status",
        "sub_issues",
        "team",
        "team_add"
      ]
    },
    "state_reason": null,
    "pinned_comment": null
  },
  "changes": {
    "body": {
      "from": "I did an end-to-end test of onboarding using a real macbook that was freshly unboxed and it revealed some issues that we have not discovered yet. This is probably closely reproducible by putting yourself in an environment where git is not available.\n\nMy scenario was this: how many steps would it take from fresh Macbook to get back to my setup?\n\nSince git is not installed by default AND requires command line tools from XCode, git as a requirement is a non-starter. So here's the path I went with:\n\n1. Open Safari, go to github, sign in. This is the most annoying part because I don't have 1password yet so I need to pull out my phone and type the password or use my passkey.\n2. Can't run `git clone`, so I went to my repo and clicked download to get a zip of my repo\n3. Unzip, and first issue is uncovered: The zip does not include a `.git` in it, so our app doesn't work with it since it needs to be `git add`ed to work\n4. This means that we have to use a flake reference like `github:username/darwin` directly. The only way to do this with reasonable UX is to have one of those \"Connect Github\" OAuth flows in order to get an access token so that we can pass it to nix. We need to run `nix run nix-darwin — build --flake github:username/darwin`\n\nI actually remember thinking that it would be nice if we just let users create accounts and upload a backup of their repo. If we let users connect Github AND their apple ID, that would be the best of both worlds, since the user can auth into Nixmac without a password, AND we can keep their repo off our servers even if they want us to back it up for them.\n\nSo basically the goal of this issue is:\n\n* Allow `github:org/repo` references instead of local pathnames, which would fetch from github directly.\n* If the repo is private, this will only work if we add Github OAuth, so we need to add that.\n* We still need to clone their repo to disk, so our git integration needs to also support `git clone` and probably `git remote` commands.\n* The above only solves the direct reference case, but does not solve the case where someone unzips the file from github. For this, we need to support `git init` as well"
    }
  },
  "repository": {
    "id": 1209959628,
    "node_id": "R_kgDOSB6EzA",
    "name": "nixmac",
    "full_name": "darkmatter/nixmac",
    "private": false,
    "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/nixmac",
    "description": "Home manager and nix-darwin that understands plain English",
    "fork": false,
    "url": "https://api.github.com/repos/darkmatter/nixmac",
    "forks_url": "https://api.github.com/repos/darkmatter/nixmac/forks",
    "keys_url": "https://api.github.com/repos/darkmatter/nixmac/keys{/key_id}",
    "collaborators_url": "https://api.github.com/repos/darkmatter/nixmac/collaborators{/collaborator}",
    "teams_url": "https://api.github.com/repos/darkmatter/nixmac/teams",
    "hooks_url": "https://api.github.com/repos/darkmatter/nixmac/hooks",
    "issue_events_url": "https://api.github.com/repos/darkmatter/nixmac/issues/events{/number}",
    "events_url": "https://api.github.com/repos/darkmatter/nixmac/events",
    "assignees_url": "https://api.github.com/repos/darkmatter/nixmac/assignees{/user}",
    "branches_url": "https://api.github.com/repos/darkmatter/nixmac/branches{/branch}",
    "tags_url": "https://api.github.com/repos/darkmatter/nixmac/tags",
    "blobs_url": "https://api.github.com/repos/darkmatter/nixmac/git/blobs{/sha}",
    "git_tags_url": "https://api.github.com/repos/darkmatter/nixmac/git/tags{/sha}",
    "git_refs_url": "https://api.github.com/repos/darkmatter/nixmac/git/refs{/sha}",
    "trees_url": "https://api.github.com/repos/darkmatter/nixmac/git/trees{/sha}",
    "statuses_url": "https://api.github.com/repos/darkmatter/nixmac/statuses/{sha}",
    "languages_url": "https://api.github.com/repos/darkmatter/nixmac/languages",
    "stargazers_url": "https://api.github.com/repos/darkmatter/nixmac/stargazers",
    "contributors_url": "https://api.github.com/repos/darkmatter/nixmac/contributors",
    "subscribers_url": "https://api.github.com/repos/darkmatter/nixmac/subscribers",
    "subscription_url": "https://api.github.com/repos/darkmatter/nixmac/subscription",
    "commits_url": "https://api.github.com/repos/darkmatter/nixmac/commits{/sha}",
    "git_commits_url": "https://api.github.com/repos/darkmatter/nixmac/git/commits{/sha}",
    "comments_url": "https://api.github.com/repos/darkmatter/nixmac/comments{/number}",
    "issue_comment_url": "https://api.github.com/repos/darkmatter/nixmac/issues/comments{/number}",
    "contents_url": "https://api.github.com/repos/darkmatter/nixmac/contents/{+path}",
    "compare_url": "https://api.github.com/repos/darkmatter/nixmac/compare/{base}...{head}",
    "merges_url": "https://api.github.com/repos/darkmatter/nixmac/merges",
    "archive_url": "https://api.github.com/repos/darkmatter/nixmac/{archive_format}{/ref}",
    "downloads_url": "https://api.github.com/repos/darkmatter/nixmac/downloads",
    "issues_url": "https://api.github.com/repos/darkmatter/nixmac/issues{/number}",
    "pulls_url": "https://api.github.com/repos/darkmatter/nixmac/pulls{/number}",
    "milestones_url": "https://api.github.com/repos/darkmatter/nixmac/milestones{/number}",
    "notifications_url": "https://api.github.com/repos/darkmatter/nixmac/notifications{?since,all,participating}",
    "labels_url": "https://api.github.com/repos/darkmatter/nixmac/labels{/name}",
    "releases_url": "https://api.github.com/repos/darkmatter/nixmac/releases{/id}",
    "deployments_url": "https://api.github.com/repos/darkmatter/nixmac/deployments",
    "created_at": "2026-04-14T00:37:13Z",
    "updated_at": "2026-06-09T04:50:03Z",
    "pushed_at": "2026-06-09T05:23:46Z",
    "git_url": "git://github.com/darkmatter/nixmac.git",
    "ssh_url": "git@github.com:darkmatter/nixmac.git",
    "clone_url": "https://github.com/darkmatter/nixmac.git",
    "svn_url": "https://github.com/darkmatter/nixmac",
    "homepage": "https://nixmac.com",
    "size": 681059,
    "stargazers_count": 5,
    "watchers_count": 5,
    "language": "Rust",
    "has_issues": true,
    "has_projects": false,
    "has_downloads": true,
    "has_wiki": false,
    "has_pages": false,
    "has_discussions": false,
    "forks_count": 1,
    "mirror_url": null,
    "archived": false,
    "disabled": false,
    "open_issues_count": 75,
    "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,
    "has_pull_requests": true,
    "pull_request_creation_policy": "all",
    "topics": [
      "home-manager",
      "nix",
      "nix-darwin",
      "nix-flake",
      "opencode"
    ],
    "visibility": "public",
    "forks": 1,
    "open_issues": 75,
    "watchers": 5,
    "default_branch": "develop",
    "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": "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
  },
  "installation": {
    "id": 131074261,
    "node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMTMxMDc0MjYx"
  }
}