Skip to content

[Changelog] Add entry for git fetch hookspath whitelist #1114

[Changelog] Add entry for git fetch hookspath whitelist

[Changelog] Add entry for git fetch hookspath whitelist #1114

Workflow file for this run

--- # PR: create pull requests for pushed branches
# Maintain in repo: funfair-server-template
name: "PR: Create"
on:
push:
branches-ignore:
- master
- main
- develop
- "release/**"
- "hotfix/**"
permissions:
contents: read
pull-requests: write
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
env:
HEAD_REF: ${{github.head_ref}}
BASE_REF: ${{github.base_ref}}
REPO: ${{github.repository}}
REPO_OWNER: ${{github.repository_owner}}
jobs:
pull-request:
runs-on: ubuntu-latest
env:
CREATE_DRAFT: true
REPO_STATUS: private
steps:
- name: "Initialise Workspace"
if: runner.environment == 'self-hosted'
shell: bash
run: sudo chown -R "$USER:$USER" "$GITHUB_WORKSPACE"
- name: "Set Active Environment"
shell: bash
run: |
{
echo "ACTIVE_RUNNER_NAME=${{runner.name}}"
echo "ACTIVE_HOSTNAME=$HOSTNAME"
echo "ACTIVE_USER=$USER"
} >> "$GITHUB_ENV"
- name: "Checkout source"
uses: actions/checkout@v7.0.0
with:
clean: true
fetch-depth: 1
- name: "Find PR For branch"
id: findPr
uses: ./.github/actions/find-pull-request
with:
branch: ${{github.ref_name}}
- name: "Existing PR Information"
if: steps.findPr.outputs.number != ''
uses: actions/github-script@v9.0.0
env:
PR_NUMBER: ${{steps.findPr.outputs.number}}
with:
script: |
core.info(`Pull request already exists with id: ${process.env.PR_NUMBER}`);
core.info(`URL: https://github.com/${process.env.REPO}/pull/${process.env.PR_NUMBER}`);
- name: "Read PR Template"
id: pr-template
if: steps.findPr.outputs.number == ''
uses: ./.github/actions/read-file
with:
path: ./.github/PULL_REQUEST_TEMPLATE.md
- name: "Get last commit info"
id: commit-info
if: steps.findPr.outputs.number == ''
shell: bash
run: |
title="$(git log -1 --pretty=%s)"
echo "commit-title=$title" >> "$GITHUB_OUTPUT"
- name: "Check Required Secrets"
if: steps.findPr.outputs.number == ''
shell: bash
run: |
if [ -z "${{secrets.SOURCE_PUSH_TOKEN}}" ]; then
echo "::error::SOURCE_PUSH_TOKEN is required but not set"
exit 1
fi
- name: "Check Repo Visibility"
if: env.REPO_STATUS == '' && steps.findPr.outputs.number == ''
uses: ./.github/actions/check-repo-visibility
id: visibility
with:
github-token: ${{secrets.SOURCE_PUSH_TOKEN}}
- name: "Override DRAFT Flag"
id: draft-flag
if: |-
steps.findPr.outputs.number == ''
&& env.REPO_OWNER != 'funfair-tech'
&& env.REPO_STATUS == 'private'
shell: bash
run: echo "create-draft=false" >> "$GITHUB_OUTPUT"
- name: "Status"
uses: actions/github-script@v9.0.0
env:
FIND_PR_NUMBER: ${{steps.findPr.outputs.number}}
with:
script: |
core.info(`Repo: ${process.env.REPO}`);
core.info(`Owner: ${process.env.REPO_OWNER}`);
core.info(`Repo Status: ${process.env.REPO_STATUS}`);
core.info(`PR OK: ${process.env.FIND_PR_NUMBER === ''}`);
core.info(`Owner OK: ${process.env.REPO_OWNER !== 'funfair-tech'}`);
core.info(`Status OK: ${process.env.REPO_STATUS === 'private'}`);
- name: "Check Required Secrets"
if: steps.findPr.outputs.number == ''
shell: bash
run: |
if [ -z "${{secrets.PR_CREATE_TOKEN}}" ]; then
echo "::error::PR_CREATE_TOKEN is required but not set"
exit 1
fi
- name: "Create Pull Request"
if: steps.findPr.outputs.number == ''
id: open-pr
uses: ./.github/actions/create-pull-request
with:
github-token: ${{secrets.PR_CREATE_TOKEN}}
destination-branch: "main"
assignee: ${{github.actor}}
labels: "auto-pr"
draft: ${{steps.draft-flag.outputs.create-draft || env.CREATE_DRAFT}}
title: ${{steps.commit-info.outputs.commit-title}}
body: ${{steps.pr-template.outputs.content}}
- name: "New PR Details"
if: steps.findPr.outputs.number == ''
uses: actions/github-script@v9.0.0
env:
PR_URL: ${{steps.open-pr.outputs.pr_url}}
PR_NUMBER: ${{steps.open-pr.outputs.pr_number}}
HAS_CHANGED_FILES: ${{steps.open-pr.outputs.has_changed_files}}
with:
script: |
core.info(`URL: ${process.env.PR_URL}`);
core.info(`PR: ${process.env.PR_NUMBER}`);
core.info(`CF: ${process.env.HAS_CHANGED_FILES}`);
- name: "Sync Labels"
if: steps.findPr.outputs.number == ''
uses: ./.github/actions/sync-labels
with:
github-token: ${{secrets.SOURCE_PUSH_TOKEN}}
pr-number: ${{steps.open-pr.outputs.pr_number}}