Skip to content

Commit

Permalink
.github: Add PR template
Browse files Browse the repository at this point in the history
Adds a pull request template with important information to note in
the PR description and guidance on how to classify the PR.

A simple GitHub action is present that applies three labels based
on the boxes checked in the PR template:

- `impact:breaking-change`
- `impact:security`
- `impact:testing`

These provide several purposes.

1. Bring attention to the impact of the PR both for reviewers and
   consumers that reference the PR in the future during debug
   or integration.
2. Allow automated tools like those that create release notes to
   be able to highlight important changes.
3. Similarly, to allow PR searches to conditionalize the search on
   PRs with these tags present.

Signed-off-by: Michael Kubacki <[email protected]>
  • Loading branch information
makubacki committed May 28, 2024
1 parent 0e3189d commit a288261
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 0 deletions.
27 changes: 27 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Description

<_Include a description of the change and why this change was made._>

<_For each item, place an "x" in between `[` and `]` if true. Example: `[x]` (you can also check items in GitHub UI)_>

<_Create the PR as a Draft PR if it is only created to run CI checks._>

<_Delete lines in \<\> tags before creating the PR._>

- [ ] Breaking change?
- **Breaking change** - Will this cause a break in build or boot behavior?
- Examples: Add a new library class or move a module to a different repo.
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact?
- Examples: Crypto algorithm change or buffer overflow fix.
- [ ] Includes tests?
- **Tests** - Does the change include any explicit test code?
- Examples: Unit tests or integration tests.

## How This Was Tested

<_Describe the test(s) that were run to verify the changes._>

## Integration Instructions

<_Describe how these changes should be integrated. Use N/A if nothing is required._>
36 changes: 36 additions & 0 deletions .github/workflows/pr-labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This workflow automatically applies labels to pull requests based on regular expression matches against the content
# in the pull request.
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
# For more information, see:
# https://github.com/github/issue-labeler

name: Apply Labels Based on Message Content

on:
pull_request_target:
types:
- edited
- opened
- reopened
- synchronize
workflow_dispatch:

jobs:
sync:
name: Label PR from Description
runs-on: ubuntu-latest

permissions:
contents: read
pull-requests: write

steps:
- name: Apply Labels Based on PR Description
uses: github/[email protected]
with:
configuration-path: .github/workflows/pr-labeler/regex.yml
enable-versioned-regex: 0
repo-token: ${{ secrets.GITHUB_TOKEN }}
16 changes: 16 additions & 0 deletions .github/workflows/pr-labeler/regex.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Specifies labels to apply to pull requests based on regular expressions.
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
# For more information, see:
# https://github.com/github/issue-labeler

impact:breaking-change:
- '\s*-\s*\[\s*[x|X]\s*\] Breaking change\?'

impact:security:
- '\s*-\s*\[\s*[x|X]\s*\] Impacts security\?'

impact:testing:
- '\s*-\s*\[\s*[x|X]\s*\] Includes tests\?'

0 comments on commit a288261

Please sign in to comment.