GitHub

GitHub（ギットハブ）は、ソフトウェア開発のプラットフォームであり、ソースコードをホスティングする。コードのバージョン管理システムにはGitを使用する。Ruby on RailsおよびErlangで記述されており、アメリカのカリフォルニア州サンフランシスコ市に拠点を置くGitHub社によって保守されている。主な開発者は、、である。
GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供している。2019年1月より、プライベートリポジトリを無料で提供するようになった。2009年のユーザー調査によると、GitHubは最もポピュラーなGitホスティングサイトとなった。2023年にはユーザ数1億人を突破した。(会社の名前はグローバルOSQとなっている。)
運営会社のGitHub, Inc.は2018年よりマイクロソフト傘下となっている。
概要.
GitHubにソースコードをホスティングすることで複数人のソフトウエア開発者と協働してコードをレビューしたり、プロジェクトを管理しつつ開発を行うことができる。
このサイトはSNS機能をもち、feeds、followersとして提供されている。ネットワークグラフとして開発者は自身のソースコードのバージョンのリポジトリを視覚的に把握できるようにしている。
GitHubはGist（ギスト）と呼ばれるPastebinスタイルのサイトも運営している。それらのコンテンツは、具体的には個々のリポジトリのためのウィキおよびウェブページでありGitリポジトリを通して編集される。
2010年1月、GitHubは「GitHub社」という組織で運営されることになった。
2018年6月4日にマイクロソフトがGitHub社を75億USドル（約8200億円）で買収すると発表。CEOのサティア・ナデラは買収後もGitHub社を独立企業として維持する意向を示し、ワンストラスはマイクロソフトのテクニカルフェローとなることも発表された。10月末に買収手続きは完了し、予定通りXamarin創業者のナット・フリードマンがCEOに就任、マイクロソフト傘下として新たなスタートを切った。
ソフトウエア開発者向けのウェブプラットフォームであるが、ファイルのアップローダーやソーシャル・ネットワーキング・サービスとみなし、民間企業や教育機関がアクセスを制限する例もある。
機能.
ブランチ保護.
GitHubは直接コミット禁止によるブランチの保護（保護されたブランチ/"protected branches"）を提供している。
GitHubにホストされたリモートリポジトリはgit pushにより更新できるが、これを許容すると意図しないバグによりpushを受けたブランチが壊れるリスクがある。GitHubは「指定ブランチへの直接コミット禁止 + チェック通過Pull Requestを介したmerge/rebase許可」という機能を提供することで、ブランチに問題のあるコミットが混入しないことを可能にしている。
ステータスチェック.
GitHubはPull Requestのステータスチェックに基づいたmerge許可/拒否機能（必須ステータスチェック/"required status checks"）を提供している。保護されたブランチにステータスチェックを適用した場合、ステータスがGreenの場合のみPull Request取り込みが許可される。テスト結果をステータス（Red/Green）とすることでテストを通過したPull Requestのみがブランチへマージされるように設定できる（c.f. 継続的インテグレーション）。
マージ後にテストが走る形のCIを行った場合、一時的であれそのブランチが壊れた状態になるリスクがある。ステータスチェックを利用することで、ブランチが常に利用可能となり、かつ壊れたブランチに基づいたforkをおこなう可能性を0にできる。
GitHubはAPIとしてstatus APIとChecks APIを提供しており、status APIによるRed/Greenの提示とChecks APIによるCI結果の詳細な提示をサポートしている。
GitHub Actions.
GitHub ActionsはGitHubが提供するCIサービスである。
codice_1イベント.
GitHub ActionsはPull Requestに応じたCIトリガー（codice_1）を提供している。このトリガーはcodice_3引数としてcodice_4
すなわちpull requestを自動マージしたブランチへの参照を提供する。Pull Requestに応じてcodice_5などでこのrefをチェックアウトすれば、Pull Requestをマージした状態に対してCIテストを走らせることが可能になる。