Conversation
There was a problem hiding this comment.
Summary of Changes
Hello @sanjaysah101, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request significantly enhances the project's contribution experience by overhauling its issue and pull request templates, moving from generic markdown files to structured YAML and multi-template markdown files. This change aims to streamline the process for contributors to report issues, request features, and submit code, ensuring more consistent and comprehensive information. Additionally, it includes minor updates to project documentation and copyright details.
Highlights
- Enhanced Contribution Workflow: Replaced single, generic issue and pull request templates with multiple, structured YAML and Markdown templates. This includes dedicated templates for bug reports, feature requests, and general tasks for issues, and specific templates for bug fixes, new features, and refactors for pull requests. A new top-level PR template guides users to select the appropriate type, aiming to improve the clarity and completeness of community contributions.
- Documentation Refinements: Updated the
CONTRIBUTING.mdguide to provide more accurate instructions for cloning forked repositories and corrected indentation in code examples. The link for Husky pre-commit hooks was also updated to its official documentation. Additionally, theCODE_OF_CONDUCT.mdnow includes a specificmailtolink for reporting conduct issues. - Project Metadata Update: The copyright information in the
LICENSEfile was updated, changing the copyright year from 2014 to 2025 and the copyright holder from 'The Android Open Source Project' to 'Ansopedia'. A minor change was also made to the.vscode/settings.jsonto add 'Ansopedia' to the spell checker's word list.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Code Review
This pull request introduces new GitHub issue and pull request templates to streamline contributions, which is a great improvement. I've identified some issues with the YAML-based issue templates; they are not using the correct syntax for GitHub Issue Forms, which will prevent them from rendering as structured forms. I've provided suggestions to fix this. Additionally, I've suggested an improvement to the pull request template chooser to make it more user-friendly.
| body: | ||
| - "## Issue Summary" | ||
| - "" | ||
| - "[Provide a short summary of the issue.]" | ||
| - "" | ||
| - "## Steps to Reproduce" | ||
| - "" | ||
| - "1. Step one" | ||
| - "2. Step two" | ||
| - "3. Step three" | ||
| - "" | ||
| - "## Expected Behavior" | ||
| - "" | ||
| - "[Explain what you expected to happen.]" | ||
| - "" | ||
| - "## Actual Behavior" | ||
| - "" | ||
| - "[Explain what actually happened.]" | ||
| - "" | ||
| - "## Environment" | ||
| - "" | ||
| - "- Operating System:" | ||
| - "- Node.js version:" | ||
| - "- pnpm version:" | ||
| - "- Project version:" |
There was a problem hiding this comment.
The current body definition uses a list of strings, which is not the correct syntax for GitHub's YAML-based issue forms. This will result in a single large pre-filled text area instead of a structured form with distinct input fields. To fix this and improve the user experience for reporting bugs, you should use an array of objects, where each object defines a form element like textarea.
body:
- type: textarea
id: summary
attributes:
label: Issue Summary
description: Provide a short summary of the issue.
validations:
required: true
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
description: Please provide detailed steps to reproduce the bug.
placeholder: |
1. ...
2. ...
3. ...
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior
description: Explain what you expected to happen.
validations:
required: true
- type: textarea
id: actual-behavior
attributes:
label: Actual Behavior
description: Explain what actually happened.
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: Please provide your environment details.
value: |
- Operating System:
- Node.js version:
- pnpm version:
- Project version:
validations:
required: true
| body: | ||
| - "## Feature Summary" | ||
| - "" | ||
| - "[Provide a short summary of the feature or enhancement.]" | ||
| - "" | ||
| - "## Motivation" | ||
| - "" | ||
| - "[Explain why this feature is needed and the problem it solves.]" | ||
| - "" | ||
| - "## Proposed Solution" | ||
| - "" | ||
| - "[Describe the solution or approach you suggest.]" | ||
| - "" | ||
| - "## Alternatives Considered" | ||
| - "" | ||
| - "[List any alternative solutions or features you considered.]" | ||
| - "" | ||
| - "## Environment" | ||
| - "" | ||
| - "- Operating System:" | ||
| - "- Node.js version:" | ||
| - "- pnpm version:" | ||
| - "- Project version:" |
There was a problem hiding this comment.
The body of this issue template is defined as a list of strings, which is not the correct syntax for GitHub's YAML-based issue forms. This will render as a single text area. To create a structured form, you should use an array of objects, with each object representing a form field. This will make it easier for users to submit well-structured feature requests.
body:
- type: textarea
id: summary
attributes:
label: Feature Summary
description: Provide a short summary of the feature or enhancement.
validations:
required: true
- type: textarea
id: motivation
attributes:
label: Motivation
description: Explain why this feature is needed and the problem it solves.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the solution or approach you suggest.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: List any alternative solutions or features you considered.
- type: textarea
id: environment
attributes:
label: Environment
description: Please provide your environment details.
value: |
- Operating System:
- Node.js version:
- pnpm version:
- Project version:
.github/ISSUE_TEMPLATE/task.yml
Outdated
| body: | ||
| - "## Task Summary" | ||
| - "" | ||
| - "[Provide a short description of the task.]" | ||
| - "" | ||
| - "## Details" | ||
| - "" | ||
| - "[Provide detailed information about the task.]" | ||
| - "" | ||
| - "## Environment" | ||
| - "" | ||
| - "- Operating System:" | ||
| - "- Node.js version:" | ||
| - "- pnpm version:" | ||
| - "- Project version:" |
There was a problem hiding this comment.
This issue template's body is using a list of strings, which is incorrect for GitHub's YAML issue forms. It should be an array of objects, where each object defines a form field. This change will ensure the template renders as a structured form, making it easier to create and track tasks.
body:
- type: textarea
id: summary
attributes:
label: Task Summary
description: Provide a short description of the task.
validations:
required: true
- type: textarea
id: details
attributes:
label: Details
description: Provide detailed information about the task.
- type: textarea
id: environment
attributes:
label: Environment
description: Please provide your environment details.
value: |
- Operating System:
- Node.js version:
- pnpm version:
- Project version:
| - [New Feature](./PULL_REQUEST_TEMPLATE/feature_template.md) | ||
| - [Bug Fix](./PULL_REQUEST_TEMPLATE/bugfix_template.md) | ||
| - [Refactor](./PULL_REQUEST_TEMPLATE/refactor_template.md) |
There was a problem hiding this comment.
The links to the PR templates are currently relative file paths. While this works for browsing the repository, a more user-friendly approach for PR creation is to use query parameters. This allows users to click a link and have the corresponding template pre-filled on the 'New Pull Request' page.
| - [New Feature](./PULL_REQUEST_TEMPLATE/feature_template.md) | |
| - [Bug Fix](./PULL_REQUEST_TEMPLATE/bugfix_template.md) | |
| - [Refactor](./PULL_REQUEST_TEMPLATE/refactor_template.md) | |
| - [New Feature](?template=feature_template.md) | |
| - [Bug Fix](?template=bugfix_template.md) | |
| - [Refactor](?template=refactor_template.md) |
#28