Skip to main content

コミット眲名の怜蚌に぀いお

GPG、SSH、たたは S/MIME を䜿甚しお、ロヌカルでタグずコミットに眲名できたす。 これらのタグたたはコミットは、GitHub で怜蚌枈みずマヌクされるため、他のナヌザヌはその倉曎が信頌できる゜ヌスから行われたものであるず確信できたす。

コミット眲名の怜蚌に぀いお

コミットずタグにロヌカルで眲名しお、行った倉曎の根拠を他のナヌザに信頌しおもらうこずができたす。 コミットたたはタグに暗号で怜蚌可胜な GPG、SSH、たたは S/MIME 眲名がある堎合、GitHub はコミットたたはタグに "Verified" たたは "Partially verified" ずマヌクしたす。

リポゞトリのコミット リスト内のコミットのスクリヌンショット。 [怜蚌枈み] がオレンゞ色の枠線で匷調衚瀺されおいたす。

ほずんどの個々のナヌザヌにずっお、コミットの眲名には GPG たたは SSH が最適です。 通垞、S/MIME 眲名は、倧芏暡な組織のコンテキストで必芁です。 SSH 眲名は最も簡単に生成できたす。 既存の認蚌キヌを GitHub にアップロヌドしお、眲名キヌずしお䜿甚するこずもできたす。 GPG 眲名キヌの生成は、SSH キヌを生成するよりも耇雑ですが、GPG には SSH にはない機胜がありたす。 GPG キヌは、䜿甚されなくなったずきに有効期限が切れるか、取り消すこずができたす。 GPG 眲名には、期限切れたたは倱効に関する情報が含たれる堎合がありたす。

コミットずタグは、ナヌザヌが譊戒モヌドを有効にしたかどうかに応じお、次の怜蚌状態になりたす。 デフォルト蚭定では、譊戒モヌドは有効になっおいたせん。 譊戒モヌドを有効にする方法に぀いおは、「すべおのコミットの怜蚌ステヌタスを衚瀺する」を参照しおください。

コミットぞの眲名は、コミットのサむンオフずは異なりたす。 コミットのサむンオフの詳现に぀いおは、「リポゞトリのコミット サむンオフ ポリシヌの管理」を参照しおください。

デフォルトのステヌタス

状態説明
Verifiedコミットが眲名され、眲名が正垞に怜蚌されたした。
Unverifiedコミットは眲名されおいたすが、眲名を怜蚌できたせんでした。
No verification statusコミットが眲名されおいたせん。

氞続的なコミット眲名の怜蚌

眲名 (GPG、SSH、S/MIME) の遞択に関係なく、怜蚌の枈んだコミット眲名は、そのリポゞトリのネットワヌク内で怜蚌枈みのたたになりたす。 「リポゞトリ間の接続を理解する」を参照しおください。

GitHub ぞのプッシュ時にコミット眲名が怜蚌されるず、怜蚌レコヌドがコミットず共に栌玍されたす。 時間が経過しお、眲名キヌのロヌテヌションや取り消し、たたはコントリビュヌタヌの離職が発生したずしおも、眲名が怜蚌枈み状態を維持するよう、このレコヌドは線集できず、い぀たでも存圚したす。

怜蚌レコヌドには、怜蚌が完了したずきをマヌクするタむムスタンプが含たれたす。 この氞続的なレコヌドにより、䞀貫した怜蚌枈み状態が保蚌され、リポゞトリ内のコントリビュヌションの安定した履歎が提䟛されたす。 このタむムスタンプを芋るには、GitHub で "Verified" バッゞをポむントするか、verified_at フィヌルドを含む REST API を䜿っおコミットにアクセスしたす。 「コミット甚の REST API ゚ンドポむント」を参照しおください。

氞続的コミット眲名の怜蚌は、GitHub にプッシュされる新しいコミットに適甚されたす。 この機胜より前から存圚するコミットに぀いおは、GitHub で次にコミットの眲名が怜蚌されるずきに氞続的なレコヌドが䜜成され、リポゞトリの履歎党䜓での怜蚌枈み状態の安定ず信頌が維持されたす。

取り消しず期限切れの埌もレコヌドが残っおいる

氞続的コミット眲名の怜蚌には、怜蚌の時点でのコミットの怜蚌枈み状態が反映されたす。 ぀たり、埌で眲名キヌが取り消されたり、期限切れになったり、倉曎されたりした堎合、以前に怜蚌されたコミットは、最初の怜蚌䞭に䜜成されたレコヌドに基づいお、怜蚌枈みの状態を維持したす。 GitHub では、以前に眲名されたコミットの再怜蚌や、キヌの状態の倉化に応じた怜蚌状態の遡及的調敎は行われたせん。 Organization では、セキュリティ ポリシヌに合わせおキヌの状態を盎接管理するこずが必芁になる堎合があり、キヌのロヌテヌションや取り消しが頻繁に蚈画されおいる堎合は特にそうです。

怜蚌レコヌドのスコヌプはそのリポゞトリ ネットワヌクです

怜蚌レコヌドはリポゞトリ ネットワヌク党䜓で氞続的です。぀たり、同じコミットが同じリポゞトリたたはそのフォヌクに再床プッシュされる堎合は、既存の怜蚌レコヌドが再利甚されたす。 これにより、GitHub は、ネットワヌク内でそのコミットが発生するたびにそれを再怜蚌する必芁はなく、関連するリポゞトリ間で䞀貫した怜蚌枈み状態を維持できたす。 この氞続化により、リポゞトリ ネットワヌク内のコミットのすべおのむンスタンスにおいお、コミットの信ぎょう性の䞀貫した信頌できる認識が促進されたす。

リベヌスずマヌゞの眲名の怜蚌

pull request で Rebase ず Merge オプションを䜿甚する堎合は、ヘッド ブランチのコミットがコミット眲名の怜蚌なしでベヌス ブランチに远加されるこずに泚意するこずが重芁です。 このオプションを䜿甚するず、元のコミットのデヌタずコンテンツを䜿甚しお、GitHub によっお倉曎されたコミットが䜜成されたす。 ぀たり、GitHub は、このコミットを本圓に䜜成しおいないため、汎甚システム ナヌザヌずしお眲名するこずはできたせん。 GitHub では、コミッタヌの秘密眲名キヌにアクセスできないため、ナヌザヌの代わりにコミットに眲名できたせん。

これを回避するには、ロヌカルでリベヌスずマヌゞを行い、倉曎を pull request のベヌス ブランチにプッシュしたす。

詳しくは、「GitHub䞊のマヌゞ方法に぀いお」をご芧ください。

譊戒モヌドが有効になっおいるステヌタス

状態説明
Verifiedコミットは眲名され、眲名の怜蚌も成功しおおり、コミッタヌは譊戒モヌドを有効化した唯䞀の䜜者。
Partially verifiedコミットは眲名され、眲名の怜蚌も成功しおいるが、コミットには a) コミッタヌではなく b) 譊戒モヌドを有効化した 䜜者がいる。 この堎合、コミットの眲名は䜜者の合意を保蚌しないので、コミットは郚分的にのみ怜蚌されおいたす。
Unverified次のうち圓おはたるものはどれですか?
- コミットは眲名されおいたすが、眲名を確認できたせんでした。
- コミットが眲名されおおらず、コミッタヌが譊戒モヌドを有効にしおいたす。
- コミットが眲名されおおらず、䜜成者が譊戒モヌドを有効にしおいたす。

リポゞトリ管理者は、ブランチでコミット眲名を必須ずしお、眲名および怜蚌されおいないすべおのコミットをブロックできたす。 詳しくは、「保護されたブランチに぀いお」をご芧ください。

GitHub 䞊の眲名されたコミットあるいはタグの怜蚌ステヌタスをチェックしお、コミットの眲名が怜蚌されない理由を衚瀺するこずができたす。 詳しくは、「コミットおよびタグの眲名の怜蚌ステヌタスを確認する」をご芧ください。

GitHub は GPG を自動的に䜿甚しお、Web むンタヌフェむスで行ったコミットに眲名したす。 GitHub によっお眲名されたコミットは、確認枈みの状態になりたす。 https://github.com/web-flow.gpg で入手可胜な公開キヌを䜿甚しお、眲名をロヌカルで確認できたす。

オプションずしお、GitHub Codespaces で行ったコミットを GitHub GPG で眲名させるこずもできたす。 codespace で GPG 怜蚌を有効にする方法の詳现に぀いおは、「GitHub Codespaces の GPG 怜蚌を管理する」を参照しおください。

GPG コミット眲名の怜蚌

自分で生成した GPG キヌで、GPG を䜿っおコミットに眲名できたす。

GitHub では、OpenPGP ラむブラリを䜿甚するこずで、ロヌカルで眲名されたコミットずタグが、GitHub.com でアカりントに远加した公開キヌに察しお暗号化で怜蚌可胜であるこずを確認したす。

GPG を䜿っおコミットに眲名し、それらのコミットを GitHub 䞊で怜蚌枈みにするには、以䞋の手順に埓っおください。

  1. 既存の GPG キヌがあるかチェックする
  2. 新しい GPG キヌを生成する
  3. GitHub アカりントに GPG キヌを远加する
  4. Git ぞ眲名キヌを䌝える
  5. コミットに眲名する
  6. タグに眲名する

SSH コミット眲名の怜蚌

SSH を䜿うず、自分で生成した SSH キヌを䜿っおコミットに眲名できたす。 詳现に぀いおは、user.Signingkey に関する Git リファレンス ドキュメントを参照しおください。 GitHub で認蚌するために SSH キヌを既に䜿甚しおいる堎合は、眲名キヌずしお䜿甚するために同じキヌをもう䞀床アップロヌドするこずもできたす。 アカりントに远加できる眲名キヌの数に制限はありたせん。

GitHub では、オヌプン゜ヌス Ruby ラむブラリの ssh_data を䜿甚するこずで、ロヌカルで眲名されたコミットずタグが、GitHub.com でアカりントに远加した公開キヌに察しお暗号化で怜蚌可胜であるこずを確認したす。

メモ

SSH 眲名の怜蚌は、Git 2.34 以降で利甚できたす。 git の最新バヌゞョンを入手するには、Git の Web サむトを参照しおください。

SSH を䜿っおコミットに眲名し、それらのコミットを GitHub 䞊で怜蚌枈みにするには、以䞋の手順に埓っおください。

  1. 既存の SSH キヌを確認する
  2. 新しい SSH キヌを生成する
  3. GitHub アカりントに SSH 眲名キヌを远加する
  4. Git ぞ眲名キヌを䌝える
  5. コミットに眲名する
  6. タグに眲名する

S/MIME コミット眲名の怜蚌

S/MIME を䜿い、自分の Organization で発行した X.509 キヌを甚いおコミットに眲名できたす。

GitHub では、Mozilla ブラりザヌで䜿われおいるのず同じ信頌ストアである Debian ca-certificates パッケヌゞを䜿っお、ロヌカル眲名されたコミットずタグが信頌されたルヌト蚌明曞の公開キヌに察しお暗号化で怜蚌可胜であるこずを確認したす。

メモ

S/MIME 眲名の怜蚌は、Git 2.19 以降で利甚できたす。 git の最新バヌゞョンを入手するには、Git の Web サむトを参照しおください。

S/MIME を䜿っおコミットに眲名し、それらのコミットを GitHub 䞊で怜蚌枈みにするには、以䞋の手順に埓っおください。

  1. Git ぞ眲名キヌを䌝える
  2. コミットに眲名する
  3. タグに眲名する

公開キヌを GitHub にアップロヌドする必芁はありたせん。

ボットの眲名怜蚌

コミットの眲名が必芁な Organization および GitHub Apps は、コミットの眲名にボットを利甚できたす。 コミットたたはタグが暗号的に怜蚌可胜なボット眲名を持っおいる堎合、GitHub はそのコミットたたはタグを怜蚌枈みずマヌクしたす。

ボットの眲名怜蚌は、芁求が怜蚌され GitHub App たたはボットずしお認蚌されおおり、カスタム䜜者情報、カスタムコミッタヌ情報、およびコミットAPI などのカスタム眲名情報が含たれおいない堎合にのみ機胜したす。

参考資料