forked from github/plane
80 lines
2.8 KiB
YAML
80 lines
2.8 KiB
YAML
name: Create PR in Plane EE Repository to sync the changes
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
types:
|
|
- closed
|
|
|
|
jobs:
|
|
create_pr:
|
|
# Only run the job when a PR is merged
|
|
if: github.event.pull_request.merged == true
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
pull-requests: write
|
|
contents: read
|
|
steps:
|
|
- name: Check SOURCE_REPO
|
|
id: check_repo
|
|
env:
|
|
SOURCE_REPO: ${{ secrets.SOURCE_REPO_NAME }}
|
|
run: |
|
|
echo "::set-output name=is_correct_repo::$(if [[ "$SOURCE_REPO" == "makeplane/plane" ]]; then echo 'true'; else echo 'false'; fi)"
|
|
|
|
- name: Checkout Code
|
|
if: steps.check_repo.outputs.is_correct_repo == 'true'
|
|
uses: actions/checkout@v2
|
|
with:
|
|
persist-credentials: false
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Branch Name
|
|
if: steps.check_repo.outputs.is_correct_repo == 'true'
|
|
run: |
|
|
echo "SOURCE_BRANCH_NAME=${{ github.head_ref }}" >> $GITHUB_ENV
|
|
|
|
- name: Setup GH CLI
|
|
if: steps.check_repo.outputs.is_correct_repo == 'true'
|
|
run: |
|
|
type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
|
|
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
|
|
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
|
|
sudo apt update
|
|
sudo apt install gh -y
|
|
|
|
- name: Create Pull Request
|
|
if: steps.check_repo.outputs.is_correct_repo == 'true'
|
|
env:
|
|
GH_TOKEN: ${{ secrets.ACCESS_TOKEN }}
|
|
run: |
|
|
TARGET_REPO="${{ secrets.TARGET_REPO_NAME }}"
|
|
TARGET_BRANCH="${{ secrets.TARGET_REPO_BRANCH }}"
|
|
SOURCE_BRANCH="${{ env.SOURCE_BRANCH_NAME }}"
|
|
|
|
git checkout $SOURCE_BRANCH
|
|
git remote add target "https://$GH_TOKEN@github.com/$TARGET_REPO.git"
|
|
git push target $SOURCE_BRANCH:$SOURCE_BRANCH
|
|
|
|
PR_TITLE="${{ github.event.pull_request.title }}"
|
|
PR_BODY="${{ github.event.pull_request.body }}"
|
|
|
|
# Remove double quotes
|
|
PR_TITLE_CLEANED="${PR_TITLE//\"/}"
|
|
PR_BODY_CLEANED="${PR_BODY//\"/}"
|
|
|
|
# Construct PR_BODY_CONTENT using a here-document
|
|
PR_BODY_CONTENT=$(cat <<EOF
|
|
$PR_BODY_CLEANED
|
|
EOF
|
|
)
|
|
|
|
gh pr create \
|
|
--base $TARGET_BRANCH \
|
|
--head $SOURCE_BRANCH \
|
|
--title "[SYNC] $PR_TITLE_CLEANED" \
|
|
--body "$PR_BODY_CONTENT" \
|
|
--repo $TARGET_REPO
|