GitHub の概要
GitHub は、世界最大のオープンソース コミュニティです。 Microsoft は GitHub を所有しています。 GitHub は、作業方法から着想を得た開発プラットフォームです。
オープンソースからビジネスまで 4,000 万人の開発者と共に、コードのホストとレビュー、プロジェクトの管理、ソフトウェアの構築を行うことができます。
GitHub は、その機能の多くを追加する Git リポジトリ ホスティング サービスです。
Git はコマンドライン ツールですが、GitHub には Web ベースのグラフィカル インターフェイスが用意されています。
また、アクセス制御と、Wiki やすべてのプロジェクトに不可欠なタスク管理ツールなど、いくつかのコラボレーション機能も提供します。
では、GitHub を使用する主な利点は何ですか? ほぼすべてのオープンソース プロジェクトで GitHub を使用してプロジェクトを管理しています。
プロジェクトがオープン ソースであり、Wiki と問題トラッカーが含まれている場合、GitHub の使用は無料です。プロジェクトに関するより詳細なドキュメントを簡単に入手し、フィードバックを得ることができます。
GitHub によって提供される機能の一部は何ですか?
コードからクラウドへの自動化: GitHub Actions を使用して、GitHub パッケージと組み込みの CI/CD を使用して、運用コードをより迅速に循環させ、ワークフローを簡素化します。
- ワークフローを自動化する: コードを管理するのと同じ場所で CI/CD を構築、テスト、デプロイ、実行します。 任意の GitHub イベントから使用可能な API に対してアクションをトリガーします。 選択した言語でアクションを作成するか、コミュニティによって作成された何千ものワークフローとアクションから選択します。
- コードを含む自宅のパッケージ: Actions を使用して、新しいパッケージ バージョンを GitHub Packages に自動的に発行します。 CI/CD ワークフローで、GitHub Packages またはお好みのパッケージ レジストリでホストされているパッケージとイメージをインストールします。 オープン ソースでは常に無料であり、Actions 内のデータ転送はすべてのユーザーに対して無制限です。
ソフトウェアを一緒にセキュリティで保護する: GitHub は、開発者、保守管理者、研究者、セキュリティ チームなど、世界のコードをセキュリティで保護する上で役割を果たします。 GitHub では、開発チームが協力して、フォークから終了まで、世界のソフトウェア サプライ チェーンをセキュリティで保護できます。
- コードの脆弱性に関するアラートを取得する: GitHub は、一般的な言語のセキュリティ アドバイザリを継続的にスキャンします。 また、リスクを修復できるように、影響を受けるリポジトリの保守担当者に詳細を含むセキュリティ アラートを送信します。
- 脆弱性を自動的に更新する: GitHub はプロジェクトの依存関係を監視し、既知の脆弱性を解決する最小バージョンに依存関係を更新するためのプル要求を自動的に開きます。
- CVE の最新情報を確認する: 最新の一般的な脆弱性と露出 (CVE) で最新情報を入手し、GitHub アドバイザリ データベースでそれらがどのように影響するかを確認します。
- 他のツールが見逃している脆弱性を見つけます。CodeQL は業界をリードするセマンティック コード分析エンジンです。 GitHub の革新的なアプローチでは、コードをデータとして扱い、セキュリティの脆弱性をより迅速に特定します。
- バリアントを排除する: 同じ間違いを 2 回行うことはありません。 プロアクティブな脆弱性スキャンは、脆弱性が運用環境に到達するのを防ぎます。
- トークンを安全に保つ: 誤ってパブリック リポジトリにトークンをコミットしますか? GitHub があなたをサポートします。 20 のサービス プロバイダーからのサポートにより、GitHub は安全を維持するための手順を実行します。
シームレスなコード レビュー: コード レビューは、より優れたコードへの最も確実なパスであり、GitHub のしくみの基本です。 組み込みのレビュー ツールを使用すると、コード レビューがチームのプロセスの重要な部分になります。
- 変更の提案: コードの改善は、プル要求から始まり、アイデアを通じて話し合い、タスクを割り当て、詳細について話し合い、レビューを行うことができる変更に関する生きた会話から始まります。
- レビューを要求する: レビューの反対側にいる場合は、同僚にレビューを要求して、必要な詳細なフィードバックを受け取ることができます。
- 違いを確認する: 変更内容を正確に把握すると、レビューが迅速に行われます。 ソースコードのバージョンの「差分」は、新しい部分、編集された部分、または削除された部分を強調表示して比較します。
- コンテキスト内のコメント: ディスカッションは、コード内のコメント スレッドで行われます。コメントを 1 つのレビューにバンドルするか、会話を開始するために並んでいる他のユーザーに返信します。
- 明確なフィードバックを与える:あなたのチームメイトは、親指の絵文字が何を意味するかについてあまり一生懸命考える必要はありません。 コメントを必要な変更にするか、いくつかの提案だけを行うかを指定します。
- ブランチを保護する: 最高品質のコードのみをマージします。 状態チェックを要求するようにリポジトリを構成し、人的エラーと管理オーバーヘッドを削減できます。
すべてのコードとドキュメントが 1 か所に用意されています。数億個のプライベート、パブリック、オープンソースのリポジトリが GitHub でホストされています。 すべてのリポジトリには、ホスト、バージョン、およびリリース コードとドキュメントを支援するツールがあります。
- 共同作業を行うコード: リポジトリはコードを 1 か所に保持し、Git LFS を使用して大きなファイルを操作する場合でも、チームが好きなツールを使用して共同作業を行うのに役立ちます。 個人とグループ用の無制限のプライベート リポジトリを使用して、可能な限り多くのプロジェクトを作成またはインポートできます。
- コードと共にドキュメント: GitHub Pages を使用してリポジトリから直接ドキュメントをホストします。 Jekyll を静的サイト ジェネレーターとして使用し、メイン ブランチの /docs フォルダーから Pages を発行します。
アイデアを管理する: GitHub のプロジェクト管理ツールを使用して、早期に調整し、常に一致を保ち、より多くの成果を上げましょう。
- プロジェクトの大きな画像を確認する: プロジェクト内で発生しているすべてのものを確認し、プロジェクトとタスク ボードが属する場所 (コードの近く) でチームの取り組みに集中する場所を選択します。
- タスクの追跡と割り当て: 問題は、チーム内のタスクを特定、割り当て、追跡するのに役立ちます。 問題を開いてバグを追跡したり、@mentionとのアイデアについて話し合ったり、作業の配布を開始したりできます。
ソフトウェアの人間的な側面: ソフトウェアの構築は、コーディングよりもチームとコミュニティの管理に関することです。 2 人のグループでも 2000 人でも、GitHub にはユーザーが必要とするサポートがあります。
- チームの管理と拡張: ユーザーが GitHub チームを使用して整理し、管理者ロールにアクセスできるようにスケールアップし、入れ子になったチームでアクセス許可を微調整できるようにします。
- 会話を続ける: 問題やプル要求のロックなどのモデレーション ツールは、チームがコードに集中し続けるのに役立ちます。 また、オープンソース プロジェクトを維持している場合、ユーザーブロックによってノイズが軽減され、生産性の高い会話が保証されます。
- コミュニティ ガイドラインを設定する: 最初から始めずにロールと期待値を設定します。 標準の行動規範をカスタマイズして、プロジェクトに最適なものを作成します。 次に、リポジトリから事前に書き込まれたライセンスを選択します。
GitHub は、そのプラットフォームに優れた学習リソースを提供します。 Git の概要トレーニングから GitHub への静的ページの公開の詳細、GitHub で DevOps を実行する方法の詳細については、こちらを参照してください。