docs/issue-and-pr-automation.md
This document provides a detailed overview of the automated processes we use to manage and triage issues and pull requests. Our goal is to provide prompt feedback and ensure that contributions are reviewed and integrated efficiently. Understanding this automation will help you as a contributor know what to expect and how to best interact with our repository bots.
First and foremost, almost every Pull Request (PR) should be linked to a corresponding Issue. The issue describes the "what" and the "why" (the bug or feature), while the PR is the "how" (the implementation). This separation helps us track work, prioritize features, and maintain clear historical context. Our automation is built around this principle.
<!-- prettier-ignore -->[!NOTE] Issues tagged as "🔒Maintainers only" are reserved for project maintainers. We will not accept pull requests related to these issues.
Here is a breakdown of the specific automation workflows that run in our repository.
Automated Issue TriageThis is the first bot you will interact with when you create an issue. Its job is to perform an initial analysis and apply the correct labels.
.github/workflows/gemini-automated-issue-triage.ymlarea/* label: Categorizes the issue into a functional area
of the project (for example, area/ux, area/models, area/platform).kind/* label: Identifies the type of issue (for example,
kind/bug, kind/enhancement, kind/question).priority/* label: Assigns a priority from P0 (critical) to
P3 (low) based on the described impact.status/need-information: If the issue lacks critical details
(like logs or reproduction steps), it will be flagged for more information.status/need-retesting: If the issue references a CLI version
that is more than six versions old, it will be flagged for retesting on a
current version.status/need-information label is added, provide the requested
details in a comment.Continuous Integration (CI)This workflow ensures that all changes meet our quality standards before they can be merged.
.github/workflows/ci.ymlPR Auditing and Label SyncThis workflow runs periodically to ensure all open PRs are correctly linked to issues and have consistent labels.
.github/workflows/gemini-scheduled-pr-triage.ymlFixes #123,
Closes #456).status/need-issue: If no linked issue is found, the bot will add
the status/need-issue label to your PR. This is a clear signal that an
issue needs to be created and linked.status/need-issue
label if it was present.Resolves #<issue-number> to your PR description.Scheduled Issue TriageThis is a fallback workflow to ensure that no issue gets missed by the triage process.
.github/workflows/gemini-scheduled-issue-triage.ymlstatus/need-triage label.Unassign Inactive Issue AssigneesTo keep the list of open help wanted issues accessible to all contributors,
this workflow automatically removes external contributors who have not
opened a linked pull request within 7 days of being assigned. Maintainers,
org members, and repo collaborators with write access or above are always exempt
and will never be auto-unassigned.
.github/workflows/unassign-inactive-assignees.ymldry_run mode.help wanted that has at least one
assignee.assigned timeline events).Fixes #<issue-number> in the
description. Draft PRs do not satisfy the requirement and will not prevent
auto-unassignment./assign on the issue to
assign yourself again./unassign, so other contributors can pick it up right away.This workflow handles the process of packaging and publishing new versions of Gemini CLI.
.github/workflows/release-manual.ymlmain branch, your changes
will be included in the very next nightly release.We hope this detailed overview is helpful. If you have any questions about our automation or processes, don't hesitate to ask!