Slide 1

Slide 1 text

GitLab入門 ~GitLabの特徴について 学ぶハンズオンワークショップ~ 2023/7/8 クラスメソッド株式会社 アライアンス事業部 木田 雅伊子

Slide 2

Slide 2 text

目次 1.はじめに 2.GitLabとは 3.ハンズオン実践 4.付録

Slide 3

Slide 3 text

自己紹介 3 3 https://dev.classmethod.jp/author/kidapan/ 木田 雅伊子 /きだぱん クラスメソッド株式会社 アライアンス事業部 エンジニアグループ 担当:DevOps製品 マーシャルフェレット (4ヶ月) ジャンガリアンハムスター (1歳2ヶ月)

Slide 4

Slide 4 text

スタッフ紹介

Slide 5

Slide 5 text

1.はじめに 2.GitLabとは 3.ハンズオン実践 4.付録

Slide 6

Slide 6 text

ハンズオンの目的 GitLabの入門を目的としたハンズオンです。 GitLabとは一体何者なのかから始まり、 GitLabでの基本的な使い方や活用方法についてカバーします。 GitLabを使ったことがない方 GitLabで開発をするイメージがつかめていない方 目 的 対 象 ゴール GitLabの特徴や機能について理解が出来る GitLabの基本的な機能が分かるようになる

Slide 7

Slide 7 text

1.はじめに 2.GitLabとは 3.ハンズオン実践 4.付録

Slide 8

Slide 8 text

GitLabとは、 Gitを使った開発やサービスの公開をサポートしてくれるプ ラットフォーム Webサービスとして提供されている GitLabとは たぬきのアイコンが目印。 実はキツネではない。 以前より、丸くなりました。

Slide 9

Slide 9 text

●2011年に設立 ○ ソースコード管理システムとしてスタート ■ これをきっかけに、機能追加が開始される ●バージョン管理システム(VCS) ○ ソースコードの変更を管理する ○ バージョンや、履歴、変更をひとつの文書として管理 ○ スナップショットを記録 ■ メタデータ、タイムスタンプを活用 ○ チーム間のコラボレーションをサポートする https://about.gitlab.com/company/

Slide 10

Slide 10 text

コードのバージョン管 理 プロジェクト管理/計 画 モニター WiKi 脆弱性管理 CI/CD 監査 課題分析 Auto DevOps

Slide 11

Slide 11 text

DevOps の全ステージを一貫してサポート

Slide 12

Slide 12 text

計画から開発・運用・監視まで ライフサイクルの全ステージを一貫してサポート

Slide 13

Slide 13 text

●DevOps におけるライフサイクルツール ○ 開発と運用を橋渡しする ●Git レポジトリマネージャ ○ 共有リポジトリで互いのコードをインテグレーションする ●CI/CD ○ チーム全体で協力しあって力を合わせる ○ パワフルで、スケールし、エンドツーエンドの自動化を 可能にする

Slide 14

Slide 14 text

GitLab コンポー ネント 機能 Project 作業が整理、管理、追跡、配信される中心的なビルディングブロックであり、チームがイシューという形で共同作業を行い、 作業計画を立てることを支援 Group プロジェクトの集合体。フォルダのようなもの Issue イシューはプロジェクトの一部です。チームが説明のユースケースを文書化し、アプローチを議論し、サイズ/労力(イシュー の重み)を見積もり、実際の時間/労力を追跡し、作業を割り当て、進捗を追跡する基本的な計画オブジェクト Epic テーマごとの整理に役立つ、異なるグループやプロジェクトにまたがる関連するイシューの集合 Merge Request イシューと実際のコード変更との関連。設計、実装の詳細(コード変更)、議論(コードレビュー)、承認、テスト(CIパイプライ ン)、セキュリティスキャンの実施 Label プロジェクトやグループの作業にタグを付けて追跡し、イシューを異なるイニシアチブに関連付けるために使用 Board プロジェクトとイシューを視覚的に一覧できるため、チームが作業のバックログを管理し、項目に優先順位をつけ、イシュー をチームやプロジェクトの特定のステージに移動させるのに使う Milestone スプリントまたは成果物(複数)、コード、イシュー、マージリクエストをまとまったグループの整理に使う Roadmap グループの様々なエピックをビジュアルに表現したもの

Slide 15

Slide 15 text

多彩な展開方法

Slide 16

Slide 16 text

GitLabとは GitHubとは何が違う? ●GitHubも同じようにGitを使った開発サポートの プラットフォームです! https://www.gitlab.jp/devops-tools/github-vs-gitlab.html

Slide 17

Slide 17 text

1.はじめに 2.GitLabとは 3.ハンズオン実践 4.付録

Slide 18

Slide 18 text

ハンズオン流れ 0.アカウント作成 1. プロジェクトとイシュー作成 2. Gitコマンド/Marge Request

Slide 19

Slide 19 text

ハンズオン0 アカウント作成 1 9

Slide 20

Slide 20 text

ハンズオン1 プロジェクトとイシューの作成

Slide 21

Slide 21 text

21 プロジェクト管理

Slide 22

Slide 22 text

グループとは ● 会社の組織や製品を反映する ○ チーム/部門/組織機能でのグループ単位 ○ ソフトウェア製品あるいはアーキテクチャ単位 ○ 地理的場所単位 ● あるGitLabコンポーネントを保持する ● メンバーを持つことができる ● メンバーに対して権限アクセスを付与することができる サブグループ ● ネストされたグループ(最大20レベルまで可能) ● 大きなプロジェクト群をまとめる ● より柔軟なアクセス権限のコントロールをしたい ● GitLabへのアクセス時のURLに含めることができる グループ サブグループ プロジェクト プロジェクト

Slide 23

Slide 23 text

プロジェクト ● グループの中に存在できる ● ソフトウェアプロジェクト、チーム、あるいは他のエンティティを示す ● チームの計画や作業の完了を管理することができる ● ソフトウェアを示す場合が多いが、必ずしもソフトウェアだけではない ● プロジェクトは、グループ直下、またはサブグループ配下に作成することができる ● グループ ○ サブグループ ■ プロジェクト ● イシュー ○ コメント ○ 参加者 ○ アサイン ○ プロジェクト ■ イシュー ● …

Slide 24

Slide 24 text

issue (イシュー)

Slide 25

Slide 25 text

issueとは ● 管理を目的とした、単一のワークアイテム(作業アイテム)として詳細を 記述したもの ○ 説明 ○ メタデータ(ほとんどはオプション扱い) ○ スレッドで議論できる ● コラボレーション参加者 ● プロジェクトレベルで使える ● プログラム開発だけじゃなく、あらゆる作業を記述できる ● (プログラム開発じゃなくても)ブランチやマージリクエストを絡めるこ ともある ● GitLabでプロジェクト管理をする際、最も最小単位のオブジェクト イシューは、GitLab上での 最小単位オブジェクト

Slide 26

Slide 26 text

ラベル

Slide 27

Slide 27 text

● イシューや、マージリクエスト、エピックに付与できる ○ オーナーをアサインする ○ ステータスを示す ○ 優先度をセットする ● フィルタリングのために利用し、ビューを複数持つことができる ● イシューボードをより便利に使うことができる ● スコープ外なのか、スコープ内なのか、といった使い方もできる ● ラベルには[購読機能]があるので、付与された際に通知を受け取ることができる ● ラベルには[優先度]があるので、優先度別でソートすることができる ● すでに定義済みのデフォルトのラベルを使うか、オリジナルのものを使うか ○ プロジェクトレベル、グループレベル、グローバルレベルで設定できる ● レベルについては、最も高いレベルで定儀すべき ● 注意:レベルが異なれば、同じ名前で作成できる ● 一つのアイテムには、複数のラベルを付与することができる

Slide 28

Slide 28 text

● プライベート ○ グループ/プロジェクトに対する明示的なアクセス権 ○ プロジェクトのクローン作成と閲覧は、プロジェクトメンバーのみ可能 ■ (ゲストは除く) ● インターナル (セルフホスティングのみ、SaaSでは利用不可) ○ すべてのログインユーザーは、リポジトリに対してゲスト権限を持つ ○ 内部プロジェクトのクローン作成は、ログインしているユーザーであれば誰でも可能 ● パブリック ○ すべてのログインユーザーは、リポジトリに対してゲスト権限を持つ ○ プロジェクトは、https や ssh 認証なしでクローンできる

Slide 29

Slide 29 text

ハンズオン2 Git / マージリクエスト

Slide 30

Slide 30 text

Marge Request (マージリクエスト)

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

マージリクエストによるトレーサビリティ ● CI/CD パイプラインの状態 ● レビュー用アプリへのリンク ● 承認プロセス ● テスト、検証結果 ○ コード品質 ○ セキュリティスキャン ○ ライセンスコンプライアンス ○ パフォーマンス ● コードレビュー ● コミット履歴 ● ソースコードの変更 ● コメント

Slide 33

Slide 33 text

Git

Slide 34

Slide 34 text

●フリーのオープンソースバージョン管理システム(VCS) ●ソフトウェア開発における、ソースコードの変更を管理する Git とは ●分散 ●適応しやすい ●早い&安定 ●柔軟 特 徴

Slide 35

Slide 35 text

ブランチ ● 同じコードベースの異なるバージョンを管理するため の仕組み ● チームから分離・独立した機能を開発するために使 用される ● 独立した開発ライン ● 同じソースコードを共有し、作業する ● メインブランチは、main(デフォルト)ブランチ ● git branch プッシュ ● ローカルリポジトリからリモートリポジトリにコンテンツ を転送またはアップロード ● ローカルからリモートリポジトリへプッシュして送信 ● コミット内容をプッシュしてエクスポート ● コミット内容をフェッチしてインポート チェックアウト ● ブランチの作成・移動・切り替え ● git checkout コミット ● 変更をローカルリポジトリに保存する仕組み ● ある時点でのスナップショット

Slide 36

Slide 36 text

1.はじめに 2.GitLabとは 3.ハンズオン実践 4.付録

Slide 37

Slide 37 text

セキュリティ

Slide 38

Slide 38 text

https://about.gitlab.com/install/ 8つのセキュリティ機能 SAST(静的アプリケーションセキュリティ) DAST(動的アプリケーションセキュリティ) シークレット(認証情報)検知 Infrastructure as Code スキャン コンテナスキャン ライセンスコンプライアンス(依存関係) ファズ(ファジング)テスト 脆弱性管理

Slide 39

Slide 39 text

その他

Slide 40

Slide 40 text

VS CodeのGitLab公式拡張機能「GitLab Workflow」

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

[AWS上でカンタン導入!GitLabで成功するDevOpsの実践方法 - YouTube] (https://www.youtube.com/watch?v=ccDtWMO-hE4)

Slide 44

Slide 44 text

No content