Перейти к основному содержимому

Руководство: Автоматические обновления

Обзор

GitHub Action oh-my-agent (first-fluke/oma-update-action@v1) автоматически обновляет навыки агентов в вашем проекте, запуская oma update в CI. Поддерживает два режима: создание PR для ревью или прямой коммит в ветку.


Быстрая настройка

Добавьте .github/workflows/update-oh-my-agent.yml:

name: Update oh-my-agent

on:
schedule:
- cron: '0 9 * * 1' # Каждый понедельник в 9:00 UTC
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: first-fluke/oma-update-action@v1

Минимальная конфигурация. Создаёт PR при наличии обновлений.


Все входы Action

ВходТипПо умолчаниюОписание
modestring"pr""pr" — PR, "commit" — прямой коммит
base-branchstring"main"Целевая ветка
forcestring"false""true" — перезаписать конфиги (oma-config.yaml, mcp.json, stack/)
pr-titlestring"chore(deps): update oh-my-agent skills"Заголовок PR
pr-labelsstring"dependencies,automated"Лейблы PR через запятую
commit-messagestring"chore(deps): update oh-my-agent skills"Сообщение коммита
tokenstring${{ github.token }}GitHub-токен. PAT нужен для запуска downstream workflows

Все выходы Action

ВыходТипОписание
updatedstring"true" если обнаружены изменения
versionstringВерсия после обновления
pr-numberstringНомер PR (только в режиме pr)
pr-urlstringURL PR (только в режиме pr)

Примеры

Пример 1: PR по умолчанию

- uses: first-fluke/oma-update-action@v1
id: update
- name: Summary
if: steps.update.outputs.updated == 'true'
run: echo "Updated to ${{ steps.update.outputs.version }}, PR: ${{ steps.update.outputs.pr-url }}"

Пример 2: Прямой коммит с PAT

- uses: actions/checkout@v4
with:
token: ${{ secrets.OH_MY_AGENT_PAT }}
- uses: first-fluke/oma-update-action@v1
with:
mode: commit
token: ${{ secrets.OH_MY_AGENT_PAT }}
base-branch: develop

Пример 3: Уведомление в Slack

- uses: first-fluke/oma-update-action@v1
id: update
- name: Notify Slack
if: steps.update.outputs.updated == 'true'
uses: slackapi/slack-github-action@v2
with:
webhook: ${{ secrets.SLACK_WEBHOOK }}
webhook-type: incoming-webhook
payload: '{"text": "oh-my-agent updated to v${{ steps.update.outputs.version }}"}'

Пример 4: Принудительный режим

- uses: first-fluke/oma-update-action@v1
with:
force: 'true'
pr-title: "chore(deps): force-update oh-my-agent skills (reset configs)"
pr-labels: "dependencies,automated,force-update"

Внимание: Force-режим перезаписывает oma-config.yaml, mcp.json и stack/.


Как это работает

Шаг 1: Установка Bun

- uses: oven-sh/setup-bun@v2

Шаг 2: Установка oh-my-agent

bun install -g oh-my-agent

Шаг 3: Запуск oma update

oma update --ci # Неинтерактивный режим

Внутренне: проверка последней версии через prompt-manifest.json, сравнение с локальной, скачивание тарбола, сохранение конфигов (если не --force), копирование новых файлов, восстановление конфигов, обновление вендорных адаптаций и символических ссылок.

Шаг 4: Проверка изменений

Если .agents/ или .claude/ изменились — устанавливает updated=true и version.

Далее в зависимости от mode: pr — создание PR через peter-evans/create-pull-request@v8, commit — прямой коммит от github-actions[bot].