banner
Zach

Hi,Ztar

Have a good day!
github

自動ワークフローでリポジトリを同期する

最近inneiの記事を読んで、リポジトリ間でのプロジェクトの自動ビルドとサーバーへのデプロイは私にとって非常に刺激的でした。

私は vercel を使用して innei の Shiro を構築していますが、クローズドソースバージョンがあるため、リポジトリをフォークすることができず、コミットを簡単に同期することができません。ローカルで fetch してから push するしかありませんでした。以前は GitHub のアクションを使用して自動化しようと考えましたが、常に失敗してしまいました。

その後、手動で同期しましたが、記事を読んだ後、GPT に尋ねて初めて理解しました。

プロセス#

  1. ソースコードリポジトリの変更をチェックする
  2. 定期的に実行する
  3. 変更がある場合、自動的にリベースとプッシュを行う

image

参考設定(GPT による)#

name: Sync with upstream repo

on:
  schedule:
    - cron: '0 */6 * * *' # 6 hours
  workflow_dispatch:

jobs:
  sync:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repo
        uses: actions/checkout@v2
        with:
          repository: 'Sync-Repo'
          token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
          fetch-depth: 0

      - name: Sync with upstream
        run: |
          git config user.name 'Username'
          git config user.email 'Useremail'
          git remote add upstream 'https://github.com/username/source-repo'
          git fetch upstream
          git checkout main
          git rebase upstream/main
          git push origin main -f

注意:このリポジトリには、PERSONAL_ACCESS_TOKENという名前の Secrets を追加する必要があります。

アクセス権限トークン#

プライベートリポジトリへのアクセス権限を持つトークンを取得するにはどうすればよいですか?

まず、Setting ->> Developer setting ->> Personal access tokens (classic) ->> Generate new token (classic) に移動します。

image

repoを必ず選択し、workflow は確認できません。

その後、同期したいリポジトリに移動します。

image

追加してください。

この記事はMix Spaceからの同期更新です。
元のリンクはhttps://www.ssstttar.com/posts/programming/auto-sync-repoです。


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。