pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://docs.github.com/ru/copilot/how-tos/copilot-cli/customize-copilot/use-hooks

head=""/>
Skip to main content

Использование крючков с GitHub Copilot CLI

Расширить GitHub Copilot поведение агента с помощью пользовательских команд shell в ключевых точках при выполнении агента.

Крючки позволяют расширять и настраивать поведение агентов GitHub Copilot, выполняя пользовательские команды shell в ключевых точках во время выполнения агента. Для концептуального обзора крючков — включая детали доступных триггеров крюка — см. О крючках.

Создание крючка в репозитории на GitHub

  1. Создайте новый hooks.json файл с выбранным именем в .github/hooks/ папке вашего репозитория. Конфигурационный файл hooks должен находиться на стандартной ветке вашего репозитория, чтобы использовать Агент кодирования Copilot. Для GitHub Copilot CLI хуки загружаются из текущей рабочей директории.

  2. В вашем текстовом редакторе скопируйте и вставьте следующий шаблон крючка. Уберите все крючки, которые не планируете использовать, из массива hooks .

    JSON
    {
      "version": 1,
      "hooks": {
        "sessionStart": [...],
        "sessionEnd": [...],
        "userPromptSubmitted": [...],
        "preToolUse": [...],
        "postToolUse": [...],
        "errorOccurred": [...]
      }
    }
    
  3. Настройте синтаксис хука под bash клавишами или powershell напрямую ссылайтесь на созданные вами скрипт-файлы.

    • В этом примере запускается скрипт, который выводит дату начала сессии в файл журнала с помощью хука sessionStart :

      JSON
      "sessionStart": [
        {
          "type": "command",
          "bash": "echo \"Session started: $(date)\" >> logs/session.log",
          "powershell": "Add-Content -Path logs/session.log -Value \"Session started: $(Get-Date)\"",
          "cwd": ".",
          "timeoutSec": 10
        }
      ],
      
    • Этот пример вызывает внешний log-prompt скрипт:

      JSON
      "userPromptSubmitted": [
        {
          "type": "command",
          "bash": "./scripts/log-prompt.sh",
          "powershell": "./scripts/log-prompt.ps1",
          "cwd": "scripts",
          "env": {
            "LOG_LEVEL": "INFO"
          }
        }
      ],
      

      Для полной информации о входном JSON из сессий агентов вместе с примерами скриптов см. Конфигурация крючков.

  4. Зафиксируйте файл в репозитории и объедините его в ветвь по умолчанию. Теперь ваши крючки будут работать во время сессий агентов.

Устранение неполадок

Если возникнут проблемы с крючками, используйте следующую таблицу для устранения неполадок.

ПроблемаДействие
Крючки не выполняются
  • Проверьте, что JSON-файл находится в .github/hooks/ каталоге.
  • Проверьте правильный синтаксис JSON (например, jq . hooks.json).
  • Убедитесь version: 1 , что указано в вашем hooks.json деле.
  • Проверьте, что скрипт, который вы вызываете с вашего хука, исполняемый (chmod +x script.sh)
  • Проверьте, есть ли у скрипта правильный shebang (например, #!/bin/bash)
Зацепки заканчиваются
  • По умолчанию время ожидания составляет 30 секунд. При необходимости увеличивайте timeoutSec конфигурацию.
  • Оптимизируйте производительность скриптов, избегая ненужных операций.
Некорректный вывод JSON
  • Убедитесь, что выход находится на одной линии.
  • В Unix используйте jq -c для компакта и валидации JSON-вывода.
  • В Windows ConvertTo-Json -Compress используйте команду в PowerShell, чтобы сделать то же самое.

Отладка

Вы можете отладить хуки следующими методами:

  •         **Включите подробное логирование** скрипта для проверки входных данных и трассировки выполнения скрипта.
    
    Shell
    #!/bin/bash
    set -x  # Enable bash debug mode
    INPUT=$(cat)
    echo "DEBUG: Received input" >&2
    echo "$INPUT" >&2
    # ... rest of script
    
  •         **Тестируйте хуки локально** , проводя тестовый вход в ваш хук для проверки его поведения:
    
    Shell
    # Create test input
    echo '{"timestamp":1704614400000,"cwd":"/tmp","toolName":"bash","toolArgs":"{\"command\":\"ls\"}"}' | ./my-hook.sh
    
    # Check exit code
    echo $?
    
    # Validate output is valid JSON
    ./my-hook.sh | jq .
    

Дополнительные материалы

  •         [AUTOTITLE](/copilot/reference/hooks-configuration)
    
  •         [AUTOTITLE](/copilot/concepts/agents/coding-agent/about-coding-agent)
    
  •         [AUTOTITLE](/copilot/concepts/agents/about-copilot-cli)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment)
    
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy