GitHub
Usa Dropstone en problemas y solicitudes de extracción de GitHub.
Dropstone se integra con tu flujo de trabajo de GitHub. Menciona /dropstone en cualquier comentario y Dropstone ejecutará la tarea dentro de tu ejecutor de GitHub Actions.
Características
- Clasificar problemas: Pide a Dropstone que investigue un problema y te lo explique.
- Corregir e implementar: Pide a Dropstone que corrija un problema o implemente una característica. Trabajará en una rama nueva y enviará un PR con todos los cambios.
- Seguro: Dropstone se ejecuta dentro de los ejecutores de GitHub.
Instalación
Ejecuta el siguiente comando en un proyecto que esté en un repositorio de GitHub:
dropstone github install
Esto te guiará a través de la instalación de la aplicación de GitHub, la creación del flujo de trabajo y la configuración de secretos.
Configuración Manual
O puedes configurarlo manualmente.
-
Instala la aplicación de GitHub
Ve a github.com/apps/dropstone-agent. Asegúrate de que esté instalada en el repositorio de destino.
-
Añade el flujo de trabajo
Añade el siguiente archivo de flujo de trabajo a
.github/workflows/dropstone.ymlen tu repositorio. Asegúrate de establecer elmodelapropiado y las claves API requeridas enenv.name: dropstone on: issue_comment: types: [created] pull_request_review_comment: types: [created] jobs: dropstone: if: contains(github.event.comment.body, '/dropstone') runs-on: ubuntu-latest permissions: id-token: write steps: - name: Checkout repository uses: actions/checkout@v6 with: fetch-depth: 1 persist-credentials: false - name: Run Dropstone uses: blankline-org/dropstone-cli/github@latest env: DROPSTONE_API_KEY: ${{ secrets.DROPSTONE_API_KEY }} with: model: dropstone/dropstone-pro # share: true # github_token: xxxx -
Almacena tu clave API en secretos del repositorio
En tu organización o repositorio Settings, expande Secrets and variables en la izquierda y selecciona Actions. Añade
DROPSTONE_API_KEYcomo un nuevo secreto del repositorio.
Configuración
-
model: El nivel de Dropstone a usar. Uno dedropstone/dropstone-fast,dropstone/dropstone-pro, odropstone/dropstone-heavy. Esto es requerido. -
agent: El agente a usar. Debe ser un agente principal. Vuelve adefault_agentde la configuración o"build"si no se encuentra. -
share: Si compartir la sesión de Dropstone. Por defecto es true para repositorios públicos. -
prompt: Indicación personalizada opcional para anular el comportamiento predeterminado. Úsalo para personalizar cómo Dropstone procesa las solicitudes. -
token: Token de acceso de GitHub opcional para realizar operaciones como crear comentarios, confirmar cambios y abrir solicitudes de extracción. Por defecto, Dropstone usa el token de acceso de instalación de la aplicación de GitHub de Dropstone, por lo que los commits, comentarios y solicitudes de extracción aparecen como provenientes de la aplicación.Alternativamente, puedes usar el token
GITHUB_TOKENintegrado del ejecutor de GitHub Actions sin instalar la aplicación de GitHub de Dropstone. Solo asegúrate de otorgar los permisos requeridos en tu flujo de trabajo:permissions: id-token: write contents: write pull-requests: write issues: writeTambién puedes usar tokens de acceso personal (PAT) si lo prefieres.
Eventos Soportados
Dropstone puede ser activado por los siguientes eventos de GitHub:
| Tipo de Evento | Activado Por | Detalles |
|---|---|---|
issue_comment | Comentario en un problema o PR | Menciona /dropstone en tu comentario. Dropstone lee el contexto y puede crear ramas, abrir PRs o responder. |
pull_request_review_comment | Comentario en líneas de código específicas en un PR | Menciona /dropstone mientras revisas código. Dropstone recibe la ruta del archivo, números de línea y contexto de diff. |
issues | Problema abierto o editado | Activa automáticamente Dropstone cuando se crean o modifican problemas. Requiere entrada prompt. |
pull_request | PR abierto o actualizado | Activa automáticamente Dropstone cuando se abren, sincronizan o reabre PRs. Útil para revisiones automatizadas. |
schedule | Horario basado en cron | Ejecuta Dropstone en un horario. Requiere entrada prompt. La salida va a registros y PRs (sin problema para comentar). |
workflow_dispatch | Activación manual desde la interfaz de GitHub | Activa Dropstone bajo demanda a través de la pestaña Actions. Requiere entrada prompt. La salida va a registros y PRs. |
Ejemplo de Horario
Ejecuta Dropstone en un horario para realizar tareas automatizadas:
name: Scheduled Dropstone Task
on:
schedule:
- cron: "0 9 * * 1" # Every Monday at 9am UTC
jobs:
dropstone:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
pull-requests: write
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Run Dropstone
uses: blankline-org/dropstone-cli/github@latest
env:
DROPSTONE_API_KEY: ${{ secrets.DROPSTONE_API_KEY }}
with:
model: dropstone/dropstone-pro
prompt: |
Review the codebase for any TODO comments and create a summary.
If you find issues worth addressing, open an issue to track them.
Para eventos programados, la entrada prompt es requerida ya que no hay comentario del cual extraer instrucciones. Los flujos de trabajo programados se ejecutan sin un contexto de usuario para verificar permisos, por lo que el flujo de trabajo debe otorgar contents: write y pull-requests: write si esperas que Dropstone cree ramas o PRs.
Ejemplo de Solicitud de Extracción
Revisa automáticamente PRs cuando se abren o actualizan:
name: dropstone-review
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
jobs:
review:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
pull-requests: read
issues: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: blankline-org/dropstone-cli/github@latest
env:
DROPSTONE_API_KEY: ${{ secrets.DROPSTONE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
model: dropstone/dropstone-pro
use_github_token: true
prompt: |
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvements
Para eventos pull_request, si no se proporciona prompt, Dropstone por defecto revisa la solicitud de extracción.
Ejemplo de Clasificación de Problemas
Clasifica automáticamente nuevos problemas. Este ejemplo filtra cuentas más antiguas que 30 días para reducir spam:
name: Issue Triage
on:
issues:
types: [opened]
jobs:
triage:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
pull-requests: write
issues: write
steps:
- name: Check account age
id: check
uses: actions/github-script@v7
with:
script: |
const user = await github.rest.users.getByUsername({
username: context.payload.issue.user.login
});
const created = new Date(user.data.created_at);
const days = (Date.now() - created) / (1000 * 60 * 60 * 24);
return days >= 30;
result-encoding: string
- uses: actions/checkout@v6
if: steps.check.outputs.result == 'true'
with:
persist-credentials: false
- uses: blankline-org/dropstone-cli/github@latest
if: steps.check.outputs.result == 'true'
env:
DROPSTONE_API_KEY: ${{ secrets.DROPSTONE_API_KEY }}
with:
model: dropstone/dropstone-pro
prompt: |
Review this issue. If there's a clear fix or relevant docs:
- Provide documentation links
- Add error handling guidance for code examples
Otherwise, do not comment.
Para eventos issues, la entrada prompt es requerida ya que no hay comentario del cual extraer instrucciones.
Indicaciones personalizadas
Anula la indicación predeterminada para personalizar el comportamiento de Dropstone para tu flujo de trabajo.
- uses: blankline-org/dropstone-cli/github@latest
with:
model: dropstone/dropstone-pro
prompt: |
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvements
Esto es útil para aplicar criterios de revisión específicos, estándares de codificación o áreas de enfoque relevantes para tu proyecto.
Ejemplos
Aquí hay algunos ejemplos de cómo puedes usar Dropstone en GitHub.
-
Explicar un problema
Añade este comentario en un problema de GitHub.
/dropstone explain this issueDropstone leerá todo el hilo, incluidos todos los comentarios, y responderá con una explicación clara.
-
Corregir un problema
En un problema de GitHub, di:
/dropstone fix thisY Dropstone creará una rama nueva, implementará los cambios y abrirá un PR con los cambios.
-
Revisar PRs y hacer cambios
Deja el siguiente comentario en un PR de GitHub.
/dropstone delete the attachment from S3 when the note is removedDropstone implementará el cambio solicitado y lo confirmará en el mismo PR.
-
Revisar líneas de código específicas
Deja un comentario directamente en líneas de código en la pestaña "Files" del PR. Dropstone detecta automáticamente el archivo, números de línea y contexto de diff para proporcionar respuestas precisas.
[Comment on specific lines in Files tab] /dropstone add error handling hereAl comentar en líneas específicas, Dropstone recibe:
- El archivo exacto siendo revisado
- Las líneas específicas de código
- El contexto de diff circundante
- Información de números de línea
Esto permite solicitudes más dirigidas sin necesidad de especificar manualmente rutas de archivo o números de línea.