Git
サンドボックス内での Git 操作を提供します。
Constructors
new Git()
new Git( sandboxId: string, toolboxApi: ToolboxApi, getRootDir: () => Promise<string>): Git
Parameters:
sandboxId
stringtoolboxApi
ToolboxApigetRootDir
() => Promise<string>
Returns:
Git
Methods
add()
add(path: string, files: string[]): Promise<void>
指定したファイルを次回のコミットに向けてステージします。コマンドラインで 「git add」を実行するのと同様です。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。files
string[] - リポジトリルートからの相対パスで指定する、ステージ対象のファイルまたはディレクトリの一覧
Returns:
Promise<void>
Examples:
// 単一ファイルをステージawait git.add('workspace/repo', ['file.txt']);
// リポジトリ全体をステージawait git.add('workspace/repo', ['.']);
branches()
branches(path: string): Promise<ListBranchResponse>
リポジトリ内のブランチを一覧表示します。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
Returns:
Promise<ListBranchResponse>
- リポジトリ内のブランチ一覧
Example:
const response = await git.branches('workspace/repo');console.log(`Branches: ${response.branches}`);
checkoutBranch()
checkoutBranch(path: string, branch: string): Promise<void>
リポジトリでブランチをチェックアウトします。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。branch
string - チェックアウトするブランチ名
Returns:
Promise<void>
Example:
await git.checkoutBranch('workspace/repo', 'new-feature');
clone()
clone( url: string, path: string, branch?: string, commitId?: string, username?: string,password?: string): Promise<void>
指定したパスに Git リポジトリをクローンします。 特定のブランチまたはコミットのクローンに対応し、認証情報が提供されている場合は リモートリポジトリへの認証も行います。
Parameters:
url
string - クローン元のリポジトリ URLpath
string - リポジトリをクローンするパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。branch?
string - クローンするブランチ。未指定の場合はデフォルトブランチをクローンcommitId?
string - クローンするコミット。指定された場合、リポジトリはそのコミットの分離 HEAD 状態になりますusername?
string - 認証に用いる Git ユーザー名password?
string - 認証に用いる Git パスワードまたはトークン
Returns:
Promise<void>
Examples:
// デフォルトブランチをクローンawait git.clone( 'https://github.com/user/repo.git', 'workspace/repo');
// 認証付きで特定ブランチをクローンawait git.clone( 'https://github.com/user/private-repo.git', 'workspace/private', branch='develop', username='user', password='token');
// 特定のコミットをクローンawait git.clone( 'https://github.com/user/repo.git', 'workspace/repo-old', commitId='abc123');
commit()
commit( path: string, message: string, author: string, email: string,allowEmpty?: boolean): Promise<GitCommitResponse>
ステージ済みの変更をコミットします。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。message
string - 変更内容を説明するコミットメッセージauthor
string - コミットの作成者名email
string - コミット作成者のメールアドレスallowEmpty?
boolean - 変更がステージされていない場合でも空のコミットの作成を許可
Returns:
Promise<GitCommitResponse>
Example:
// 変更をステージしてコミットするawait git.add('workspace/repo', ['README.md']);await git.commit( 'workspace/repo', 'ドキュメントを更新', 'John Doe', 'john@example.com', true);
createBranch()
createBranch(path: string, name: string): Promise<void>
リポジトリでブランチを作成します。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。name
string - 作成する新しいブランチ名
Returns:
Promise<void>
Example:
await git.createBranch('workspace/repo', 'new-feature');
deleteBranch()
deleteBranch(path: string, name: string): Promise<void>
リポジトリでブランチを削除します。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。name
string - 削除するブランチ名
Returns:
Promise<void>
Example:
await git.deleteBranch('workspace/repo', 'new-feature');
pull()
pull( path: string, username?: string,password?: string): Promise<void>
リモートリポジトリから変更を取得します。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。username?
string - 認証用の Git ユーザー名password?
string - 認証用の Git パスワードまたはトークン
Returns:
Promise<void>
Examples:
// 公開リポジトリから pull するawait git.pull('workspace/repo');
// 非公開リポジトリから pull するawait git.pull( 'workspace/repo', 'user', 'token');
push()
push( path: string, username?: string,password?: string): Promise<void>
ローカルの変更をリモートリポジトリへ push します。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。username?
string - 認証用の Git ユーザー名password?
string - 認証用の Git パスワードまたはトークン
Returns:
Promise<void>
Examples:
// 公開リポジトリへ push するawait git.push('workspace/repo');
// 非公開リポジトリへ push するawait git.push( 'workspace/repo', 'user', 'token');
status()
status(path: string): Promise<GitStatus>
Git リポジトリの現在のステータスを取得します。
Parameters:
path
string - Git リポジトリのルートへのパス。相対パスはユーザーの ルートディレクトリを基準に解決されます。
Returns:
Promise<GitStatus>
- 現在のリポジトリのステータス(以下を含む):- currentBranch: 現在のブランチ名
- ahead: リモートブランチより先行しているコミット数
- behind: リモートブランチより遅れているコミット数
- branchPublished: ブランチがリモートリポジトリに公開済みかどうか
- fileStatus: ファイルのステータス一覧
Example:
const status = await sandbox.git.status('workspace/repo');console.log(`Current branch: ${status.currentBranch}`);console.log(`Commits ahead: ${status.ahead}`);console.log(`Commits behind: ${status.behind}`);
GitCommitResponse
git commit のレスポンス。
プロパティ:
sha
string - コミットのSHA