今回はGitHub Actionsを使い、毎日自動でコミットとプッシュを行うように設定してみます。
やりたいこと
GitHubのリポジトリ内のテキストファイルをGitHub Actionsのワークフローを用いて毎日自動で更新し、同時にコミットとプッシュも自動で行います。
テキストファイルとコミットログにはActionを実行した時間を取得して書き込む様にします。
必要なファイル
必要なファイルは以下の2つになります。
リポジトリ
│ commit_log.txt
│
└──.github
└─workflows
auto-commit.yml
GitHubのリポジトリ直下にコミットログを追加するためのcommit_log.txt
と、自動コミット・プッシュのワークフローの設定ファイルであるauto-commit.yml
を/.github/workflows
直下に配置します。
ymlファイルはリポジトリのActionsタブのset up a workflow yourselfからでも作成することができます。

auto-commit.yml
の内容は以下になります。
name: auto-commit
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set current datetime as env variable
env:
TZ: 'Asia/Tokyo'
run: echo "CURRENT_DATETIME=$(date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_ENV
- name: Commit
run: |
git config --global user.email ${{ secrets.USER_EMAIL }}
git config --global user.name ${{ secrets.USER_NAME }}
echo -e ${{ env.CURRENT_DATETIME }} >> commit_log.txt
git add commit_log.txt
git commit -m "[add] 自動コミット:${{ env.CURRENT_DATETIME }}"
git push origin main
レポジトリの設定
続いて、環境変数のUSER_EMAIL
とUSER_NAME
を設定します。
リポジトリのSettingsタブから設定ページに飛び、Secrets and variables -> ActionsのNew repository secretから環境変数を設定します。環境変数はそれぞれ、USER_EMAIL
は登録しているメールアドレス、USER_NAME
はGitHubのIDになります。設定すると以下の様な画面になります。

また、設定のActions-> GeneralでWorkflow permissionsの設定がRead and write permissionsになっているか確認しましょう。これが設定されていないとActionの書き込み権限が無いので上手く動作しません。

Actionの実行
ここまでで準備が終わったので、Actionを実行します。

これで自動で設定したActionが実行されるようになりました。以上で記事を終わりにします。