Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: FLUI-142 update pr template dynamicaly #549

Merged
merged 1 commit into from
Nov 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 1 addition & 32 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,32 +1 @@
# FIX | FEAT | REFACTOR | PERF | DOCS : TITLE

- closes #TICKET_NUMBER

## Description

[JIRA LINK]

Acceptance Criterias

## Validation

- [ ] Storybook add or modified
- [ ] version Update in package.json and Release.md
- [ ] Code Approved
- [ ] QA Done
- [ ] Design/UI Approved from design

## Screenshot
### Before

### After

## QA

Steps to validate
Url (storybook, ...)
...

## Mention

@kstonge @luclemo
Generating Content ....
108 changes: 108 additions & 0 deletions .github/workflows/create_pr_template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Update Pull Request Template
on:
pull_request:
types: [opened, edited]

jobs:
update-pr-template:
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}

- name: Extract commit parts
id: extract_parts
shell: bash
run: |
COMMIT_MESSAGE=$(git log -1 --pretty=%B)
echo "Commit message: $COMMIT_MESSAGE"

# Simpler regex pattern that's more forgiving
if [[ "$COMMIT_MESSAGE" =~ ^([^(:]+)(\(([^)]*)\))?:[[:space:]]*([A-Z]+-[0-9]+)?[[:space:]]*(.+)$ ]]; then
echo "type=${BASH_REMATCH[1]}" >> $GITHUB_OUTPUT
echo "scope=${BASH_REMATCH[3]:-}" >> $GITHUB_OUTPUT
echo "ticket=${BASH_REMATCH[4]:-}" >> $GITHUB_OUTPUT
echo "subject=${BASH_REMATCH[5]}" >> $GITHUB_OUTPUT

# Debug output
echo "Extracted parts:"
echo "Type: ${BASH_REMATCH[1]}"
echo "Full scope: ${BASH_REMATCH[2]}"
echo "Scope content: ${BASH_REMATCH[3]}"
echo "Ticket: ${BASH_REMATCH[4]}"
echo "Subject: ${BASH_REMATCH[5]}"
else
echo "Invalid commit message format. Expected: type(scope): TICKET-123 subject"
echo "Received: $COMMIT_MESSAGE"
exit 1
fi

- name: Generate PR body
id: generate_body
shell: bash
run: |
TYPE="${{ steps.extract_parts.outputs.type }}"
SCOPE="${{ steps.extract_parts.outputs.scope }}"
TICKET="${{ steps.extract_parts.outputs.ticket }}"
SUBJECT="${{ steps.extract_parts.outputs.subject }}"

cat << EOF > pr_body.md
# ${TYPE}${SCOPE:+($SCOPE)}: ${SUBJECT}

${TICKET:+- Closes ${TICKET}}

## Description
<!-- Add a description of the changes proposed in the pull request -->

## Acceptance Criterias
<!-- List all acceptance criteria from the ticket -->

## Links
- [JIRA](https://ferlab-crsj.atlassian.net/browse/${TICKET})
- [Design](https://)

## Extra Validation
- [ ] Reviewer video or screenshots attached
- [ ] QA Done
- [ ] Design/UI Approved from design

## Screenshot or Video
### Before
<!-- Add screenshots/videos of the feature/bug before this PR -->

### After
<!-- Add screenshots/videos of the feature/bug after this PR -->

## QA
### Steps to validate
<!-- Add step by step instructions to test this PR -->
1.
2.

## Mention
<!-- @ mention any relevant teammates -->
EOF

PR_BODY=$(cat pr_body.md)
echo "pr_body<<EOF" >> $GITHUB_OUTPUT
echo "$PR_BODY" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

- name: Update PR
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
body: `${{ steps.generate_body.outputs.pr_body }}`
});

Loading