Pular para o conteúdo

Integração com GitHub

Permita que seus agentes gerenciem repositórios, issues e releases através do GitHub. Crie e atualize issues, gerencie releases, acompanhe o desenvolvimento do projeto e otimize seu fluxo de trabalho de desenvolvimento de software com automação alimentada por IA.

Antes de usar a integração do GitHub, assegure-se de ter:

  1. Acesse Integrações CrewAI AMP
  2. Encontre GitHub na seção de Integrações de Autenticação
  3. Clique em Conectar e complete o fluxo OAuth
  4. Conceda as permissões necessárias para gerenciamento de repositório e issues
  5. Copie seu Token Enterprise em Configurações de Integração
Terminal window
uv add crewai-tools
github/create_issue

Descrição: Cria uma issue no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a esta Issue. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a esta Issue.
  • title (string, obrigatório): Título da Issue - Especifique o título da issue a ser criada.
  • body (string, opcional): Corpo da Issue - Especifique o conteúdo do corpo da issue a ser criada.
  • assignees (string, opcional): Responsáveis - Especifique o login dos responsáveis no GitHub como um array de strings para esta issue. (exemplo: ["octocat"]).
github/update_issue

Descrição: Atualiza uma issue no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a esta Issue. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a esta Issue.
  • issue_number (string, obrigatório): Número da Issue - Especifique o número da issue a ser atualizada.
  • title (string, obrigatório): Título da Issue - Especifique o título da issue a ser atualizada.
  • body (string, opcional): Corpo da Issue - Especifique o conteúdo do corpo da issue a ser atualizada.
  • assignees (string, opcional): Responsáveis - Especifique o login dos responsáveis no GitHub como um array de strings para esta issue. (exemplo: ["octocat"]).
  • state (string, opcional): Estado - Especifique o estado atualizado da issue.
    • Opções: open, closed
github/get_issue_by_number

Descrição: Obtém uma issue pelo número no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a esta Issue. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a esta Issue.
  • issue_number (string, obrigatório): Número da Issue - Especifique o número da issue a ser buscada.
github/lock_issue

Descrição: Bloqueia uma issue no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a esta Issue. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a esta Issue.
  • issue_number (string, obrigatório): Número da Issue - Especifique o número da issue a ser bloqueada.
  • lock_reason (string, obrigatório): Motivo do Bloqueio - Especifique um motivo para bloquear a discussão da issue ou pull request.
    • Opções: off-topic, too heated, resolved, spam
github/search_issue

Descrição: Busca por issues no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a esta Issue. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a esta Issue.
  • filter (object, obrigatório): Um filtro em forma normal disjuntiva - OU de grupos E de condições simples.
    {
    "operator": "OR",
    "conditions": [
    {
    "operator": "AND",
    "conditions": [
    {
    "field": "assignee",
    "operator": "$stringExactlyMatches",
    "value": "octocat"
    }
    ]
    }
    ]
    }
    Campos disponíveis: assignee, creator, mentioned, labels
github/create_release

Descrição: Cria um release no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a este Release. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a este Release.
  • tag_name (string, obrigatório): Nome - Especifique o nome da tag do release a ser criada. (exemplo: “v1.0.0”).
  • target_commitish (string, opcional): Destino - Especifique o destino do release. Pode ser o nome de um branch ou o SHA de um commit. Padrão é o branch principal. (exemplo: “master”).
  • body (string, opcional): Descrição - Especifique uma descrição para este release.
  • draft (string, opcional): Rascunho - Especifique se o release criado deve ser um rascunho (não publicado).
    • Opções: true, false
  • prerelease (string, opcional): Pré-lançamento - Especifique se o release criado deve ser um pré-lançamento.
    • Opções: true, false
  • discussion_category_name (string, opcional): Nome da Categoria de Discussão - Se especificado, uma discussão da categoria indicada é criada e vinculada ao release. O valor deve ser uma categoria já existente no repositório.
  • generate_release_notes (string, opcional): Notas de Release - Especifique se o release criado deve criar automaticamente notas de release usando o nome e a descrição fornecidos.
    • Opções: true, false
github/update_release

Descrição: Atualiza um release no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a este Release. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a este Release.
  • id (string, obrigatório): ID do Release - Especifique o ID do release a ser atualizado.
  • tag_name (string, opcional): Nome - Especifique o nome da tag do release a ser atualizado. (exemplo: “v1.0.0”).
  • target_commitish (string, opcional): Destino - Especifique o destino do release. Pode ser o nome de um branch ou o SHA de um commit. Padrão é o branch principal. (exemplo: “master”).
  • body (string, opcional): Descrição - Especifique uma descrição para este release.
  • draft (string, opcional): Rascunho - Especifique se o release criado deve ser um rascunho (não publicado).
    • Opções: true, false
  • prerelease (string, opcional): Pré-lançamento - Especifique se o release criado deve ser um pré-lançamento.
    • Opções: true, false
  • discussion_category_name (string, opcional): Nome da Categoria de Discussão - Se especificado, uma discussão da categoria indicada é criada e vinculada ao release. O valor deve ser uma categoria já existente no repositório.
  • generate_release_notes (string, opcional): Notas de Release - Especifique se o release criado deve criar automaticamente notas de release usando o nome e a descrição fornecidos.
    • Opções: true, false
github/get_release_by_id

Descrição: Obtém um release por ID no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a este Release. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a este Release.
  • id (string, obrigatório): ID do Release - Especifique o ID do release a ser recuperado.
github/get_release_by_tag_name

Descrição: Obtém um release pelo nome da tag no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a este Release. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a este Release.
  • tag_name (string, obrigatório): Nome - Especifique o nome da tag do release a ser recuperado. (exemplo: “v1.0.0”).
github/delete_release

Descrição: Exclui um release no GitHub.

Parâmetros:

  • owner (string, obrigatório): Proprietário - Especifique o nome do proprietário da conta do repositório associado a este Release. (exemplo: “abc”).
  • repo (string, obrigatório): Repositório - Especifique o nome do repositório associado a este Release.
  • id (string, obrigatório): ID do Release - Especifique o ID do release a ser excluído.
from crewai import Agent, Task, Crew
# Create an agent with GitHub capabilities
github_agent = Agent(
role="Repository Manager",
goal="Manage GitHub repositories, issues, and releases efficiently",
backstory="An AI assistant specialized in repository management and issue tracking.",
apps=['github']
)
# Task to create a new issue
create_issue_task = Task(
description="Create a bug report issue for the login functionality in the main repository",
agent=github_agent,
expected_output="Issue created successfully with issue number"
)
# Run the task
crew = Crew(
agents=[github_agent],
tasks=[create_issue_task]
)
crew.kickoff()
issue_manager = Agent(
role="Issue Manager",
goal="Create and manage GitHub issues efficiently",
backstory="An AI assistant that focuses on issue tracking and management.",
apps=['github']
)
# Task to manage issue workflow
issue_workflow = Task(
description="Create a feature request issue and assign it to the development team",
agent=issue_manager,
expected_output="Feature request issue created and assigned successfully"
)
crew = Crew(
agents=[issue_manager],
tasks=[issue_workflow]
)
crew.kickoff()
from crewai import Agent, Task, Crew
release_manager = Agent(
role="Release Manager",
goal="Manage software releases and versioning",
backstory="An experienced release manager who handles version control and release processes.",
apps=['github']
)
# Task to create a new release
release_task = Task(
description="""
Create a new release v2.1.0 for the project with:
- Auto-generated release notes
- Target the main branch
- Include a description of new features and bug fixes
""",
agent=release_manager,
expected_output="Release v2.1.0 created successfully with release notes"
)
crew = Crew(
agents=[release_manager],
tasks=[release_task]
)
crew.kickoff()
from crewai import Agent, Task, Crew
project_coordinator = Agent(
role="Project Coordinator",
goal="Track and coordinate project issues and development progress",
backstory="An AI assistant that helps coordinate development work and track project progress.",
apps=['github']
)
# Complex task involving multiple GitHub operations
coordination_task = Task(
description="""
1. Search for all open issues assigned to the current milestone
2. Identify overdue issues and update their priority labels
3. Create a weekly progress report issue
4. Lock resolved issues that have been inactive for 30 days
""",
agent=project_coordinator,
expected_output="Project coordination completed with progress report and issue management"
)
crew = Crew(
agents=[project_coordinator],
tasks=[coordination_task]
)
crew.kickoff()

Precisa de Ajuda?

Entre em contato com nossa equipe de suporte para auxílio na configuração ou solução de problemas com a integração do GitHub.