ドキュメント

トラブルシューティング

うまくいかなくなる数少ないこと、PullMark のメッセージが意味するもの、 そして静かな失敗の裏にある設計。ここにある「エラー」のほとんどは、あなたの仕事を失うまいと アプリがあえて拒んでいる場面です。

GitHub へのアクセス——どうつながり、どう直すか

PullMark は、あなた自身のツールがすでに持っている GitHub の認証情報を借ります——自前の ログインは持たず、秘密を保存することもありません。 設定 → 一般 → GitHub が、つながっているか、 誰として、どの出どころを通じてかを示します。「設定…」 は新しいマシンでの接続を 案内し、「再確認」 は直したその場で拾い上げます——gh auth login のあと、再起動は要りません。

PullMark(0.36 以降)が入っている Mac でこれを読んでいますか? いま接続の行を開く

PullMark が試す順に、認証情報の出どころはこうです。

  1. GitHub CLI のトークン。 gh auth token が何かを出力する必要があります。出ないなら brew install gh && gh auth login を——これが推奨の道です。 トークンのスコープは確かめられており、ブラウザのフローで SSO も扱え、更新もされます。
  2. それ以外なら git credential fill——github.com に対して git 自身が 使っているもの(macOS のキーチェーン、Git Credential Manager、昔の HTTPS プッシュが 残したトークン)。

中途半端に動いてしまうトークンのための、細かい話。classic トークンには repo スコープが(組織のチーム名まで要るなら read:org も) 必要です。fine-grained トークンはひとつのリソースオーナーに縛られます—— パブリックリポジトリと、そのオーナーのプライベートリポジトリは動き、それ以外は拒まれます。 SSO で保護された組織では、組織ごとにトークンを承認する必要があります。そして手作業で 作ったトークンには期限があります——「昨日は動いたのに」が診断される場所が、あの設定の 行です。

GitHub:「その ref には存在しないか…プライベートリポジトリかもしれません」

「… を開けませんでした: …。その ref には存在しないか、いまの GitHub 認証情報ではアクセスできないプライベートリポジトリかもしれません。」 GitHub の API は「プライベートで権限が無い」と「存在しない」をまったく 同じように報告するので、PullMark にもどちらなのかは 分かりません。動くはずのリポジトリなら、ほぼ間違いなく認証の問題です——上の GitHub へのアクセスを見るか、 設定 → 一般 → GitHub を開いて 「設定…」 を押してください。

Gatekeeper がアプリを開いてくれない

リリースは Developer ID で署名され、Apple の公証を受けているので、普通にダウンロード したものなら警告は出ません。ソースからビルドした場合(make app)はアドホック 署名なので、右クリック →「開く」→「開く」、または システム設定 → プライバシーとセキュリティ から許可してください。

Quick Look のプレビューがレンダリングされなくなった

Homebrew のアップグレードはアプリバンドルを差し替えるので、Quick Look 拡張の登録が 黙って外れることがあります。PullMark は起動のたびに登録し直すので、一度アプリを起動すれば それで済みます。それでも素のテキストが出るなら、設定 → 一般 →「Quick Look のプレビュー」 が「レンダリング」になっているか確かめてください。

「PullMark は Markdown のデフォルトアプリではなくなりました」

原因は同じです。アップグレードがバンドルを差し替え、macOS が .md の 関連付けを手放しました。バナーの 「もう一度デフォルトにする」 で取り戻せますし、 設定 → 一般 からでも同じことができます。

「このブロックを編集しているあいだに … が変更されました — 何も保存されていません」

ブロックエディタを開いてから保存するまでのあいだに、ファイルがディスク上で変わりました (別のエディタ、エージェント、git の操作)。PullMark は、動いてしまった行に割り込むことを 拒みます——失われるのはその 1 回の編集だけで、ブロックを開き直せば現在のテキストが出ます。 同じガードはコミットも守ります。ファイルが存在しない ref と比べたときは、空の差分を見せる 代わりに、そうとはっきり伝えます。

淡くなった行——「そこに無い」フォルダと最近の項目

疑問符バッジの付いた「場所」や、グレーになった最近の項目は、いまそのパスが解決できない という意味です——マウント解除されたボリューム、切り替えた git ブランチ、削除されたワーク ツリー。行が消えずに淡くなるのは、わざとです。パスが戻れば、自動的に復活します。もう生きて いない最近の項目をクリックすると、「最近使った項目から取り除く」「残す」 を選べます。

プルリクエスト——バナーと保留中のコメント

  • 「このプルリクエストは GitHub で更新されました。」——読み込んでからブランチが 動きました。更新はワンクリックで、下書きのコメントは生き残ります。レビューの途中で PullMark が勝手に読み直すことはありません。
  • 「レビューコメントを読み込めませんでした — 既存のスレッドが表示されて いない可能性があります。」——そうでなければ、差分がコメントの 無い PR のふりをしてしまいます。「再試行」で取得し直します。
  • 「保留中のコメント N 件を GitHub にアップロードできませんでした — 再試行のためローカルに保持しています。」—— オフラインで(あるいは API の不調で)書いたコメントは、PR のヘッドごとにディスクで順番を 待ち、可能になり次第アップロードされます。捨てられるものはありません。
  • 「… 個のファイルをコミットしました。ただしプッシュに失敗しました」——コミットはローカルの履歴に無事 あります。やり直すべきは、プッシュだけです。

アップデート

バナーの 「今すぐアップデート」 は brew のアップグレード(DMG でのインストールなら、 検証付きのその場での上書きインストール)を実行して、再起動します。失敗したときは、バナーが brew upgrade --cask pullmark というコマンドをそのまま「コピー」ボタン付きで 表示します——ターミナルで走らせても、することは同じです。開発ビルドはアップデートを 確認しません。

pullmark コマンド

  • 「no such file or folder」——コマンドは何かを開く前に、すべてのパスを検証 します。タイプミスひとつでオープン全体が中止され(終了コード 1)、スクリプトは大きな声で 失敗します。
  • Command not found——コマンドのインストールを 参照してください。
  • 「コマンドをインストールできませんでした」——設定のインストーラは /usr/local/bin に書き込むための認証を必要とします。プロンプトを閉じて しまったなら、キャンセルしてやり直してください。

それでも行き詰まったら

issue を立ててください—— ヘルプ →「バグを報告…」なら、アプリの中から下書き済みのものを開けます。