Sync Repository #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Sync Repositories | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
sync-repos: | |
if: github.repository_owner == 'stone-payments' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
repo: [ | |
"pagarme/.github", | |
"mundipagg/.github", | |
"dlpco/.github", | |
"stone-ton/.github" | |
] | |
steps: | |
- name: Extract Repository Info | |
id: extract-info | |
run: | | |
IFS='/' read -r org repo <<< "${{ matrix.repo }}" | |
echo "ORG=$org" >> $GITHUB_ENV | |
echo "REPO=$repo" >> $GITHUB_ENV | |
- name: Generate GitHub App Token | |
id: app-token-stone-payments | |
uses: actions/create-github-app-token@v1 | |
with: | |
app-id: 996272 | |
private-key: ${{ secrets.GH_PRIVATE_KEY }} | |
owner: ${{ github.repository_owner }} | |
repositories: ${{ env.REPO }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ steps.app-token-stone-payments.outputs.token }} | |
path: "${{github.repository_owner}}-${{ env.REPO }}" | |
- name: Generate GitHub App Token | |
id: app-token | |
uses: actions/create-github-app-token@v1 | |
with: | |
app-id: 996272 | |
private-key: ${{ secrets.GH_PRIVATE_KEY }} | |
owner: ${{ env.ORG }} | |
repositories: ${{ env.REPO }} | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ steps.app-token.outputs.token }} | |
repository: "${{ env.ORG }}/${{ env.REPO }}" | |
path: "${{ env.ORG }}-${{ env.REPO }}" | |
- name: Update Repository | |
env: | |
GH_TOKEN: ${{ steps.app-token.outputs.token }} | |
run: | | |
# Config Git | |
echo "Configuring Git..." | |
git config --global user.email "[email protected]" | |
git config --global user.name "Foundation Platform Bot - Sync Repos" | |
# Update Repository on Another Organization | |
echo "Updating Repository..." | |
cp -r "${{github.repository_owner}}-${{ env.REPO }}"/* "${{ env.ORG }}-${{ env.REPO }}"/ | |
cp -r "${{github.repository_owner}}-${{ env.REPO }}"/.github "${{ env.ORG }}-${{ env.REPO }}"/ | |
cd "${{ env.ORG }}-${{ env.REPO }}" | |
# Commit and Push | |
echo "Commit and Push..." | |
git add . | |
# Status Verify | |
STATUS=$(git diff --cached --shortstat) | |
if [ -z "$STATUS" ]; then | |
echo "No changes to commit" | |
exit 0 | |
fi | |
# Commit and Push | |
git commit -m "Sync Repository" | |
git push origin main |