Problem
Manchmal stehen wir vor dem Problem, das wir ein vorhandenes Gitub Repository mit einem anderen Repository auf Azure DevOps synchronisieren möchten. Zum Beispiel um von dort aus auf Azure zu deployen. Wie geht man nun am besten vor?
Lösung
Nach mehreren Versuchen habe ich die für mich beste Lösung gefunden.
Zuerst fügte ich in der "Secrets"-Sektion der Github Actions folgende Secrets hinzu:
- AZUREPAT (Hier fügen Sie den Personal Access Token aus Azure DevOps ein. Siehe Link)
- AZURENAME (Hier fügen Sie den Username aus Azure DevOps ein)
- AZUSER_EMAIL (Hier fügen Sie die Emailadresse hinzu, die Sie mit Ihrem Azure DevOps Konto nutzen)
- AZORG (Hier fügen Sie den Namen der Azure DevOps Organisation ein)
Jetzt erstellte ich auf der obersten Ebene des Repositories folgendes commit.sh
Script:
AZUREPAT=$AZUREPAT
AZUSERNAME=$AZUSERNAME
AZUSER_EMAIL=$AZUSER_EMAIL
AZORG=$AZORG
git clone https://github.com/saigkill/Moonglade ./Moonglade-gh
cd Moonglade-gh
rm -rf .git
cd ..
GIT_CMD_REPOSITORY="https://$AZUSERNAME:$AZUREPAT@dev.azure.com/$AZORG/Moonglade/_git/Moonglade"
git clone $GIT_CMD_REPOSITORY ./Moonglade-az
cp -r Moonglade-gh/* Moonglade-az/
cd Moonglade-az
git config --global user.email "$AZUSER_EMAIL"
git config --global user.name "$AZUSERNAME"
git add .
git commit -m "sync from git to azure"
git push
name: Push directory to another repository
on: push
jobs:
check-bats-version:
runs-on: ubuntu-latest
environment: AzurePAT
steps:
- uses: actions/checkout@v2
- name: Run script file
env:
AZUREPAT: ${{secrets.AZUREPAT}}
AZUSERNAME: ${{secrets.AZUSERNAME}}
AZUSER_EMAIL: ${{secrets.AZUSER_EMAIL}}
AZORG: ${{secrets.AZORG}}
run: |
chmod +x ./commit.sh
./commit.sh
shell: bash
Comments