うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【go】private リポジトリを含む複数のリポジトリを管理するツールを作成してみました

Unity で開発をしている際に PackageManager を用いて
公開されているリポジトリの追加ができるようになりましたが
private リポジトリは PackageManager で利用できません
そのため private リポジトリを追加する方法を探していると下記事が見つかりました

UnityのPackageManagerプライベートリポジトリの調査 - 渋谷ほととぎす通信

けど何か作業をするのは面倒なので、自前でリポジトリをコピーするツールを go lang で 作成しました
初 go lang で作ったライブラリだったので作りは雑です

内部処理は git clone と rsync しているだけです

github.com

使い方

$ gmm init 

をすると GitModuleFile.yml が作成されるのでこれに適切な記述を行い

$ gmm sync

とすれば リポジトリを同期してくれる

GitModuleFile.yml

GitModuleFile.yml の記述方法は以下です

# 全体で共通のコピーを無効にする設定
excludes: 
  - LICENSE,
  - README*,

# リポジトリのコピー先となる Root ディレクトリ
# 以下の場合は Assets/GitModule 以下にコピーする
root: 'Assets/GitModule'

# privat リポジトリがある場合は鍵を指定する
gitSshCommand: "ssh -i ~/.ssh/id_rsa_github"

# コピーするリポジトリ一覧
modules:
  -
    # Assets/GitModule/Temp にコピーされる
    path: Temp 
    # Clone するリポジトリ
    url: git@github.com:yayorozu/GitModuleManager.git
    # ブランチ [記述がなければ master]
    target: master
    # 更新するか [記述がなければ true]
    isLick: false
    # このリポジトリ内でコピーを無効する設定
    excludes:
      - Sample
````