「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>GitHub Foundations]]
--[[GitHub Foundations - 学習ガイドPDF]]
--[[GitHub Foundations トレーニング]]
--[[GitHub Foundaitons ハンズオン]]
--[[GitHub Foundaitons MS Learn Collections]]
--[[LinkedIn Prepare for the GitHub Foundations Certification]]
--GitHub Foundations模擬試験

* 目次 [#l7cf7a9c]
#contents

*概要 [#q9cb9b31]
-以下、模擬試験をやって、説明できるようにしておくべきトピックを列挙。

-先ずは、https://ghcertified.com/practice_tests/ から
--問題数を指定してスタート。
--全問空送り+採点後に個別にチェックしても良い。

-LinkedInラーニングは評価で無償利用できそうではあるが「なんかアレ」(支払い情報登録などがあり)なのでチェックしなかった。
-LinkedInラーニングは評価で無償利用できそうではあるが~
「なんかアレ」(支払い情報登録などがあり)なのでチェックしなかった。

*詳細 [#r3666cee]

**基本 [#c0614f2b]

***Git、GitHub [#w0396192]
-Git
--commitとはスナップショット成り(断定)♨
--DVCSのD(分散)とはローカルコピー成り(断定)♨
--ブランチも同時作業に寄与する機能ではあるが分散ではない
--ブランチしたらマージする必要がある。
--Git で新しいブランチを 1 行で作成する方法
 git checkout -b ブランチ名
 git switch -c ブランチ名

-GitHub
--最も成功したGitホスティング・サービス
--Gitリポジトリに対するコラボレーションを支援するプラットフォーム

***Markdown [#g43de288]
-シンプルな記法を使って文書を記述できる軽量マークアップ言語
-マークアップをシンプルに削ぎ落としたと言う事でマークダウンと命名
-入力支援に「書式設定ツールバー」や「スラッシュ コマンド」がある。
-実は、GitHub Flavored Markdown (GFM)と言う拡張仕様らしい。
-チェックリストを作成するには - [ ] and - [x] などのGFM拡張仕様を使う。

***ファイル [#h0957e24]
リポジトリの表示方法をカスタマイズするファイル

-README.md:
--リポジトリのプロフィールを記載する
--優先順位:.githubディレクトリ、ルートディレクトリ、.docsディレクトリ
--(置き場は異なるがユーザのGitHubプロフィールを記載する場合にも使用される)

-CODEOWNERS.md:コードベースの特定の領域または全体を担当する個人またはチームを定義

-LICENSE.md:パブリック・リポジトリでOSSの場合、ライセンスを設定する。

-CITATION.cff:ユーザーがソフトウェアを正しく引用できるようにする。

-[[その他:CONTRIBUTING.md、CODE_OF_CONDUCT.md、SECURITY.md、SUPPORT.md、FUNDING.yml>GitHub Foundaitons ハンズオン#hf1ada4b]]

***ドキュメント [#k486dff9]
-リポジトリに紐付く
--Wiki:リポジトリのWiki(Markdown)
--GitHub Pages:静的HTMLのホスティング

-アカウントに紐付く
--Gist
---小さなコード スニペットを他のユーザーと簡単に共有
---パブリックからプライベートには変更できない。
---プライベートはアクセス許可ではなく検索にヒットするか/しないか。

***スター、フォロー、ウォッチ、 [#tdcbc335]
-スターをつける:評価したり、お気に入りとして保存する。
--ユーザ:できない
--リポジトリ:後で簡単に見つけられるようにまとめらる。他のユーザーに知らせる方法にもなる。

-フォロー、ウォッチする:エコシステム内での繋がりを深める。
--ユーザーをフォロー:個人のダッシュボードに、ユーザーの公開アクティビティに関する通知が届く
--プロジェクトをウォッチ:個人のダッシュボードに、プロジェクトの公開アクティビティに関する通知が届く

***検索 [#v53ec1a5]
-各種、エンティティの検索を行うことができる。

-以下のようなフィルタを使用する(ガチで覚えなくても消去法でイケる)。

--リポジトリの例
 in:name docker stars:>100 is:public

--イシューの例
 is:issue is:open label:test "fix"

***テンプレート系 [#f8b46f6c]
-リポジトリ・テンプレート
--既存のリポジトリからリポジトリテンプレートを作成
--リポジトリテンプレートから新しいリポジトリを作成

-イシュー・テンプレート+Form

-プルリクエスト・テンプレート

-プロジェクト・テンプレート
--新しいプロジェクト・テンプレートを作成
--管理者または書き込み権限を使用して、~
既存のプロジェクトをテンプレートとしてコピー
--組織のメンバーに推奨テンプレートを設定

-コメント(返信)テンプレート

--返信テンプレート
---イシュー・プルリクエストのコメントのテンプレート
---リポジトリ設定で作成、編集、削除

--保存した返信
---イシュー・プルリクエストで再利用できるコメント
---アカウント設定で作成、編集、削除

-コミットメッセージテンプレート(Git)
-GitHub Actionsテンプレート
-Codespacesテンプレート

***Flow [#y2dbc10c]
-Git Flow:大規模なプロジェクトや複雑な開発プロセスに適している。
--Main → Develop  →Feature → Develop → Release → Develop → Main
--Main → Hotfix → Main & Develop
--(ブランチは作業場の意味でリリースするのはReleaseではなくMainになる)

-GitHub Flow:GitHubが推奨するシンプルで軽量なワークフロー
--Mainブランチは常にデプロイ可能な状態に保つ。
--新しいブランチを作成して、作業を進める。
--作業が完了したらプルリクエストを作成してレビューを依頼
--コードレビューを経て、問題がなければMainブランチにマージ

**エンティティ [#he0e27b0]

***設定 [#m4f6da28]
-ピン留め~
お気に入りとかフォロー/ウォッチとは別。
--プロフィールページにリポジトリやGistを最大6つまで固定表示
--イシューリストの上部にイシューを最大3つまで固定表示

-メタデータ:
--エンティティへのLabel、Milestoneの割当はサイドバーのメタデータから
--Label:任意の分類Labelを付与できる。
--Milestone:残作業の把握、PJフェーズへの関連付け。

***settings系 [#if9d118f]
settings:各種のエンティティにあるsettingsから設定できる。

-
-
-

***リポジトリ [#ycecc4b0]
-コード、ファイル、各ファイルの改訂履歴を保存できる場所
-リポジトリの検出可能性を高める(解り易い名前、トピック、README.md等のマークダウン ドキュメント

-可視性オプション(プライベート、パブリック、内部(エンタープライズのみ))

-タブ
--settings:Issue、Wiki、Projectなどの設定を行う(無効化が可能)。
--Insights:
---リポジトリのアクティビティ(≒コード変更)に関するグラフや視覚化
---アクティビティの概要も含まれる(コード変更二関係あるモノ?)
---カンバセーションは含まれる(ディスカッションは含まれない)
---イシューのリストと言う選択肢はイシューのリストを見れば良いので無い。
---forkについては、コード変更に直接関係ないので含まれない。

***イシュー [#g8944383]
Issue(問題)

***プルリクエスト [#rd4731b4]
-プルをリクエストすると見せかけて実際はフェッチ&マージしている(笑)
-ブランチ元のブランチ(base)がブランチ先のブランチ(compare)をマージする

-4つの状態(Draft、Open、Merged、Closed)
-3つのレビューの状態(Comment、Request Changes、Approve)
-2つのプルリクエストをイシューにリンクする方法(メタデータ、イシュー番号)
-キーワードでプルリクエストとイシューのMerged、Closedを連動させる。

-ブランチ保護ルールでプルリクのマージ前にステータスチェック(例:2 つの承認)を強制
--mainブランチのブランチ保護ルールを作成する
--ブランチ保護ルールでは、マージ前にプルリクエストを要求する
--ブランチ保護ルールでは、プルリクエストをマージする前に少なくとも 2 つの承認が必要。

>展開保護ルールというのは、Actions関連の機能らしい。

***ディスカッション [#wd79a166]
-イシューとは異なり、コード修正に直接関係せず追跡する必要がない会話が対象
-コミュニティ フォーラム(会話、質問、お知らせ、アイデア共有)
-3つのアクション(ピン留め、別のリポジトリに転送、イシューに変換)

-イシューに変換
--正確には「ディスカッションからイシューを作成」
--ディスカッションは残るがリンクなどはない。

**機能 [#wa941914]

***コラボレーション [#z0b8678f]
-GitHubのフォーク
--語源はLinuxのフォークで親から子(プロセス)を作成する的な。
--自アカウントに存在する他のユーザーのリポジトリを個人用にコピー
--ローカルへのクローンではなく自アカウントへのクローン的な
--GitHub上で元のリポジトリとの連携が自動で管理される。~
(手動のクローン&プッシュでは連携機能は利用できない)

-組織のメンバーと外部の共同作業者
--共同作業者は組織に属さないがリポジトリ レベルの書き込みアクセス権を付与されたユーザー
--メンバーは組織に属し、より広範なアクセス権と役割を持つ場合がある。
--共同作業者は個人アカウントのプライベートリポジトリにも招待可能。

-エンティティ(イシュー、プルリクエスト)への人の割当はサイドバーのメタデータから行う。
-オープンソースは誰でも検査、変更、拡張できるソースコード付きのソフトウェア。
-インナーソースはオープンソースの開発手法や文化を企業や組織の内部で活用する手法

***プロジェクト [#aa36973f]
-イシューやプルリクエスト
--をプロジェクトに追加する方法:個別、自動、一括
--とプロジェクトとの同期は双方向で自動的に行われる。
--の3つのビューア:テーブル/スプレッドシート、カンバン/タスクボード、ロードマップ

-フィールド
--テキスト、数値、日付フィールド
--イテレーション フィールド
--カスタム フィールド

-自動化オプション
--Project workflows:組み込みの簡易自動化ワークフロー
--GitHub Actions:柔軟性高いカスタマイズが可能な強力なツール
--GitHub GraphQL API:プロジェクトデータをCRUDするWebAPI

-Close and delete(Closeしてもデータは保持されArchiveなどはない)
-Insights:プロジェクトの現在のステータスと履歴の進行状況を視覚化

-Classic → 現在
--エクスペリエンスに比べて多くの新機能と改善点を提供
--双方向の同期、3つのビューア、カスタム フィールド

***エディタ系 [#v210c093]
比較的簡素な開発環境(VSCode系)、もしくは、エディタ

-Codespaces

--リポジトリ専用に設定された事前構成済みの開発環境。
--必要に応じてVMが作成される。マシンタイプを選択できる。
--VMを占有するが、環境はDockerの仮想化コンテナで提供される。

--ライフサイクルが重要(作成、再構築、停止、削除)
---再構築:コンテナ構成に加えた変更を実装
---切断しても再接続可能、コミットされていない変更は保存される。

--ディープリンク:新しいCodespaceを特定の構成で作成できるリンク

--カスタマイズ
---表示名
---OSまたはベース イメージ、シェルの構成
---VS Code のインターフェース設定

--構成ファイル
---.devcontainerディレクトリ以下に配置する。
---Dockerfile(OSまたはベース イメージ、シェルの構成)
---devcontainer.json(使用するDockerfileや設定を指定)
---.vscode/settings.json

-github.dev editor

***セキュリティ系 [#le5d476d]
-Dependabot:リポジトリ内の依存関係の脆弱性をチェック
-CodeQL:コードを分​​析しコード内の脆弱性とエラーを特定

-シークレットスキャン:機密データが誤って公開されるのを防ぐために、リポジトリで既知の秘密形式を検索する機能。

**サブシステム的な [#b71de907]

***GitHub Actions [#eecdf8d0]
-GitHub のCI/CD プラットフォーム
-プルリクエストをマージする前に自動テストを実行する

-サポートする有効なトリガーイベント~
(コミットがプッシュされた、プルリクエストが開かれたなど

--リポジトリ関連のイベント:
---push: リポジトリに変更がプッシュ
---pull_request: プルリクエストが作成、更新、マージ
---release: リリースが公開、作成、削除

--その他
---CRON 式のスケジュールイベント
---Web フックイベント:
---手動でトリガー
---外部システムからのカスタムイベントでトリガー
---イシュー・コメント関連
---コードスキャン関連
---ラベル・マイルストーン関連
---環境・セキュリティ関連

***GitHub Copilot [#l8befded]
オートコンプリート形式の提案を提供する AI ペア プログラマー

- GitHub Copilot サブスクリプションをアクティブ化
-サポートされているIDEのいずれかでセットアップし、コーディングを開始

-プラン

--GitHub Copilot for Individuals
---Free:一部の機能への限定的なアクセス(学生、教師、人気OSSのメンテナ向け)
---Pro:すべての Copilot 機能に完全にアクセスできる。

--GitHub Copilot for Business~
組織や企業のポリシーを制御できる。

---Free:30 日間の無料試用版
---Team:組織・企業アカウントでサブスクリプションを購入

--GitHub Copilot Enterprise
---GitHub Enterprise Cloud 上で利用できる。
---Copilot Business +追加の AI 機能を提供

***GitHub Desktop、GitHub Mobile [#c19d0b90]
-GitHub Desktop
--Git&GitHubのGUI版のクライアントツール
--Actions、Copilotなどのサブシステム系の操作はできない。

-GitHub Mobile
--GitHubのGUI版のクライアントツール
--Gitクライアントではない点に注意
--主にコラボレーション系の操作が可能

***GitHub Marketplace [#tdfb307f]
販売するツールを公開するマーケット

-公開されている GitHub Actions 

***GitHub Sponsors program [#c1ffb92c]
オープンソースプロジェクトの開発者を経済的に支援

**アカウント、プラン、役割、権限 [#t2ada60f]

***アカウント [#k0386bd1]
-個人アカウント:1 人のユーザーのみに設定できる。
-組織アカウント:複数の所有者とメンバーを設定できる。
-企業アカウント:大規模な企業や組織向けに設計されたアカウント。

***ブラン [#ff33bec6]
-どのプランでもパブリック・リポジトリは無制限に作成可能

-Free:個人・組織アカウントの両方に共通
-Pro:個人アカウントの有料プラン
-Team:組織アカウントの有料プラン

-Enterprise:企業アカウントの有料プラン

--SAML 認証
--GitHub Actions などの使用量ベースの製品に対する使用可能量の追加。
--追加オプション:GitHub Advanced Security、GitHub Premium Support、GitHub Copilot Enterprise。

--デプロイ オプション:GitHub Enterprise Cloud と GitHub Enterprise Server の両方にアクセス可能
---GitHub Enterprise Cloud:追加機能提供のための追加クラウド・インスタンス
---GitHub Enterprise Server:オンプレにデプロイするハイブリッド・クラウド

***ロール [#ge302e00]

-リポジトリレベルのロール
--読み取り (Read): プロジェクトの表示やディスカッションが可能。
--書き込み (Write): プロジェクトへの積極的な貢献が可能。
--トリアージ (Triage): IssueやPull Requestの管理が可能。
--保守 (Maintain): リポジトリの管理が可能だが、機密操作は不可。
--管理者 (Admin): フルアクセス権を持ち、セキュリティ管理やリポジトリ削除が可能。
--個人アカウントの場合は、管理者・共同作業者(=書き込み)の権限レベルのみ。

-組織レベルのロール
--オーナー (Owner): 組織全体を管理する権限を持つ特権ユーザー。
--メンバー (Member): デフォルトのユーザーで、基本的な操作が可能。
--モデレーター(Moderators):(企業・組織の所有者、)組織レベルのモデレーター
--支払いマネージャー(Billing managers):(企業・組織の所有者、)組織レベルの請求管理者
--セキュリティマネージャー(Security managers):(企業・組織の所有者、)組織レベルのセキュリティ管理者(セキュリティ関連機能のON/OFF)
--GitHub アプリマネージャー(GitHub App managers):組織が所有する GitHub App 登録の設定を管理()
--外部協力者(Outside collaborators):外部の共同作業者を追加する場合のロール

>※ モデレーター:一般的に、議論や会話の進行を円滑に進める役割を担う人とされる。

-チームレベルのロール
--メンテナー (Maintainer): チームの管理(メンバーの追加・削除や子チームの作成)が可能。

***組織階層 [#s2845227]
3つの組織階層(チーム、組織、企業

-チーム
-組織
-企業

**認証 [#bc6a7efa]

***2FA [#efdc2eef]
-TOTP、セキュリティキー(FIDO)、パスキー(FIDO2/WebAuthn)、テキストメッセージ(SMS)、GitHub Mobile 
-2FAは、すべてのGitHubユーザーに対して推奨される設定。

***SSO [#pf068457]
-エンタープライズ管理ユーザー (EMU:Enterprise Managed Users) は GitHub Enterprise Cloud が GitHubアカウントを外部IdPと連携する機能
-ID連携にはSAML (Security Assertion Markup Language) をプロトコルとして使用し、外部IdPで認証&連携
-一部の IdP (Azure AD, Okta) では SCIM (System for Cross-domain Identity Management) に対応

***その他 [#we718b7e]
-個人アクセストークン (PAT) は、WebAPIとかCLI用

**その他 [#a1e955a1]

*参考 [#y70bf605]

**LinkedInラーニング [#v3f100ba]

-模擬試験~
https://www.linkedin.com/learning/practice-exam-1-for-github-foundations-certification/about-the-practice-exam
--GitHub Foundations 認定資格の模擬試験 1
--GitHub Foundations 認定資格の模擬試験 2
--GitHub Foundations 認定資格の模擬試験 3
--GitHub Foundations 認定資格の模擬試験 4

-模擬試験(日本語)~
https://www.linkedin.com/learning/practice-exam-1-for-github-foundations-certification-25089547/2135041
--GitHub Foundations Certification 模擬試験 1
--GitHub Foundations Certification 模擬試験 2
--GitHub Foundations Certification 模擬試験 3
--GitHub Foundations Certification 模擬試験 4

**その他ネット情報 [#bd819106]
-GitHub Foundations Practice Test :: GitHub Certified~
GitHub Foundations 模擬試験 :: GitHub 認定~
https://ghcertified.com/practice_tests/foundations/

--https://github.com/FidelusAleksander/ghcertified/tree/master/content/questions/foundations

-GitHub-Foundations Dumps are Available for Instant Access - Try Free~
GitHub-Foundations ダンプはすぐにアクセス可能 - 無料でお試しください~
https://www.certshero.com/github/github-foundations

-GitHub-Foundations問題集、GitHub実際の試験問題 - 模擬練習~
https://www.passtest.jp/GitHub-Foundations-mondaishuu.html

-GitHub Foundations Certification Practice Tests - JinalDesai.com~
GitHub Foundations 認定模擬試験 - JinalDesai.com~
https://jinaldesai.com/github-foundations-certification-practice-tests/

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS