GitHub

ソフトウェア開発のプラットフォーム

GitHub(ギットハブ)は、ソフトウェア開発プラットフォームであり、ソースコードホスティングする。コードのバージョン管理システムにはGitを使用する。Ruby on RailsおよびErlangで記述されており、アメリカカリフォルニア州サンフランシスコ市に拠点を置くGitHub社によって保守されている。主な開発者はクリス・ワンストラスP.J.ハイエットトム・プレストン・ワーナー英語版である[4]

GitHub
URL github.com ウィキデータを編集
言語 英語
タイプ 協調的バージョンコントロール
運営者 GitHub, Inc.
スローガン Social Coding(社会的なコード記述)
営利性 Yes
登録 必要
ユーザー数 1億人(2023年2月)[1][2]
開始 2008年4月[3]
現在の状態 運営中

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. 継続的インテグレーション)。

 
Status Check toward Pull Request

マージ後にテストが走る形のCIを行った場合、一時的であれそのブランチが壊れた状態になるリスクがある。ステータスチェックを利用することで、ブランチが常に利用可能となり、かつ壊れたブランチに基づいたforkをおこなう可能性を0にできる。

GitHubはAPIとしてstatus APIChecks APIを提供しており、status APIによるRed/Greenの提示とChecks APIによるCI結果の詳細な提示をサポートしている。

GitHub Actions

編集

GitHub ActionsはGitHubが提供するCIサービスである。

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]

脚注

編集
  1. ^ a b 100 million developers and counting” (英語). GitHub. 2023年2月2日閲覧。
  2. ^ a b GitHubユーザー1億人時代--変わりつつある開発者の役割”. ZDNet. 2023年2月2日閲覧。
  3. ^ Wanstrath, Chris (2008年4月10日). “We Launched”. GitHub. 2012年1月31日閲覧。
  4. ^ Cooper, Peter (2008年4月10日). “GitHub Officially Launches: Git Hosting A-Go-Go!”. Ruby Inside. 2018年6月4日閲覧。
  5. ^ nat (2019年1月7日). “New year, new GitHub: Announcing unlimited free private repos and unified Enterprise offering” (英語). The GitHub Blog. 2019年1月8日閲覧。
  6. ^ Report | Survs” (英語). www.survs.com. 2018年6月5日閲覧。
  7. ^ Build software better, together” (英語). GitHub. 2018年6月5日閲覧。
  8. ^ Hyett, PJ (2010年1月21日). “New Year, New Company”. GitHub blog. 2012年1月31日閲覧。
  9. ^ a b “マイクロソフトが「GitHub」を75億ドルで買収、独立性は維持”. 日経クロステック. 日経BP. (2018年6月5日). https://xtech.nikkei.com/atcl/nxt/news/18/01459/ 2022年7月16日閲覧。 
  10. ^ a b サティア・ナデラ (2018年6月4日). “Microsoft + GitHub = Empowering Developers - The Official Microsoft Blog” (英語). The Official Microsoft Blog. 2018-06-04. https://blogs.microsoft.com/blog/2018/06/04/microsoft-github-empowering-developers/ 2018年6月5日閲覧。 
  11. ^ Microsoft completes GitHub acquisition” (英語). The Official Microsoft Blog (2018年10月26日). 2019年5月31日閲覧。
  12. ^ Pull request successfully merged. Starting build...” (英語). The GitHub Blog (2018年10月26日). 2019年5月31日閲覧。
  13. ^ GitHubへのアクセスをブロックする企業や学校が増加 - 財経新聞
  14. ^ "Protected branches ensure that collaborators on your repository cannot make irrevocable changes to branches. Enabling protected branches also allows you to enable other optional checks and requirements, like required status checks and required reviews." GitHub docs
  15. ^ "Checkout pull request HEAD commit instead of merge commit" Checkout V2 - actions

参考文献

編集

関連項目

編集

外部リンク

編集