Skip to content

Commit a7bf35d

Browse files
authored
chore: onboard to triage agent (#1471)
1 parent cccaaec commit a7bf35d

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

.github/llms.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Extension Pack for Java
2+
Extension Pack for Java is a collection of popular extensions that can help write, test and debug Java applications in Visual Studio Code. By installing Extension Pack for Java, the following extensions are installed:
3+
4+
- [📦 Language Support for Java™ by Red Hat ](https://marketplace.visualstudio.com/items?itemName=redhat.java)
5+
- Code Navigation
6+
- Auto Completion
7+
- Refactoring
8+
- Code Snippets
9+
- [📦 Debugger for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug)
10+
- Debugging
11+
- [📦 Test Runner for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-test)
12+
- Run & Debug JUnit/TestNG Test Cases
13+
- [📦 Maven for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-maven)
14+
- Project Scaffolding
15+
- Custom Goals
16+
- [📦 Gradle for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-gradle)
17+
- View Gradle tasks and project dependencies
18+
- Gradle file authoring
19+
- Import Gradle projects via [Gradle Build Server](https://github.com/microsoft/build-server-for-gradle)
20+
- [📦 Project Manager for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-dependency)
21+
- Manage Java projects, referenced libraries, resource files, packages, classes, and class members
22+
- [📦 Visual Studio IntelliCode](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode)
23+
- AI-assisted development
24+
- Completion list ranked by AI
25+
26+
## Label
27+
When labeling an issue, follow the rules below per label category:
28+
### General Rules
29+
- Analyze if the issue is related with the scope of using extensions for Java development. If not, STOP labelling IMMEDIATELY.
30+
- Assign label per category.
31+
- If a category is not applicable or you're unsure, you may skip it.
32+
- Do not assign multiple labels within the same category, unless explicitly allowed as an exception.
33+
34+
### Issue Type Labels
35+
- [bug]: Primary label for real bug issues
36+
- [enhancement]: Primary label for enhancement issues
37+
- [documentation]: Primary label for documentation issues
38+
- [question]: Primary label for question issues

.github/workflows/triage-agent.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: AI Triage - Label and Comment on New Issues
2+
on:
3+
issues:
4+
types: [opened]
5+
workflow_dispatch:
6+
inputs:
7+
issue_number:
8+
description: 'Issue number to triage (manual run). e.g. 123'
9+
required: true
10+
11+
permissions:
12+
issues: write
13+
contents: read
14+
15+
jobs:
16+
label_and_comment:
17+
runs-on: ubuntu-latest
18+
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@v2
22+
23+
- name: Get issue data
24+
id: get_issue
25+
uses: actions/github-script@v6
26+
with:
27+
script: |
28+
const eventName = context.eventName;
29+
let issue;
30+
if (eventName === 'workflow_dispatch') {
31+
const inputs = context.payload.inputs || {};
32+
const issueNumber = inputs.issue_number || inputs.issueNumber;
33+
if (!issueNumber) core.setFailed('Input issue_number is required for manual run.');
34+
const { data } = await github.rest.issues.get({
35+
owner: context.repo.owner,
36+
repo: context.repo.repo,
37+
issue_number: parseInt(issueNumber, 10),
38+
});
39+
issue = data;
40+
} else if (context.payload.issue) {
41+
issue = context.payload.issue;
42+
} else {
43+
core.setFailed('No issue information found in the event payload.');
44+
}
45+
core.setOutput('id', String(issue.number));
46+
core.setOutput('user', String((issue.user && issue.user.login) || ''));
47+
core.setOutput('title', String(issue.title || ''));
48+
core.setOutput('body', String(issue.body || ''));
49+
core.setOutput('labels', JSON.stringify(issue.labels || []));
50+
51+
- name: Call Azure Function
52+
id: call_azure_function
53+
env:
54+
PAYLOAD: >-
55+
{
56+
"authToken": "${{ secrets.GITHUB_TOKEN }}",
57+
"repoId": "microsoft/vscode-java-pack",
58+
"issueData": {
59+
"id": ${{ steps.get_issue.outputs.id }},
60+
"user": ${{ toJson(steps.get_issue.outputs.user) }},
61+
"title": ${{ toJson(steps.get_issue.outputs.title) }},
62+
"body": ${{ toJson(steps.get_issue.outputs.body) }},
63+
"labels": ${{ steps.get_issue.outputs.labels }}
64+
},
65+
"mode": "DirectUpdate"
66+
}
67+
68+
run: |
69+
# Make the HTTP request
70+
response=$(curl -s \
71+
--header "Content-Type: application/json" \
72+
--request POST \
73+
--data "$PAYLOAD" \
74+
${{ secrets.TRIAGE_FUNCTION_LINK }})

0 commit comments

Comments
 (0)