From 5abd6c6d4a7c4a8326d387e5e773f59a4acb114c Mon Sep 17 00:00:00 2001 From: Lalit Kumar Date: Fri, 20 Mar 2026 22:54:13 +0530 Subject: [PATCH 01/23] Updated agent.py and triage workflow for auto assignment. --- .github/workflows/triage.yml | 11 ++-- .../samples/adk_triaging_agent/agent.py | 51 +++++++++++++++++-- 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index ff1afaac98..ed0e4bf9aa 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -9,16 +9,15 @@ on: jobs: agent-triage-issues: - runs-on: ubuntu-latest + runs-on: [self-hosted, Linux, X64] # Run for: # - Scheduled runs (batch processing) # - New issues (need component labeling) # - Issues labeled with "planned" (need owner assignment) if: >- - github.repository == 'google/adk-python' && ( + github.repository == 'llalitkumarrr/adk-python' && ( github.event_name == 'schedule' || - github.event.action == 'opened' || - github.event.label.name == 'planned' + github.event.action == 'opened' ) permissions: issues: write @@ -43,7 +42,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.ADK_TRIAGE_AGENT }} GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} GOOGLE_GENAI_USE_VERTEXAI: 0 - OWNER: ${{ github.repository_owner }} + OWNER: ${{ secrets.REPOSITORY_OWNER }} REPO: ${{ github.event.repository.name }} INTERACTIVE: 0 EVENT_NAME: ${{ github.event_name }} # 'issues', 'schedule', etc. @@ -52,4 +51,4 @@ jobs: ISSUE_BODY: ${{ github.event.issue.body }} ISSUE_COUNT_TO_PROCESS: '3' # Process 3 issues at a time on schedule PYTHONPATH: contributing/samples - run: python -m adk_triaging_agent.main + run: gtech-run contributing/samples/adk_triaging_agent/main.py diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index 82f02e771c..6ab361cb80 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -43,6 +43,9 @@ "workflow": "DeanChensj", } + +LABEL_TO_GTECH = ["llalitkumarrr","surajksharma07","klateefa"] + LABEL_GUIDELINES = """ Label rubric and disambiguation rules: - "documentation": Tutorials, README content, reference docs, or samples. @@ -122,15 +125,17 @@ def list_untriaged_issues(issue_count: int) -> dict[str, Any]: existing_component_labels = issue_labels & component_labels has_component = bool(existing_component_labels) - has_planned = "planned" in issue_labels + # has_planned = "planned" in issue_labels # Determine what actions are needed needs_component_label = not has_component - needs_owner = has_planned and not assignees + # needs_owner = has_planned and not assignees + needs_owner = not assignees + # Include issue if it needs any action if needs_component_label or needs_owner: - issue["has_planned_label"] = has_planned + # issue["has_planned_label"] = has_planned issue["has_component_label"] = has_component issue["existing_component_label"] = ( list(existing_component_labels)[0] @@ -178,6 +183,41 @@ def add_label_to_issue(issue_number: int, label: str) -> dict[str, Any]: } +def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: + """Assign an owner from the GTech team to the given issue number. + This is go to option irrespective of component label or planned label, as long as the issue needs an owner. + + All unassigned issues will be considered for GTech ownership. Unassigned issues will seperated in two categories: issues with type "Bug" and issues with type "Feature". Then bug issues and feature issues will be equally assigned to the Gtech members in such a way that every day all members get equal number of bug and feature issues. + + Args: + issue_number: issue number of the GitHub issue. + + Returns: + The status of this request, with the assigned owner when successful. + """ + print( + f"Attempting to assign GTech owner to issue #{issue_number}" + ) + + + owner = LABEL_TO_GTECH[issue_number % len(LABEL_TO_GTECH)] + assignee_url = ( + f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/assignees" + ) + assignee_payload = {"assignees": [owner]} + + try: + response = post_request(assignee_url, assignee_payload) + except requests.exceptions.RequestException as e: + return error_response(f"Error: {e}") + + return { + "status": "success", + "message": response, + "assigned_owner": owner, + } + + def add_owner_to_issue(issue_number: int, label: str) -> dict[str, Any]: """Assign an owner to the issue based on the component label. @@ -265,7 +305,7 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: For each issue, perform ONLY the required actions based on the flags: 1. **If `needs_component_label` is true**: - - Use `add_label_to_issue` to add the appropriate component label + - Use `assign_gtech_owner_to_issue` to add the appropriate component label - Use `change_issue_type` to set the issue type: - Bug report → "Bug" - Feature request → "Feature" @@ -295,7 +335,8 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: tools=[ list_untriaged_issues, add_label_to_issue, - add_owner_to_issue, + # add_owner_to_issue, + assign_gtech_owner_to_issue, change_issue_type, ], ) From ae8149d9c53726ae9657aa9d0285d768513895ad Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 14:05:29 +0530 Subject: [PATCH 02/23] Fix print statement syntax in main.py --- contributing/samples/adk_triaging_agent/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/main.py b/contributing/samples/adk_triaging_agent/main.py index 2d65cfd67d..5d4360074c 100644 --- a/contributing/samples/adk_triaging_agent/main.py +++ b/contributing/samples/adk_triaging_agent/main.py @@ -11,7 +11,7 @@ # 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. - +print("Running adk triage bot) import asyncio import time From cc9709a2e23311dbf1e692d4d91239103366ba27 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 14:12:15 +0530 Subject: [PATCH 03/23] Change REPO environment variable to use secrets --- .github/workflows/triage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index ed0e4bf9aa..0063dd57d7 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -43,7 +43,7 @@ jobs: GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} GOOGLE_GENAI_USE_VERTEXAI: 0 OWNER: ${{ secrets.REPOSITORY_OWNER }} - REPO: ${{ github.event.repository.name }} + REPO: ${{ secrets.REPO_NAME }} INTERACTIVE: 0 EVENT_NAME: ${{ github.event_name }} # 'issues', 'schedule', etc. ISSUE_NUMBER: ${{ github.event.issue.number }} From 82313fc1577b161c50d1d25ca5fbc898f86d7556 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 16:04:06 +0530 Subject: [PATCH 04/23] Fix print statement syntax in main.py --- contributing/samples/adk_triaging_agent/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/main.py b/contributing/samples/adk_triaging_agent/main.py index 5d4360074c..9bfa35f918 100644 --- a/contributing/samples/adk_triaging_agent/main.py +++ b/contributing/samples/adk_triaging_agent/main.py @@ -11,7 +11,7 @@ # 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. -print("Running adk triage bot) +print("Running adk triage bot") import asyncio import time From 4e1e01c73c2ce78422790efec4a09d738c464f86 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 16:10:42 +0530 Subject: [PATCH 05/23] Update GitHub token in triage workflow Replaced ADK_TRIAGE_AGENT secret with GITHUB_TOKEN for authentication. --- .github/workflows/triage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 0063dd57d7..0cd74e6d29 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -39,7 +39,7 @@ jobs: - name: Run Triaging Script env: - GITHUB_TOKEN: ${{ secrets.ADK_TRIAGE_AGENT }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} GOOGLE_GENAI_USE_VERTEXAI: 0 OWNER: ${{ secrets.REPOSITORY_OWNER }} From 604e37ac60ee91cfaed4c347a5352080ac558b45 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 16:18:37 +0530 Subject: [PATCH 06/23] Updated main.py for need owner. --- contributing/samples/adk_triaging_agent/main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/main.py b/contributing/samples/adk_triaging_agent/main.py index 9bfa35f918..28227d82c1 100644 --- a/contributing/samples/adk_triaging_agent/main.py +++ b/contributing/samples/adk_triaging_agent/main.py @@ -57,7 +57,8 @@ async def fetch_specific_issue_details(issue_number: int): # Determine what actions are needed needs_component_label = not has_component - needs_owner = has_planned and not has_assignee + # needs_owner = has_planned and not has_assignee + needs_owner = not has_assignee if needs_component_label or needs_owner: print( From fdeeeebd7a9908893bbb1b9bfcc401d20a10683a Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 16:33:32 +0530 Subject: [PATCH 07/23] Change owner assignment function in agent.py Updated function to use 'assign_gtech_owner_to_issue' for owner assignment based on component label. --- contributing/samples/adk_triaging_agent/agent.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index a646d82ca3..281af98cbc 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -311,8 +311,8 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: - Otherwise → do not change the issue type 2. **If `needs_owner` is true**: - - Use `add_owner_to_issue` to assign an owner based on the component label - - Note: If the issue already has a component label (`has_component_label: true`), use that existing label to determine the owner + - Use `assign_gtech_owner_to_issue` to assign an owner based on the component label + Do NOT add a component label if `needs_component_label` is false. Do NOT assign an owner if `needs_owner` is false. From 68efdd6ff50e7408e476c597e71085bf57426399 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 16:52:09 +0530 Subject: [PATCH 08/23] Reorder GTech owners and update variable names --- contributing/samples/adk_triaging_agent/agent.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index 281af98cbc..c13e85639e 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -43,7 +43,7 @@ } -LABEL_TO_GTECH = ["llalitkumarrr","surajksharma07","klateefa"] +LABEL_TO_GTECH = ["klateefa","llalitkumarrr","surajksharma07"] LABEL_GUIDELINES = """ Label rubric and disambiguation rules: @@ -199,11 +199,11 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: ) - owner = LABEL_TO_GTECH[issue_number % len(LABEL_TO_GTECH)] + gtech_assignee = LABEL_TO_GTECH[issue_number % len(LABEL_TO_GTECH)] assignee_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/assignees" ) - assignee_payload = {"assignees": [owner]} + assignee_payload = {"assignees": [gtech_assignee]} try: response = post_request(assignee_url, assignee_payload) @@ -213,7 +213,7 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: return { "status": "success", "message": response, - "assigned_owner": owner, + "assigned_owner": gtech_assignee, } From b1d117cd14756057e2fcd025c2bc6c2291e7a67d Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 16:52:55 +0530 Subject: [PATCH 09/23] Simplify owner assignment instruction in agent.py Clarified the assignment of an owner in the agent.py file. --- contributing/samples/adk_triaging_agent/agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index c13e85639e..d40ad8c68e 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -311,7 +311,7 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: - Otherwise → do not change the issue type 2. **If `needs_owner` is true**: - - Use `assign_gtech_owner_to_issue` to assign an owner based on the component label + - Use `assign_gtech_owner_to_issue` to assign an owner. Do NOT add a component label if `needs_component_label` is false. From 075e3f6ffb723a0b56218b65dca706ca3c4c6064 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 17:07:31 +0530 Subject: [PATCH 10/23] Refactor triaging agent comments for clarity --- contributing/samples/adk_triaging_agent/agent.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index d40ad8c68e..c8270b3461 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -299,12 +299,12 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: Each issue will have flags indicating what actions are needed: - `needs_component_label`: true if the issue needs a component label - - `needs_owner`: true if the issue needs an owner assigned (has 'planned' label but no assignee) + - `needs_owner`: true if the issue needs an owner assigned For each issue, perform ONLY the required actions based on the flags: 1. **If `needs_component_label` is true**: - - Use `assign_gtech_owner_to_issue` to add the appropriate component label + - Use `add_label_to_issue` to add the appropriate component label - Use `change_issue_type` to set the issue type: - Bug report → "Bug" - Feature request → "Feature" @@ -322,14 +322,13 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: placeholders (never output text like "[fill in later]"). - Justify the chosen label with a short explanation referencing the issue details. - - Mention the assigned owner only when you actually assign one (i.e., when - the issue has the 'planned' label). + - Mention the assigned owner only when you actually assign one. - If no label is applied, clearly state why. Present the following in an easy to read format highlighting issue number and your label. - the issue summary in a few sentence - your label recommendation and justification - - the owner of the label if you assign the issue to an owner (only for planned issues) + - the owner, if you assign the issue to an owner """, tools=[ list_untriaged_issues, From d8a93c46041f1bff701cfc678c1bf187d1fa67da Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 17:17:53 +0530 Subject: [PATCH 11/23] Update agent.py --- contributing/samples/adk_triaging_agent/agent.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index c8270b3461..ce84222626 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -200,13 +200,22 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: gtech_assignee = LABEL_TO_GTECH[issue_number % len(LABEL_TO_GTECH)] + if not gtech_assignee: + return { + "status": "warning", + "message": f"No gtech_assignee found, will add any assignee", + } assignee_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/assignees" ) assignee_payload = {"assignees": [gtech_assignee]} + print("assignee_payload:",assignee_payload) + try: response = post_request(assignee_url, assignee_payload) + print("successfully assigned this issue to :"gtech_assignee) + print("url to post assignee",url) except requests.exceptions.RequestException as e: return error_response(f"Error: {e}") From 4656868601298ccc1fde5a4413f3d803e29fd831 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 17:19:50 +0530 Subject: [PATCH 12/23] Fix print statement formatting for assignee message --- contributing/samples/adk_triaging_agent/agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index ce84222626..81e200033b 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -214,7 +214,7 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: try: response = post_request(assignee_url, assignee_payload) - print("successfully assigned this issue to :"gtech_assignee) + print("successfully assigned this issue to :",gtech_assignee) print("url to post assignee",url) except requests.exceptions.RequestException as e: return error_response(f"Error: {e}") From f25de608ed682dbe617d6f60cc26cc60d57ae3af Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 17:23:13 +0530 Subject: [PATCH 13/23] Update agent.py --- contributing/samples/adk_triaging_agent/agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index 81e200033b..3e0dabee0f 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -215,7 +215,7 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: try: response = post_request(assignee_url, assignee_payload) print("successfully assigned this issue to :",gtech_assignee) - print("url to post assignee",url) + print("url to post assignee",assignee_url) except requests.exceptions.RequestException as e: return error_response(f"Error: {e}") From 9a794c3fc2e991e9348a3d8bf5af473dd8fb6091 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 21:13:17 +0530 Subject: [PATCH 14/23] Clean up debug prints in agent.py Removed debug print statements for assignee payload and URL. --- contributing/samples/adk_triaging_agent/agent.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index 3e0dabee0f..f849e093e0 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -209,13 +209,11 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/assignees" ) assignee_payload = {"assignees": [gtech_assignee]} - print("assignee_payload:",assignee_payload) try: response = post_request(assignee_url, assignee_payload) print("successfully assigned this issue to :",gtech_assignee) - print("url to post assignee",assignee_url) except requests.exceptions.RequestException as e: return error_response(f"Error: {e}") From c6a9a2cd04a01378651fbb15328436db69734d83 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 21:13:39 +0530 Subject: [PATCH 15/23] Remove print statement from main.py --- contributing/samples/adk_triaging_agent/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/main.py b/contributing/samples/adk_triaging_agent/main.py index 28227d82c1..a0d4a826b2 100644 --- a/contributing/samples/adk_triaging_agent/main.py +++ b/contributing/samples/adk_triaging_agent/main.py @@ -11,7 +11,6 @@ # 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. -print("Running adk triage bot") import asyncio import time From eaa2e511daedbc58078893df3ad249752e7954ff Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 21:23:11 +0530 Subject: [PATCH 16/23] Update triage workflow Updated triaged workflow to run on google-adk python git repo, to automate issue assignment to gtech team. --- .github/workflows/triage.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 0cd74e6d29..c7b63ad63f 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -9,7 +9,7 @@ on: jobs: agent-triage-issues: - runs-on: [self-hosted, Linux, X64] + runs-on: ubuntu-latest # Run for: # - Scheduled runs (batch processing) # - New issues (need component labeling) @@ -39,11 +39,11 @@ jobs: - name: Run Triaging Script env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.ADK_TRIAGE_AGENT }} GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} GOOGLE_GENAI_USE_VERTEXAI: 0 - OWNER: ${{ secrets.REPOSITORY_OWNER }} - REPO: ${{ secrets.REPO_NAME }} + OWNER: ${{ github.repository_owner }} + REPO: ${{ github.event.repository.name }} INTERACTIVE: 0 EVENT_NAME: ${{ github.event_name }} # 'issues', 'schedule', etc. ISSUE_NUMBER: ${{ github.event.issue.number }} @@ -51,4 +51,4 @@ jobs: ISSUE_BODY: ${{ github.event.issue.body }} ISSUE_COUNT_TO_PROCESS: '3' # Process 3 issues at a time on schedule PYTHONPATH: contributing/samples - run: gtech-run contributing/samples/adk_triaging_agent/main.py + run: python -m adk_triaging_agent.main From 399f1769480744a96eee03bed5728d570619fe31 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 21:48:08 +0530 Subject: [PATCH 17/23] Remove commented out needs_owner assignment --- contributing/samples/adk_triaging_agent/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/main.py b/contributing/samples/adk_triaging_agent/main.py index a0d4a826b2..fcdac832ac 100644 --- a/contributing/samples/adk_triaging_agent/main.py +++ b/contributing/samples/adk_triaging_agent/main.py @@ -11,6 +11,7 @@ # 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. + import asyncio import time @@ -56,7 +57,6 @@ async def fetch_specific_issue_details(issue_number: int): # Determine what actions are needed needs_component_label = not has_component - # needs_owner = has_planned and not has_assignee needs_owner = not has_assignee if needs_component_label or needs_owner: From 5978ce2019576c2f8dd24797a41a19ff7c260338 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 21:57:01 +0530 Subject: [PATCH 18/23] Refactor print statements and clean up code --- contributing/samples/adk_triaging_agent/agent.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index f849e093e0..e8c16f1f83 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -43,7 +43,7 @@ } -LABEL_TO_GTECH = ["klateefa","llalitkumarrr","surajksharma07"] +LABEL_TO_GTECH = ["klateefa", "llalitkumarrr", "surajksharma07"] LABEL_GUIDELINES = """ Label rubric and disambiguation rules: @@ -131,7 +131,6 @@ def list_untriaged_issues(issue_count: int) -> dict[str, Any]: # needs_owner = has_planned and not assignees needs_owner = not assignees - # Include issue if it needs any action if needs_component_label or needs_owner: # issue["has_planned_label"] = has_planned @@ -194,11 +193,7 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: Returns: The status of this request, with the assigned owner when successful. """ - print( - f"Attempting to assign GTech owner to issue #{issue_number}" - ) - - + print(f"Attempting to assign GTech owner to issue #{issue_number}") gtech_assignee = LABEL_TO_GTECH[issue_number % len(LABEL_TO_GTECH)] if not gtech_assignee: return { @@ -208,12 +203,9 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: assignee_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/assignees" ) - assignee_payload = {"assignees": [gtech_assignee]} - try: response = post_request(assignee_url, assignee_payload) - print("successfully assigned this issue to :",gtech_assignee) except requests.exceptions.RequestException as e: return error_response(f"Error: {e}") @@ -340,7 +332,6 @@ def change_issue_type(issue_number: int, issue_type: str) -> dict[str, Any]: tools=[ list_untriaged_issues, add_label_to_issue, - # add_owner_to_issue, assign_gtech_owner_to_issue, change_issue_type, ], From 688f6882f86d99fd28ed6aede8dab260fb484f71 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 22:01:36 +0530 Subject: [PATCH 19/23] Update repository condition in triage workflow --- .github/workflows/triage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index c7b63ad63f..52805d3539 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -15,7 +15,7 @@ jobs: # - New issues (need component labeling) # - Issues labeled with "planned" (need owner assignment) if: >- - github.repository == 'llalitkumarrr/adk-python' && ( + github.repository == 'google/adk-python' && ( github.event_name == 'schedule' || github.event.action == 'opened' ) From 28c3ee7e9e1f0b67de270a3eed02a2feee765990 Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 22:07:12 +0530 Subject: [PATCH 20/23] Clean up formatting in add_label_to_issue function Removed unnecessary blank lines in add_label_to_issue function. --- contributing/samples/adk_triaging_agent/agent.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index e8c16f1f83..c47bbb6a46 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -150,7 +150,6 @@ def list_untriaged_issues(issue_count: int) -> dict[str, Any]: def add_label_to_issue(issue_number: int, label: str) -> dict[str, Any]: """Add the specified component label to the given issue number. - Args: issue_number: issue number of the GitHub issue. label: label to assign @@ -203,7 +202,6 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: assignee_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/assignees" ) - try: response = post_request(assignee_url, assignee_payload) except requests.exceptions.RequestException as e: From d5f0ae39b94b3515bc7e567071da7b943675c1bf Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 23 Mar 2026 22:25:08 +0530 Subject: [PATCH 21/23] Fix errors in agent.py Corrected spelling errors in comments and docstrings. --- contributing/samples/adk_triaging_agent/agent.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index c47bbb6a46..654684b84d 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -185,7 +185,7 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: This is go to option irrespective of component label or planned label, as long as the issue needs an owner. All unassigned issues will be considered for GTech ownership. Unassigned issues will seperated in two categories: issues with type "Bug" and issues with type "Feature". Then bug issues and feature issues will be equally assigned to the Gtech members in such a way that every day all members get equal number of bug and feature issues. - + Args: issue_number: issue number of the GitHub issue. @@ -198,7 +198,7 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: return { "status": "warning", "message": f"No gtech_assignee found, will add any assignee", - } + } assignee_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/assignees" ) From ff7a8465ae923b3990de2483c16f374f8193302b Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 30 Mar 2026 21:17:57 +0530 Subject: [PATCH 22/23] Add 'sanketpatil06' to LABEL_TO_GTECH list --- contributing/samples/adk_triaging_agent/agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index 654684b84d..b76e8db4c9 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -43,7 +43,7 @@ } -LABEL_TO_GTECH = ["klateefa", "llalitkumarrr", "surajksharma07"] +LABEL_TO_GTECH = ["klateefa", "llalitkumarrr", "surajksharma07", "sanketpatil06"] LABEL_GUIDELINES = """ Label rubric and disambiguation rules: From c582bd0a704e6b4827fc26258638d5ff809fcc2e Mon Sep 17 00:00:00 2001 From: llalitkumarrr Date: Mon, 6 Apr 2026 11:36:55 +0530 Subject: [PATCH 23/23] Add assignee payload for GitHub issue assignment --- contributing/samples/adk_triaging_agent/agent.py | 1 + 1 file changed, 1 insertion(+) diff --git a/contributing/samples/adk_triaging_agent/agent.py b/contributing/samples/adk_triaging_agent/agent.py index b76e8db4c9..e4c8f5e68d 100644 --- a/contributing/samples/adk_triaging_agent/agent.py +++ b/contributing/samples/adk_triaging_agent/agent.py @@ -202,6 +202,7 @@ def assign_gtech_owner_to_issue(issue_number: int) -> dict[str, Any]: assignee_url = ( f"{GITHUB_BASE_URL}/repos/{OWNER}/{REPO}/issues/{issue_number}/assignees" ) + assignee_payload = {"assignees": [gtech_assignee]} try: response = post_request(assignee_url, assignee_payload) except requests.exceptions.RequestException as e: