LoginSignup
0
0

More than 1 year has passed since last update.

GithubのWikiをGithubコントリビューションに入れるためにGithubActionsでミラーリングしたかった

Posted at

知見がある方のご意見いただきたいなぁ、と思いつつ。

やりたいこと

  1. リポジトリAの内容をリポジトリBにミラーリングする
  2. リポジトリAの履歴をリポジトリBに引き継ぐ
  3. リポジトリCにGithubActionsを作る

できたのは2.まで。

やったこと

git clone リポジトリA
git push --mirror リポジトリB

これで2.まではできます。

補足

httpsでやっているので気にしていませんでしたが、検証環境では.sshも対応しているので、もしかしたら関係があるかもしれません。

問題点

GithubActionsで実行させようとすると、権限周りが問題になります。
何も考えずに

GithubAction.yml
- name:
  run: |
    git clone .git
    git config --global user.email "${{ secrets.EMAIL }}"
    git config --global user.name "shimajima-eiji"
    git push --mirror .git

とやると、様々な問題にぶち当たります。
GithubActionsに詳しくないのですが、設定周りが足りてないのだろうと思います。

試しに.sshを作ってssh通信したり、GITHUB_TOKENが必要とのことでPATを試したりしたんですが、エラーが変わってもpushに失敗する問題が変わらなかったので諦めました。

別解

リポジトリAの情報を引き継ぐ必要がない場合

リポジトリAの情報を破棄するのが一番手っ取り早いです。
リポジトリBはあくまでミラーリングするためだけであれば、git clone --bare .gitとかでいいと思います。

今回は、リポジトリAが.wiki.gitであり、これをGithubコントリビューションとして評価したかったので、これはNGです。

GithubActions以外での自動化

運用を考えると毎日実施しなくても良く、思い出した時(話題になった時)に適用すれば良いと思ったので手動で実施することにしました。
毎日実施したいならcronなどを使う手もあります。

調べたこと

  1. 他のリポジトリの情報をクローンする(git clone --mirror)
  2. リポジトリをミラーリングする(git push --mirror)

大体 error: failed to push some refs toとかfatal: --mirror can't be combined with refspecsに引っ掛かってます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0