MxShun / token-updater

A GitHub Actions job that updates the token regularly

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

token-updater

GitHub Actionsでトークンを自動更新する - Qiita

name: Token Updater

on:
  schedule: # 3か月に1度起動
    - cron: '* 0 1 */3 *'
  workflow_dispatch: # 手動で起動できるようにしておく

jobs:
  update-the-token:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the default branch
        uses: actions/checkout@v2
      - name: Set the git configurations
        run: |
          git config user.name ${{ secrets.GITHUB_USER_NAME }}
          git config user.email ${{ secrets.GITHUB_USER_EMAIL }}
      - name: Add a new token
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          TODAY=`date +'%Y-%m-%d'`
          BRANCH_NAME="add/token-${TODAY}"
          echo "ADDITION_BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_ENV
          git checkout -b $BRANCH_NAME

          TOKEN=$(echo `date` | sha256sum | sed -e "s/.\{3\}$//") # 現在日時 date のハッシュ値を TOKEN とする
          echo "TOKEN=${TOKEN}" >> $GITHUB_ENV
          NEW_PROPERTY=$(cat ./application.properties | sed -e "/^token=[0-9a-zA-Z]\{64\}/s/$/,`echo $TOKEN`/") # 旧トークンの末尾に「,TOKENの値」を追記する
          cat <<< $NEW_PROPERTY > ./application.properties

          git add ./application.properties
          git commit -m "Add a new token on ${TODAY}"
          git push -u origin $BRANCH_NAME
          hub pull-request -b ${{ github.event.repository.default_branch }} -h $BRANCH_NAME -m "API Token定期更新 新規トークンの追加" # デフォルトブランチに対してPRを作成する
      - name: Truncate the old token
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          SWITCH_DATE=`date -d '14 days' +'%Y-%m-%d'`
          echo "SWITCH_DATE=${SWITCH_DATE}" >> $GITHUB_ENV
          BRANCH_NAME="truncate/token-${SWITCH_DATE}"
          git checkout -b $BRANCH_NAME

          NEW_PROPERTY=$(cat ./application.properties | sed -e "s/^token=[0-9a-zA-Z]\{64\},/token=/") # 「token=旧トークンの値」を「token=」に書き換える
          cat <<< $NEW_PROPERTY > ./application.properties

          git add ./application.properties
          git commit -m "Truncate the old token on ${SWITCH_DATE}"
          git push -u origin $BRANCH_NAME
          hub pull-request -b $ADDITION_BRANCH_NAME -h $BRANCH_NAME -m "API Token定期更新 旧トークンの無効化【切替日時:${SWITCH_DATE}】" # 追記するブランチに対して削除するPRを作成する

About

A GitHub Actions job that updates the token regularly

License:MIT License