Type a search term to find related articles by LIMS subject matter experts gathered from the most trusted and dynamic collaboration tools in the laboratory informatics industry.
URL |
github |
---|---|
言語 | 英語 |
タイプ | 協調的バージョンコントロール |
運営者 | GitHub, Inc. |
スローガン | Social Coding(社会的なコード記述) |
営利性 | Yes |
登録 | 必要 |
ユーザー数 | 1億人(2023年2月)[1][2] |
開始 | 2008年4月[3] |
現在の状態 | 運営中 |
GitHub(ギットハブ)は、ソフトウェア開発のプラットフォームであり、ソースコードをホスティングする。コードのバージョン管理システムにはGitを使用する。Ruby on RailsおよびErlangで記述されており、アメリカのカリフォルニア州サンフランシスコ市に拠点を置くGitHub社によって保守されている。主な開発者はクリス・ワンストラス、P.J.ハイエット、トム・プレストン・ワーナーである[4]。
GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供している。2019年1月より、プライベートリポジトリを無料で提供するようになった[5]。2009年のユーザー調査によると、GitHubは最もポピュラーなGitホスティングサイトとなった[6]。2023年にはユーザ数1億人を突破した[1][2]。
運営会社のGitHub, Inc.は2018年よりマイクロソフト傘下となっている。
GitHubにソースコードをホスティングすることで複数人のソフトウェア開発者と協働してコードをレビューしたり、プロジェクトを管理しつつ開発を行うことができる。
このサイトはSNS機能をもち、feeds、followersとして提供されている。ネットワークグラフとして開発者は自身のソースコードのバージョンのリポジトリを視覚的に把握できるようにしている。
GitHubはGist(ギスト)[7]と呼ばれるPastebinスタイルのサイトも運営している。それらのコンテンツは、具体的には個々のリポジトリのためのウィキおよびウェブページでありGitリポジトリを通して編集される。
2010年1月、GitHubは「GitHub社」という組織で運営されることになった[8]。
2018年6月4日にマイクロソフトがGitHub社を75億USドル(約8200億円)で買収すると発表[9]。CEOのサティア・ナデラは買収後もGitHub社を独立企業として維持する意向を示し[9][10]、ワンストラスはマイクロソフトのテクニカルフェローとなることも発表された[10]。10月末に買収手続きは完了し、予定通りXamarin創業者のナット・フリードマンがCEOに就任、マイクロソフト傘下として新たなスタートを切った[11][12]。
ソフトウェア開発者向けのウェブプラットフォームであるが、ファイルのアップローダーやソーシャル・ネットワーキング・サービスとみなし、民間企業や教育機関がアクセスを制限する例もある[13]。
GitHubは直接コミット禁止によるブランチの保護(保護されたブランチ/protected branches)を提供している。
GitHubにホストされたリモートリポジトリはgit pushにより更新できるが、これを許容すると意図しないバグによりpushを受けたブランチが壊れるリスクがある。GitHubは「指定ブランチへの直接コミット禁止 + チェック通過Pull Requestを介したmerge/rebase許可」という機能を提供することで、ブランチに問題のあるコミットが混入しないことを可能にしている[14]。
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が提供するCI/CDサービスである。
pull_request
イベントGitHub ActionsはPull Requestに応じたCIトリガー(pull_request
)を提供している。このトリガーはGITHUB_REF
引数としてrefs/pull/:prNumber/merge/
すなわちpull requestを自動マージしたブランチへの参照を提供する。Pull Requestに応じてactions/checkout@v2
などでこのrefをチェックアウトすれば、Pull Requestをマージした状態に対してCIテストを走らせることが可能になる[15]。