name: secret scanning base setup
author: Bolt lee
description: 'This action sets init repo setup .'
outputs:
  COMMIT:
    description: ''
    value: ${{ steps.git-log.outputs.COMMIT }}
  REF:
    description: ''
    value: ${{ steps.git-log.outputs.REF }}
  AUTHOR:
    description: ''
    value: ${{ steps.git-log.outputs.AUTHOR }}
  DATE:
    description: ''
    value: ${{ steps.git-log.outputs.DATE }}
  PREFIX_SHA:
    description: ''
    value: ${{ steps.git-log.outputs.PREFIX_SHA }}
  RANDOM_NUMBER:
    description: ''
    value: ${{ steps.git-log.outputs.RANDOM_NUMBER }}
  BRANCH:
    description: ''
    value: ${{ steps.git-log.outputs.BRANCH }}
runs:
  using: "composite"
  steps:
    - name: install jc & jq
      shell: bash
      id: git-log
      run: |
        echo "================ Install jq ================"
        sudo apt-get install jq
        jq -V
        echo "================ Install jc ================"

        pip3 install jc

        jc git log -1 --stat | jq '.[]' > git-log-output.json
        cat git-log-output.json
        DATE=`cat git-log-output.json | jq '.date' | sed -e 's/^"//' -e 's/"$//'`
        COMMIT=`cat git-log-output.json | jq '.commit' | sed -e 's/^"//' -e 's/"$//'`
        AUTHOR=`cat git-log-output.json | jq '.author' | sed -e 's/^"//' -e 's/"$//'`
        REF=${{ github.ref_name }}
        REPO=${{ github.repository }}
        echo "DATE :$DATE"
        echo "COMMIT :$COMMIT"
        echo "AUTHOR :$AUTHOR"
        echo "REF :$REF"
        echo "DATE=$DATE" >> $GITHUB_OUTPUT
        echo "COMMIT=$COMMIT" >> $GITHUB_OUTPUT
        echo "AUTHOR=$AUTHOR" >> $GITHUB_OUTPUT
        echo "REF=$REF" >> $GITHUB_OUTPUT
        echo "REPO=$REPO" >> $GITHUB_OUTPUT
        SHA=$COMMIT
        PREFIX_SHA=${SHA:0:10}
        RANDOM_NUMBER=`echo $RANDOM`
        BRANCH=`echo ${PREFIX_SHA}-${RANDOM_NUMBER}`
        echo "RANDOM_VALUE:$RANDOM_VALUE"
        echo "PREFIX_SHA=$PREFIX_SHA" >> $GITHUB_OUTPUT
        echo "RANDOM_NUMBER=$RANDOM_NUMBER" >> $GITHUB_OUTPUT
        echo "BRANCH=$BRANCH" >> $GITHUB_OUTPUT
    - name: Setup git config
      shell: bash
      run: |
        git config user.name "GitHub Actions Bot"
        git config user.email "GithubActions"
    - name: Create temporary branch
      shell: bash
      run: |
        git checkout --orphan ${{ steps.git-log.outputs.BRANCH }}
        git rm --cached -r .
        rm -rf ./*
        rm -rf .github
        echo "Exist files check"
        ls -al
        echo "============="
        git add .
        git commit -m "Create temp branch"
        git push origin ${{ steps.git-log.outputs.BRANCH }}
        git log --oneline

        echo "SHA(head ref lastet commit) : echo ${{ steps.git-log.outputs.COMMIT }}"
        echo "Github SHA(ref laster commit) : ${{ github.sha }}"
    - name: cherry-pick branch
      shell: bash
      if: always()
      continue-on-error: true
      run: |
        git cherry-pick ${{ steps.git-log.outputs.COMMIT }}
    - name: cherry-pick push target branch
      shell: bash
      if: always()
      continue-on-error: true
      run: |
        git add .
        git commit -m "Add lastest commit"
        git push origin ${{ steps.git-log.outputs.BRANCH }}
        git log --oneline
