From 5d6aefd59f826edcb1ec4e0e3f0de1996d6c17b5 Mon Sep 17 00:00:00 2001 From: thinceller Date: Sun, 23 Aug 2026 05:43:04 +0000 Subject: [PATCH] =?UTF-8?q?fix(gh):=20gh=20=E3=83=A2=E3=82=B8=E3=83=A5?= =?UTF-8?q?=E3=83=BC=E3=83=AB=E3=82=92=20common/default/server=20=E3=81=AB?= =?UTF-8?q?=E5=88=86=E5=89=B2=E3=81=97=20oberon=20=E3=81=AE=E3=83=93?= =?UTF-8?q?=E3=83=AB=E3=83=89=E3=82=92=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit oberon (nixpkgs-stable / nixos-25.11) の `build-nixos` が `attribute 'gh-stack' missing` で落ちていた。gh-stack は nixpkgs unstable に しか無く、unstable を使う darwin 2 host では通るが stable の oberon では 評価に失敗する。master から続く既存の問題。 claude-code / fish / git / opencode と同じ common.nix / server.nix の慣習に 合わせて gh モジュールを分割する。 - gh/common.nix: stable にも存在する gh-dash / gh-poi + settings + gh-prism - gh/default.nix: common.nix を import し、darwin 用に gh-stack と gh-pr-graph を追加 (extensions は list なのでマージされる) - gh/server.nix: oberon 用。common.nix だけ - hosts/oberon/home.nix: import 先を gh/server.nix に変更 副次効果として、ローカルサーバを立ててブラウザを開く gh-pr-graph が ヘッドレスな oberon に載らなくなる。これも意図した挙動。 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01QYmZcVLWwWwJ1MvuTSy2xs --- home-manager/programs/gh/common.nix | 22 ++++++++++++++++++++++ home-manager/programs/gh/default.nix | 28 +++++++++++----------------- home-manager/programs/gh/server.nix | 5 +++++ hosts/oberon/home.nix | 2 +- 4 files changed, 39 insertions(+), 18 deletions(-) create mode 100644 home-manager/programs/gh/common.nix create mode 100644 home-manager/programs/gh/server.nix diff --git a/home-manager/programs/gh/common.nix b/home-manager/programs/gh/common.nix new file mode 100644 index 00000000..39776534 --- /dev/null +++ b/home-manager/programs/gh/common.nix @@ -0,0 +1,22 @@ +# 全ホスト共通の gh 設定。 +# oberon は nixpkgs-stable (nixos-25.11) を使うため、ここには stable にも +# 存在するものだけを置く。unstable 限定の拡張は default.nix 側で足す。 +{ pkgs, ... }: +{ + programs.gh-prism.enable = true; + + programs.gh = { + enable = true; + extensions = [ + pkgs.gh-dash + pkgs.gh-poi + ]; + settings = { + git_protocol = "ssh"; + prompt = "enabled"; + aliases = { + co = ''!id="$(gh pr list -L100 | fzf | cut -f1)"; [ -n "$id" ] && gh pr checkout "$id"''; + }; + }; + }; +} diff --git a/home-manager/programs/gh/default.nix b/home-manager/programs/gh/default.nix index 41a70b68..fc0db472 100644 --- a/home-manager/programs/gh/default.nix +++ b/home-manager/programs/gh/default.nix @@ -1,24 +1,18 @@ +# darwin (nixpkgs unstable) 用の gh 設定。 { pkgs, sources, ... }: let gh-pr-graph = import ./gh-pr-graph.nix { inherit pkgs sources; }; in { - programs.gh-prism.enable = true; + imports = [ ./common.nix ]; - programs.gh = { - enable = true; - extensions = [ - pkgs.gh-dash - pkgs.gh-poi - pkgs.gh-stack - gh-pr-graph - ]; - settings = { - git_protocol = "ssh"; - prompt = "enabled"; - aliases = { - co = ''!id="$(gh pr list -L100 | fzf | cut -f1)"; [ -n "$id" ] && gh pr checkout "$id"''; - }; - }; - }; + # ここに置く拡張が oberon に載らないのは意図的: + # - gh-stack は nixpkgs unstable にしか無い (nixos-25.11 には未収録)。 + # - gh-pr-graph はローカルサーバを立ててブラウザを開くツールなので、 + # ヘッドレスな oberon では使えない。 + # programs.gh.extensions は list なので common.nix の定義とマージされる。 + programs.gh.extensions = [ + pkgs.gh-stack + gh-pr-graph + ]; } diff --git a/home-manager/programs/gh/server.nix b/home-manager/programs/gh/server.nix new file mode 100644 index 00000000..fa2681a9 --- /dev/null +++ b/home-manager/programs/gh/server.nix @@ -0,0 +1,5 @@ +# oberon (サーバー) 用の gh 設定。common.nix だけで完結する。 +{ ... }: +{ + imports = [ ./common.nix ]; +} diff --git a/hosts/oberon/home.nix b/hosts/oberon/home.nix index 9ca9ac07..97de2b4c 100644 --- a/hosts/oberon/home.nix +++ b/hosts/oberon/home.nix @@ -21,7 +21,7 @@ in ../../home-manager/programs/direnv ../../home-manager/programs/fish/server.nix ../../home-manager/programs/fzf - ../../home-manager/programs/gh + ../../home-manager/programs/gh/server.nix ../../home-manager/programs/git/server.nix ../../home-manager/programs/htop ../../home-manager/programs/hunk