GitHub の概要

完了

GitHub は、世界で最大のオープンソース コミュニティです。 Microsoft が GitHub を所有しています。 GitHub は、あなたの仕事スタイルからインスパイアされた開発プラットフォームです。

コードのホストとレビュー、プロジェクトの管理、ソフトウェアの構築を、オープン ソースからビジネスまで 4,000 万人の開発者と共に行えます。

GitHub とは、多数の機能を追加できるサービスをホストする Git リポジトリです。

Git はコマンド ライン ツールですが、GitHub は Web ベースのグラフィカル インターフェイスを提供します。

また、アクセス制御と、Wiki やすべてのプロジェクトにとって必須のタスク管理ツールなど、さまざまなコラボレーション機能も提供します。

では、GitHub を使用することの主な利点は何でしょう。 ほぼすべてのオープンソース プロジェクトが GitHub を使用してそのプロジェクトを管理しています。

GitHub を無料で使用できるのは、あなたのプロジェクトがオープン ソースであり、wiki とイシュー トラッカーを含んでいるためにより徹底的なドキュメンテーションができ、あなたのプロジェクトに関するフィードバックを得られる場合です。

GitHub によって提供される機能とはどのようなものでしょう?

  • コードからクラウドへの自動化: GitHub Packages と組み込み CI/CD で、GitHub Actions を使用して、運用コードをより迅速にサイクルし、ワークフローを簡略化します。

    • ワークフローを自動化する: コードを管理するのと同じ場所で、希望する方法で、CI/CD のビルド、テスト、デプロイを行い実行します。 あらゆる GitHub イベントから使用可能な API にアクションをトリガーします。 アクションをお好きな言語でビルドするか、コミュニティによって作成された何千ものワークフローとアクションから選択します。
    • パッケージを自宅でそれぞれのコードで: アクションを使用して、新しいパッケージ バージョンを GitHub Package へ自動的に公開します。 GitHub Package またはお好きなパッケージ レジストリでホストされているパッケージとイメージを、CI/CD ワークフローにインストールします。 オープン ソースの場合は常に無料であり、アクション内のデータ転送は誰にとっても制限がありません。
  • ソフトウェアを一緒にセキュリティ保護する: GitHub が世界のコード (開発者、保守管理者、研究者、セキュリティ チームなど) をセキュリティで保護する役割を果たします。 GitHub では、開発チームがどこででも一致協力して、世界のソフトウェア サプライ チェーンを、フォークからフィニッシュまで、セキュリティ保護できます。

    • コード内の脆弱性に関するアラートを受け取る: GitHub が、主要な言語のセキュリティ アドバイザリを継続的に調べます。 また、影響を受けるリポジトリの保守担当者にセキュリティ アラートを詳細とともに送るので、彼らはリスクを修正できます。
    • 脆弱性を自動的に更新する: GitHub がプロジェクトの依存関係を監視して、プル要求を自動的に開き、既知の脆弱性を解決する最小バージョンに依存関係を更新します。
    • CVE を把握する: 最新の共通脆弱性識別子 (CVE) を常に把握し、それらによりどのような影響を受けるのかについて GitHub Advisory Database で学習します。
    • 他のツールで見つけられない脆弱性を見つける: CodeQL は業界をリードするセマンティック コード分析エンジンです。 GitHub の革新的なアプローチがコードをデータとして扱い、セキュリティの脆弱性をより速く見つけ出します。
    • バリアントを排除する: 決して同じ間違いを繰り返しません。 型脆弱性スキャンを積極的に行うので、脆弱性が実稼働環境に到達しません。
    • トークンを安全に保つ: トークンを誤ってパブリック リポジトリにコミットしてしまいましたか? GitHub におまかせください。 20 のサービス プロバイダーからの支援を受けて、GitHub があなたを安全にするための措置を講じます。
  • シームレスなコード レビュー: コード レビューがより良いコードへの最も確かなパスであり、これは GitHub のしくみにとって必須です。 組み込みレビュー ツールによって、コード レビューがチームのプロセスの重要部分になります。

    • 変更を提案: より良いコードの始まりはプル要求から始まります。プル要求は変化に関する生きた会話で、アイデアを通じて話し合い、タスクを割り当てて、詳細を話し合い、レビューを行うことができます。
    • レビューをリクエストする: あなたがレビューの向こう側にいる場合は、あなたの同僚にレビューを要求して必要なフィードバックを詳細にもらうことができます。
    • 違いを調べる: 何が変更されたか正確にわかっていると、レビューが速くなります。 差分ではソース コードのバージョンが比較され、新規、編集済み、削除済みの各部分が強調表示されます。
    • コンテキスト内のコメント: ディスカッションは、コード内のコメント スレッドで行われます。コメントを 1 つのレビューにバンドルするか、会話を開始するために並んで待っている他のユーザーに返信します。
    • 明快なフィードバックを提供する: あなたのチームメイトは親指を立てた絵文字が何を意味するかについてあまり難しく考えるべきではありません。 あなたのコメントが必要な変更なのか、あるいはわずかな提案にすぎないのかを指定しましょう。
    • ブランチを保護する: 最も品質の高いコードだけをマージしましょう。 状態チェックを必要とするようリポジトリを構成して、人的エラーと管理オーバーヘッドを減らすことができます。
  • すべてのコードとドキュメントを 1 つの場所に: 何億ものプライベート ポジトリ、パブリック ポジトリ、オープン ソースのリポジトリが GitHub でホストされています。 すべてのリポジトリに、コードとドキュメントのホスト、バージョン管理、リリースに役立つツールがあります。

    • 共同作業を行うコード: リポジトリがコードを 1 つの場所に保持し、あなたが Git LFS を使用して大きなファイルを扱う場合でも、チームが好きなツールで共同作業をするのに役立ちます。 個人にもチームにもプライベート リポジトリの制限がないため、必要なだけプロジェクトを作成したりインポートしたりできます。
    • コードと並行したドキュメンテーション: ドキュメンテーションを直接あなたのリポジトリから、GitHub Pages を使用してホストします。 Jekyll を静的サイト ジェネレーターとして使用し、あなたの Pages をメイン ブランチの /docs フォルダーから公開します。
  • アイデアを管理する: GitHub のプロジェクト管理ツールを使って早い段階でコーディネートし、アライン状態を維持し、より多くのことを済ませましょう。

    • プロジェクトを広い視野で見る: プロジェクトの中で起きているすべてのものを見て、チームの Projects に関する重点をどこに置くかを選びましょう。タスク ボードはそれらがあるべき場所、コードの近くに置きましょう。
    • タスクの追跡と割り当て: 問題が、チーム内のタスクを見つけて、割り当てし、追跡するのに役立ちます。 問題を開いてバグを追跡したり、@mention について意見を交わしたり、作業の配布を開始したりできます。
  • ソフトウェアの人間的側面: ソフトウェアの作成でコーディング以上に重視されるのが、チームとコミュニティの管理です。 チームが 2 人であろうと 2,000 人であろうと、GitHub にはあなたのメンバーが必要とするサポートがあります。

    • チームの管理と成長: メンバーが GitHub チームによって体系化されるのを支援し、管理者ロールにアクセスできるようレベルアップさせ、入れ子になったチームでアクセス許可を微調整しましょう。
    • 会話し続ける: 問題およびプル要求ロックのようなモデレーション ツールが、あなたのチームがコードに集中し続けるのに役立ちます。 また、オープンソース プロジェクトを維持している場合は、ユーザー ブロックによってノイズが減り、会話が生産的になります。
    • コミュニティ ガイドラインを設定する: 役割と期待値を設定する際に、ゼロから始めずに済みます。 標準の倫理規定をカスタマイズして、プロジェクトに完璧なものを作成しましょう。 その後に、事前に作成されたライセンスをリポジトリから選択します。

GitHub が、優れたラーニング リソースをそのプラットフォームに提供します。 git 概要トレーニング、静的ページの GitHub への公開、GitHub で DevOps を行う方法に関する詳細を、 こちらでご覧になれます。