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

Created new pull request template and auto labeler #1046

Merged
merged 1 commit into from
Mar 24, 2025
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
26 changes: 26 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!-- Thanks for sending a pull request! Here are some tips for you:

1. If this is your first time, please read our contributor guidelines: https://github.com/GoogleCloudPlatform/ai-on-gke/blob/main/contributing.md
2. Please label this pull request according to what type of issue you are addressing.
3. Ensure you have added or ran the appropriate tests for your PR.
-->

**What type of PR is this?**
> Uncomment only one ` /kind <>` line, press enter to put that in a new line, and remove leading whitespace from that line:
>
> /kind breaking
> /kind bug
> /kind cleanup
> /kind documentation
> /kind enhancement

**What this PR does / Why we need it**:

**Which issue(s) this PR fixes**:
<!--
*Automatically closes linked issue when PR is merged.
Usage: `Closes #<issue number>`, or `Closes (paste link of issue)`.
-->
Closes #

**Special notes for your reviewer**:
67 changes: 67 additions & 0 deletions .github/workflows/label-pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This workflow utilizes https://github.com/actions/github-script in GitHub Actions to apply labels to pull requests.
#
name: Label PR
on: [pull_request_target]
jobs:
label:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Label PR
uses: actions/github-script@v6
with:
script: |-
const keywords = {
"breaking": "kind/breaking",
"bug": "kind/bug",
"enhancement": "kind/enhancement",
"cleanup": "kind/cleanup",
"documentation": "kind/documentation"
};
const prBody = context.payload.pull_request.body;
const prLabels = [];
if (prBody === null || prBody.trim() === "") {
console.log("Pull Request body is empty");
prLabels.push("kind/other");
} else {
const regex = /^\s*\/kind\s+(.+)$/m;
const match = prBody.match(regex);
console.log(`PR body: '${prBody}'`);
console.log(`Regex match: '${match}'`);
if (match && match[1] in keywords) {
const keyword = match[1];
const label = keywords[keyword];
console.log(`Adding label: '${label}' based on keyword '${keyword}'`);
prLabels.push(label);
} else {
console.log(`Adding label: 'kind/other' as no matching keyword found.`);
prLabels.push("kind/other");
}
}
try {
github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
labels: prLabels
});
} catch (error) {
console.error(`Error retrieving files: ${error}`);
}