name: Site policy sync # **What it does**: Creates a branch in our site-policy repo with changes to site policy docs. # **Why we have it**: We want to keep the site-policy repo up to date. # **Who does it impact**: site-policy-admins and Developer Policy teams. # Controls when the action will run. on: # Triggers the workflow pull requests merged to the main branch pull_request: branches: - main types: - closed paths: - 'content/site-policy/**' workflow_dispatch: permissions: contents: read jobs: sync: name: Get the latest docs if: github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true && github.repository == 'github/docs-internal') runs-on: ubuntu-latest steps: - name: checkout docs-internal uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 - name: checkout public site-policy uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 with: repository: github/site-policy token: ${{ secrets.API_TOKEN_SITEPOLICY }} fetch-depth: '' path: public-repo - name: Commits internal policies to copy of public repo with descriptive message from triggering PR title env: PR_TITLE: ${{ github.event.pull_request.title }} run: | cd public-repo git config --local user.name 'site-policy-bot' git config --local user.email 'site-policy-bot@github.com' rm -rf Policies cp -r ../content/site-policy Policies git status git checkout -b automated-sync-$GITHUB_RUN_ID git add . echo PR_TITLE: $PR_TITLE [[ ! -z $PR_TITLE ]] && DESCRIPTION="${PR_TITLE}" || DESCRIPTION="Update manually triggered by workflow" echo "DESCRIPTION=$DESCRIPTION" >> $GITHUB_ENV git commit -m "$(echo $DESCRIPTION)" - name: If there are changes to push, create a branch in the public repo and push changes env: GITHUB_TOKEN: ${{ secrets.DOCUBOT_REPO_PAT }} run: | cd public-repo git config --local user.name 'site-policy-bot' git config --local user.email 'site-policy-bot@github.com' NUM_FILES_CHANGED=$(git diff --name-only HEAD^..HEAD | wc -l) if [[ $NUM_FILES_CHANGED -ge 1 ]] then git push --set-upstream origin automated-sync-$GITHUB_RUN_ID else echo "No updates to push to the public repo" fi