メインコンテンツまでスキップ

Source Code Management

Cloud ZCP プラットフォームは、GiteaというオンプレミスのGitソリューションを、ソースコード管理(SCM)の統合ツールとして利用しています。Giteaのようなオンプレミスソリューションを使用することで、公共のSCMソリューションを使用する際のセキュリティ上の懸念を軽減できます。Giteaは、バージョン管理、コラボレーション、およびプラットフォームのCI/CD機能との統合のための標準的なGit機能を提供します。

ZCP コンソール内でアプリケーションを登録する際には、Gitea(または他の標準的なGitサーバー)にあるソースコードリポジトリにリンクします。プラットフォームは、ビルドプロセスのためにソースリポジトリにアクセスするために必要な資格情報(Secrets)を安全に管理します。プラットフォーム内のビルドパイプラインは、リンクされたGitリポジトリの特定のブランチからコードを取得するように構成されています。

Gitea へのアクセス

ZCPコンソールのプロジェクトユーザー用メニューを通じて、統合されたGiteaインスタンスにアクセスできます: Dev Tools > Source:

Giteaのアカウントは、現在ログインしているCloud ZCPアカウントに自動的にリンクされています。最初に接続する際には、Gitコマンドライン操作(git pullgit pushなど)のために特別なパスワードを設定する必要があるかもしれません。

ユーザー権限とロール

プロジェクトコンテキスト内でGiteaを使用するための権限は、ZCPコンソール内の管理者ロールを持つユーザーによって管理されます。

プロジェクトメンバーへのアクセスと権限は、適切なロールをユーザーに直接割り当てるか、必要なロールを持つグループにユーザーを追加することで付与されます。これらの権限は、モダナイゼーションプラットフォーム内で定義されたロールにリンクされています。

ユーザーが異なる権限レベルを持つ複数のロールを同時に付与された場合、最も高い権限レベルが適用されます。

ヒント

git-administratorgit-writerのような特定のロールは、Giteaのプロジェクトの組織内に新しいリポジトリを作成するために必要です。

組織とリポジトリ

  • Organizations: Giteaの組織は、ZCPコンソールのプロジェクトに対して1対1のマッピングで自動的に作成および管理されます。組織名は、REALM-PROJECTという規則に従います。
  • Repositories: Gitリポジトリは、アプリケーションのソースコードのファイルとフォルダを保存および管理します。通常、アプリケーションごとに1つのリポジトリを作成します。

リポジトリの作成

リポジトリを作成するには、以下の手順に従ってください:

  1. Giteaの組織ページまたは個人ダッシュボードに移動します。

  2. New Repository ボタンをクリックします。

  1. リポジトリ設定を構成します:
  • Owner: 個人アカウントまたはプロジェクトの組織を選択します(適切な権限が必要です)。
  • Repository Name: リポジトリのユニークな名前を入力します。
  • Visibility: リポジトリが PublicPrivate かを選択します。 Public リポジトリは匿名ユーザーによって表示されることができます。
  • Description: リポジトリの説明をオプションで入力します。
  • Issue Labels: 問題のためのラベルのセットをオプションで指定します。
  • .gitignore: 必要に応じて言語特有の .gitignore テンプレートを選択します。
  • License: コードのためのソフトウェアライセンスを選択します。
  • README: READMEファイルでリポジトリを初期化するかどうかを選択します。
  • Initialize Repository: このボックスにチェックを入れると、作成時に選択した .gitignore、ライセンス、およびREADMEファイルが自動的に追加されます。
  1. Create Repository をクリックします。

基本的な Git 操作(Git CLI 使用)

標準的なGitコマンドラインインターフェース(CLI)コマンドを使用して、Giteaリポジトリと対話します。

Git ユーザーの設定

コミットする前に、ローカルGit設定にユーザー情報が設定されていることを確認してください:

$ git config --global user.email "your_email@example.com"
$ git config --global user.name "Your Name"

リポジトリのクローン

GiteaのリポジトリのメインページでリポジトリのURL(HTTPSまたはSSH)を見つけ、初めてローカルマシンにリポジトリをダウンロードします:

$ git clone <repository_url> 

Giteaのユーザー名とパスワード(CLI操作用に設定したもの)が求められます。

ステータスの確認

作業ディレクトリとステージングエリアの状態を表示します:

$ git status 

これにより、変更されたファイル、追加されたファイル、または未追跡のファイルが表示されます。

変更のステージング

コミットする前に、作業ディレクトリの変更をステージングエリア(インデックス)に追加します。

$ git add <file_name_or_path> 
# またはすべての変更をステージする
$ git add .

ファイルはコミットに含めるためにステージされる必要があります(「追跡」される必要があります)。

変更のコミット

ステージされた変更をローカルリポジトリの履歴に記録します。

$ git commit -m "Your descriptive commit message" 

これにより、スナップショットがローカルに保存されます; まだリモートGiteaリポジトリには影響しません。

変更のプル

リモートGiteaリポジトリから変更を取得し、それを現在のローカルブランチにマージします。最新の状態を保つために、これを頻繁に行ってください。

git pull origin <branch_name> 

変更のプッシュ

ローカルのコミットをリモートGiteaリポジトリにアップロードします:

git push origin <branch_name>

origin は通常、リモートGiteaサーバーを指します。 branch_name はプッシュしたいブランチ(例: master, main, develop)です。キャッシュされていない場合は、資格情報が求められます。

ビルドパイプラインとの統合

Giteaに保存されたソースコードは、ZCPでのCI/CDプロセスの中心です。

  • Applications セクションでアプリケーションを作成する際には、Giteaリポジトリを指すGitリポジトリURLを提供する必要があります。
  • ビルド中のリポジトリへの安全なアクセスは、アプリケーション設定内で構成されたSecretsを介して処理されます。
  • 各ビルドパイプラインは、リンクされたGiteaリポジトリ内の特定のブランチからソースコードをチェックアウトするように構成されています。これにより、同じコードベースから異なるバージョンや環境(例: develop, staging, master)をビルドできます。