Skip to main content

Procedimientos recomendados para usar Copilot para trabajar en tareas

Obtén información sobre cómo obtener los mejores resultados de Agente de codificación de Copilot.

¿Quién puede utilizar esta característica?

Agente de codificación de Copilot está disponible con los planes GitHub Copilot Pro+ y GitHub Copilot para grandes empresas en repositorios donde está habilitado. Agente de codificación de Copilot no está disponible en repositorios propiedad de cuentas de usuario administradas.
Sign up for Copilot

Nota:

Agente de codificación de Copilot is in versión preliminar pública and subject to change. During the preview, use of the feature is subject to Términos de licencia de la versión preliminar de GitHub.

Asegurarte de que las propuestas tienen un ámbito correcto

GitHub Copilot proporciona mejores resultados cuando se asignan tareas claras y con ámbito bien definido. Una tarea ideal incluye:

  • Una descripción clara del problema que se va a resolver o del trabajo necesario.
  • Criterios de aceptación completos sobre el aspecto de una buena solución (por ejemplo, ¿debería haber pruebas unitarias?).
  • Instrucciones sobre qué archivos deben cambiarse.

Si pasas una tarea a Copilot mediante la asignación de una propuesta, resulta útil pensar en el propuesta que asignas a Copilot como una indicación. Ten en cuenta si es probable que la descripción de la propuesta funcione como una indicación de IA y habilitará Copilot para realizar los cambios de código necesarios.

Elección del tipo correcto de tareas que se van a proporcionar a Copilot

A medida que trabajes con Copilot, te harás una idea de los tipos de tareas en las que trabaja mejor. Inicialmente, es posible que quieras empezar proporcionando a Copilot tareas más sencillas para ver cómo funciona como agente de codificación. Por ejemplo, puedes empezar pidiendo a Copilot que corrija errores, modifique las características de la interfaz de usuario, mejore la cobertura de pruebas, actualice la documentación, mejore la accesibilidad o solucione la deuda técnica.

Las propuestas en las que puedes optar por trabajar tú mismo, en lugar de asignar a Copilot, incluyen:

  • Tareas complejas y de ámbito general

    • Problemas de refactorización de contexto y de ámbito amplio que requieren conocimientos y pruebas entre repositorios
    • Problemas complejos que requieren comprender las dependencias y el código heredado
    • Tareas que requieren conocimientos profundos de dominio
    • Tareas que implican una lógica de negocios sustancial
    • Cambios grandes en un código base que requiere coherencia de diseño
  • Tareas confidenciales y críticas

    • Problemas críticos para la producción
    • Tareas relacionadas con la seguridad, información de identificación personal, repercusiones en la autenticación
    • Respuesta a incidentes
  • Tareas ambiguas

    • Tareas que carecen de definición clara: tareas con requisitos ambiguos, tareas abiertas, tareas que requieren trabajar con incertidumbre para encontrar una solución
  • Tareas de aprendizaje

    • Tareas en las que el desarrollador quiere aprender para lograr una mejor comprensión

Uso de comentarios para iterar en una solicitud de incorporación de cambios

Trabajar con Copilot en una solicitud de incorporación de cambios es igual que trabajar con un desarrollador humano: es habitual que la solicitud de incorporación de cambios necesite más trabajo para poder combinarla. El proceso para hacer que la solicitud de incorporación de cambios alcance un estado en el que se puede combinar es exactamente el mismo cuando la solicitud de incorporación de cambios se crea mediante Copilot que cuando un humano la crea. Si lo deseas, puedes trabajar en la rama de características tú mismo e insertar cambios en la solicitud de incorporación de cambios. Sin embargo, también puedes agregar comentarios a la solicitud de incorporación de cambios (explicando lo que crees que es incorrecto o podría mejorarse) y dejar que Copilot realice los cambios necesarios.

Copilot leerá todos los comentarios en cuanto los envíen usuarios con acceso de escritura y decidirá si requieren acción. A continuación, comenzará a realizar los cambios necesarios y actualizará la solicitud de incorporación de cambios cuando haya terminado. Dado que Copilot comienza a examinar los comentarios tan pronto como se envían, si es probable que realices varios comentarios en una solicitud de incorporación de cambios, es mejor procesarlos haciendo clic en Iniciar una revisión, en lugar de hacer clic en Agregar comentario único. Después, puedes enviar todos los comentarios a la vez, lo que desencadena Copilot para que trabaje en toda la revisión, en lugar de trabajar en comentarios individuales por separado.

Nota:

Copilot only responds to comments from people who have write access to the repository.

Adición de instrucciones personalizadas al repositorio

Al agregar instrucciones personalizadas al repositorio, puedes guiar a Copilot sobre cómo comprender el proyecto y cómo compilar, probar y validar sus cambios.

Si Copilot puede compilar, probar y validar sus cambios en su propio entorno de desarrollo, es más probable que genere buenas solicitudes de incorporación de cambios que se pueden combinar rápidamente.

Agrega instrucciones a un archivo .github/copilot-instructions.md en el repositorio. Para más información, consulta Incorporación de instrucciones personalizadas del repositorio para GitHub Copilot.

Este es un ejemplo de un archivo copilot-instructions.md efectivo:

This is a Go based repository with a Ruby client for certain API endpoints. It is primarily responsible for ingesting metered usage for GitHub and recording that usage. Please follow these guidelines when contributing:

## Code Standards

### Required Before Each Commit
- Run `make fmt` before committing any changes to ensure proper code formatting
- This will run gofmt on all Go files to maintain consistent style

### Development Flow
- Build: `make build`
- Test: `make test`
- Full CI check: `make ci` (includes build, fmt, lint, test)

## Repository Structure
- `cmd/`: Main service entry points and executables
- `internal/`: Logic related to interactions with other GitHub services
- `lib/`: Core Go packages for billing logic
- `admin/`: Admin interface components
- `config/`: Configuration files and templates
- `docs/`: Documentation
- `proto/`: Protocol buffer definitions. Run `make proto` after making updates here.
- `ruby/`: Ruby implementation components. Updates to this folder should include incrementing this version file using semantic versioning: `ruby/lib/billing-platform/version.rb`
- `testing/`: Test helpers and fixtures

## Key Guidelines
1. Follow Go best practices and idiomatic patterns
2. Maintain existing code structure and organization
3. Use dependency injection patterns where appropriate
4. Write unit tests for new functionality. Use table-driven unit tests when possible.
5. Document public APIs and complex logic. Suggest changes to the `docs/` folder when appropriate

Uso del protocolo de contexto de modelo (MCP)

Puedes ampliar las funcionalidades de Agente de codificación de Copilot mediante MCP. Esto permite que Agente de codificación de Copilot use herramientas proporcionadas por los servidores MCP locales. Para más información, consulta Extensión del agente de codificación de Copilot con el protocolo de contexto de modelo (MCP).

Preinstalación de dependencias en el entorno de GitHub Copilot

Al trabajar en una tarea, Copilot tiene acceso a su propio entorno de desarrollo efímero, con tecnología de GitHub Actions, donde puedes explorar el código, realizar cambios, ejecutar pruebas automatizadas y linters, etc.

Si Copilot puede compilar, probar y validar sus cambios en su propio entorno de desarrollo, es más probable que genere buenas solicitudes de incorporación de cambios que se pueden combinar rápidamente.

Para ello, necesitará las dependencias del proyecto. Copilot puede detectar e instalar estas dependencias a través de un proceso de prueba y error, pero esto puede ser lento y poco confiable, dada la naturaleza no determinista de los modelos de lenguaje grandes (LLM).

Puedes configurar un archivo copilot-setup-steps.yml para preinstalar estas dependencias antes de que el agente empiece a funcionar para que pueda empezar a funcionar inmediatamente. Para más información, consulta Personalización del entorno de desarrollo para el agente de codificación de Copilot.