| name: 'Create Pull Request' |
| description: 'Creates a pull request.' |
|
|
| inputs: |
| branch-name: |
| description: 'The name of the branch to create the PR from.' |
| required: true |
| pr-title: |
| description: 'The title of the pull request.' |
| required: true |
| pr-body: |
| description: 'The body of the pull request.' |
| required: true |
| base-branch: |
| description: 'The branch to merge into.' |
| required: true |
| default: 'main' |
| github-token: |
| description: 'The GitHub token to use for creating the pull request.' |
| required: true |
| dry-run: |
| description: 'Whether to run in dry-run mode.' |
| required: false |
| default: 'false' |
| working-directory: |
| description: 'The working directory to run the commands in.' |
| required: false |
| default: '.' |
|
|
| runs: |
| using: 'composite' |
| steps: |
| - name: 'Creates a Pull Request' |
| if: "inputs.dry-run != 'true'" |
| env: |
| GH_TOKEN: '${{ inputs.github-token }}' |
| INPUTS_BRANCH_NAME: '${{ inputs.branch-name }}' |
| INPUTS_PR_TITLE: '${{ inputs.pr-title }}' |
| INPUTS_PR_BODY: '${{ inputs.pr-body }}' |
| INPUTS_BASE_BRANCH: '${{ inputs.base-branch }}' |
| shell: 'bash' |
| working-directory: '${{ inputs.working-directory }}' |
| run: | |
| set -e |
| if ! git ls-remote --exit-code --heads origin "${INPUTS_BRANCH_NAME}"; then |
| echo "::error::Branch '${INPUTS_BRANCH_NAME}' does not exist on the remote repository." |
| exit 1 |
| fi |
| PR_URL=$(gh pr create \ |
| --title "${INPUTS_PR_TITLE}" \ |
| --body "${INPUTS_PR_BODY}" \ |
| --base "${INPUTS_BASE_BRANCH}" \ |
| --head "${INPUTS_BRANCH_NAME}" \ |
| --fill) |
| gh pr merge "$PR_URL" --auto |
| |