Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
747bab4
AI fix for jjwt-gson 0.12.0
kimeta Nov 12, 2025
b4c2ca6
Script that adds appropriate label to the PR.
kimeta Nov 17, 2025
ef546ef
Merge pull request #15 from kimeta/mm/mathcing-labels
kimeta Nov 17, 2025
c3428b6
Script fixes.
kimeta Nov 17, 2025
4cd94ca
Merge pull request #18 from kimeta/mm/mathcing-labels-fixes
kimeta Nov 17, 2025
25497ce
Proper label names.
kimeta Nov 17, 2025
e462b1e
Merge pull request #20 from kimeta/mm/fix-label-sync-names
kimeta Nov 17, 2025
fb5b38f
Use gh instead of curl.
kimeta Nov 17, 2025
60c111b
Merge pull request #22 from kimeta/mm/script-changed-to-gh
kimeta Nov 25, 2025
4f2c49f
printing
kimeta Nov 25, 2025
db3d144
Merge pull request #25 from kimeta/mm/print-labels
kimeta Nov 25, 2025
975de1a
Changed permission
kimeta Nov 25, 2025
cb575c2
Merge pull request #27 from kimeta/mm/change-script-permission
kimeta Nov 25, 2025
16c1bbe
GenAI label to automation
kimeta Nov 25, 2025
813273d
Merge pull request #29 from kimeta/mm/add-genai-label
kimeta Nov 25, 2025
47595cd
PR auto labeling script.
kimeta Nov 17, 2025
eda0e4b
Merge branch 'master' into mm/pr-auto-labeling
kimeta Nov 26, 2025
ae4269b
Merge pull request #33 from kimeta/mm/pr-auto-labeling
kimeta Nov 26, 2025
a44a9a3
PR auto labeling script.
kimeta Nov 17, 2025
638b593
Merge branch 'master' into mm/pr-auto-labeling-script-fork
kimeta Nov 26, 2025
79774df
Merge pull request #36 from kimeta/mm/pr-auto-labeling-script-fork
kimeta Nov 26, 2025
5cadbe7
Merge branch 'master' into mm/ai-fix-gson
kimeta Nov 26, 2025
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
100 changes: 100 additions & 0 deletions .github/workflows/auto-label-pr-from-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Auto label PR based on linked issue

on:
pull_request:
branches:
- master

permissions:
contents: read
pull-requests: write
issues: write

jobs:
apply-label:
name: Auto label PR
runs-on: ubuntu-latest
steps:
- name: Apply label to PR
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -Eeuo pipefail

PR_NUMBER="$(jq -r '.pull_request.number' "$GITHUB_EVENT_PATH")"
OWNER="${GITHUB_REPOSITORY%%/*}"
REPO="${GITHUB_REPOSITORY#*/}"

PR_TITLE="$(jq -r '.pull_request.title // empty' "$GITHUB_EVENT_PATH")"
if [[ -n "$PR_TITLE" && "$PR_TITLE" == *"[GenAI]"* ]]; then
gh pr edit "$PR_NUMBER" -R "${OWNER}/${REPO}" --add-label "GenAI" || {
echo "::notice title=Could not add label::gh pr edit failed for 'GenAI' (label may not exist or token lacks write permissions)";
}
fi

# Query to get the single closing issue and its labels
QUERY="$(cat <<'GRAPHQL'
query($owner:String!, $repo:String!, $pr:Int!) {
repository(owner:$owner, name:$repo) {
pullRequest(number:$pr) {
closingIssuesReferences(first: 1) {
nodes {
number
labels(first: 100) {
nodes { name }
}
}
}
}
}
}
GRAPHQL
)"

BODY="$(jq -n \
--arg q "$QUERY" \
--arg owner "$OWNER" \
--arg repo "$REPO" \
--argjson pr "$PR_NUMBER" \
'{query:$q, variables:{owner:$owner, repo:$repo, pr:$pr}}')"

RESP="$(curl -sS \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Content-Type: application/json" \
-d "$BODY" \
https://api.github.com/graphql)"
if jq -e '.errors' >/dev/null 2>&1 <<<"$RESP"; then
echo "::error title=GraphQL API errors::$(jq -c '.errors' <<<"$RESP")"
fi

ISSUE_NUMBER="$(jq -r '.data.repository.pullRequest.closingIssuesReferences.nodes[0].number // empty' <<<"$RESP")"
if [[ -z "${ISSUE_NUMBER}" ]]; then
echo "::notice title=No linked issue::PR #${PR_NUMBER} has no linked closing issue."
exit 0
fi

# Extract label names from the linked issue
LABELS="$(jq -r '.data.repository.pullRequest.closingIssuesReferences.nodes[0].labels.nodes[].name' <<<"$RESP" || true)"

# Pick the first matching 'fails-*' label and map to a single PR label
selected=""
for l in $LABELS; do
case "$l" in
fails-javac-compile) selected="fixes-javac-fail"; break;;
fails-java-run) selected="fixes-java-run-fail"; break;;
fails-native-image-run) selected="fixes-native-image-run-fail"; break;;
fails-native-image-build) selected="fixes-native-image-build-fail"; break;;
esac
done

if [[ -z "$selected" ]]; then
echo "::notice title=No mapping found::No 'fails-*' labels found on linked issue #${ISSUE_NUMBER}."
exit 0
fi

labels_json="$(jq -nc --arg l "$selected" '[$l]')"

gh pr edit "$PR_NUMBER" -R "${OWNER}/${REPO}" --add-label "$selected" || {
echo "::notice title=Could not add label::gh pr edit failed (label may not exist or token lacks write permissions)";
}
3 changes: 3 additions & 0 deletions metadata/io.jsonwebtoken/jjwt-gson/0.12.0/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[
"reachability-metadata.json"
]
Loading