К основному содержанию
скилл CX Codex

crontap-replace-github-actions-cron — скилл для Claude Code

Переносит запуск GitHub Actions со встроенного cron на диспетчер Crontap с учётом часовых поясов. Помогает избавиться от задержек расписания и дублей.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Crontap/skills --skill crontap-replace-github-actions-cron -a claude-code
Открыть на GitHub

Что делает crontap-replace-github-actions-cron

Скилл переводит запуск пайплайнов GitHub Actions со встроенного блока schedule на вызовы через repository_dispatch. Сами раннеры, логи и шаги остаются внутри репозитория GitHub. Скилл помогает переписать YAML воркфлоу, настроить обработку событий scheduled-run и удалить старый cron-триггер. Это решает проблему дрифта расписания.

Внутри используются функции create_schedule, pause_schedule и resume_schedule. Подключение работает через сервер MCP https://mcp.crontap.com/mcp на любом тарифе сервиса. Для отправки запросов напрямую к REST API нужен тариф Ultra. Заранее подготовьте токен GitHub с ограниченными правами на отправку dispatches в целевой репозиторий.

Какие задачи решает

  • устранить задержки и дрифт стандартного cron в GitHub Actions
  • настроить запуск воркфлоу по локальному часовому поясу IANA
  • перевести триггер расписания на защищённый repository_dispatch
  • приостановить периодический запуск пайплайна на время регламентных работ

Примеры запросов агенту

  • Замени cron в воркфлоу .github/workflows/daily.yml на вызов через Crontap
  • Настрой запуск пайплайна через Crontap MCP каждый будний день в 09:00 Europe/London
  • Поставь на паузу расписание Crontap для нашего репозитория

Как установить crontap-replace-github-actions-cron

1Через Skills CLI (Vercel)

npx skills add Crontap/skills --skill crontap-replace-github-actions-cron -a claude-code

2Вручную: положить файлы

~/.claude/skills/crontap-replace-github-actions-cron/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/crontap-replace-github-actions-cron/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о crontap-replace-github-actions-cron

Как установить crontap-replace-github-actions-cron в Claude Code?

Выполните команду npx skills add Crontap/skills --skill crontap-replace-github-actions-cron -a claude-code. Конфигурация навыка сохранится в ~/.claude/skills/crontap-replace-github-actions-cron/SKILL.md.

Что делает crontap-replace-github-actions-cron?

Скилл помогает заменить внутренний cron GitHub Actions на внешние HTTP-вызовы repository_dispatch из Crontap. Выполнение задач и хранение логов при этом остаются на стороне GitHub.

Какие требования нужны для работы со скиллом?

Нужен fine-grained токен GitHub с правами на dispatch и доступ к Crontap. Подключение через MCP https://mcp.crontap.com/mcp доступно на всех тарифах, а прямой REST API требует подписку Ultra.

Исходный текст

SKILL.md · MIT
---
name: crontap-replace-github-actions-cron
description: >
  Replace a GitHub Actions schedule trigger with a Crontap HTTP dispatch while
  keeping the workflow, runner, and logs on GitHub. Use when a user needs a
  timezone-aware external clock or wants to avoid scheduled-workflow drift.
license: MIT
metadata:
  version: "1.0.0"
  group: patterns-migrations
  order: 9
  title: Replace GitHub Actions cron
  summary: Replace drifting repository schedules with a protected dispatch endpoint and evidence for every triggered run.
  bestFor: Repository dispatch, drift, and timezone-safe triggers
  guide: https://crontap.com/blog/github-actions-cron-drift-problem
  guideTitle: GitHub Actions cron drift
  tools: create_schedule,pause_schedule,resume_schedule
---

# Replace GitHub Actions cron

Crontap sends a repository dispatch request. GitHub still runs the workflow.

## Prerequisites

Before using the required tools, check whether they are available. If any are
missing, stop and offer the user exactly two choices:

1. Connect Crontap MCP at `https://mcp.crontap.com/mcp`. MCP access works on
   every Crontap tier.
2. Configure `$CRONTAP_CLIENT_ID` and `$CRONTAP_API_KEY` for the raw API. Raw
   API access requires Ultra.

Do not silently choose a path or continue until the user selects one.

- Make the workflow safe to dispatch more than once.
- Create a fine-grained GitHub token restricted to the target repository with
  the permission required by the repository dispatch endpoint.
- Store the token in a secure store and plan its expiration and rotation.
- Confirm the desired IANA timezone.

## Change the workflow

Replace the scheduled trigger with manual and repository dispatch triggers:

```yaml
on:
  workflow_dispatch:
  repository_dispatch:
    types: [scheduled-run]
```

Keep `workflow_dispatch` for manual operation. Crontap calls
`repository_dispatch`. Do not leave `on.schedule` enabled after cutover.

## Workflow

1. Commit and deploy the dispatch-capable workflow.
2. Test a repository dispatch with a non-production-safe workflow path.
3. Remove the old `schedule` trigger at the agreed cutover time.
4. Create the Crontap schedule.
5. Verify GitHub returns 204 and one workflow run appears.
6. Pause the Crontap schedule during maintenance or rollback.

## MCP examples

Create the external dispatch:

```json
{
  "tool": "create_schedule",
  "arguments": {
    "url": "https://api.github.com/repos/example-org/example-repo/dispatches",
    "text": "every weekday at 09:00",
    "timezone": "Europe/London",
    "method": "POST",
    "headers": {
      "Authorization": "Bearer <fine-grained-token-from-secure-store>",
      "Accept": "application/vnd.github+json",
      "X-GitHub-Api-Version": "2022-11-28",
      "Content-Type": "application/json"
    },
    "body": {
      "event_type": "scheduled-run"
    },
    "label": "GitHub scheduled run"
  }
}
```

Pause:

```json
{
  "tool": "pause_schedule",
  "arguments": {
    "scheduleId": "<schedule-id>"
  }
}
```

Resume:

```json
{
  "tool": "resume_schedule",
  "arguments": {
    "scheduleId": "<schedule-id>"
  }
}
```

## REST fallback

REST creation requires Ultra API access:

```bash
curl --fail-with-body https://api.crontap.com/v1/schedule \
  -X POST \
  -H "ClientId: $CRONTAP_CLIENT_ID" \
  -H "ApiKey: $CRONTAP_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
    "url": "https://api.github.com/repos/example-org/example-repo/dispatches",
    "interval": "0 9 * * 1-5",
    "timezone": "Europe/London",
    "verb": "POST",
    "headers": {
      "Authorization": "Bearer <fine-grained-token-from-secure-store>",
      "Accept": "application/vnd.github+json",
      "X-GitHub-Api-Version": "2022-11-28",
      "Content-Type": "application/json"
    },
    "data": {"event_type": "scheduled-run"},
    "label": "GitHub scheduled run"
  }'
```

## Verification

- Confirm the deployed workflow no longer contains `on.schedule`.
- Confirm `event_type` matches the workflow's dispatch type exactly.
- Verify one Crontap run corresponds to one GitHub workflow run.
- Confirm a non-expired token is scoped only to the required repository and
  operation.

## Safety and plan limits

- Never use a broad classic token when a restricted fine-grained token works.
- Avoid top-of-hour assumptions when comparing old GitHub timing evidence.
- Make downstream workflow writes idempotent.
- If the Crontap create call hits a cap or cadence floor, present the returned
  four-option ladder and smallest viable option.

## Troubleshooting

- GitHub 401 means the token is invalid or expired.
- GitHub 403 usually means repository access or permissions are insufficient.
- GitHub 404 can intentionally hide a repository the token cannot access.
- GitHub 422 often means the event type or request body is invalid.
- Duplicate runs usually mean both the old schedule trigger and Crontap remain
  active.

## References

- [Crontap Agent Skills catalogue](https://crontap.com/skills)
- [GitHub Actions cron drift](https://crontap.com/blog/github-actions-cron-drift-problem)
- [Crontap vs GitHub Actions cron](https://crontap.com/alternatives/github-actions-cron)
- [GitHub repository dispatch API](https://docs.github.com/en/rest/repos/repos#create-a-repository-dispatch-event)
- [Cron troubleshooting](https://crontap.com/guides/cron-troubleshooting)

© Crontap · MIT · Crontap/skills

Похожие скиллы

Все скиллы по теме «DevOps и инфраструктура» →
wizard Matt Pocock Скилл создаёт интерактивный bash-скрипт для ручных шагов: настройки сервисов, секретов CI и разовых миграций. 553 369установок hyperframes-cli heygen-com Управляет проектами HyperFrames через терминал: собирает таймлайн, проверяет контраст кадров, запускает предпросмотр и рендерит видео локально или в облаке. CX Codex +1 1 300 000установок setup-pre-commit Matt Pocock Скилл настраивает pre-commit для JavaScript-репозитория: Husky запускает форматирование, проверку типов и тесты перед коммитом. 489 289установок using-git-worktrees Jesse Vincent Готовит изолированное рабочее дерево перед доработкой или выполнением плана. Проверяет текущий репозиторий, выбирает нативные средства платформы либо Git. CX Codex 217 153установок finishing-a-development-branch Jesse Vincent Скилл проверяет тесты и помогает выбрать, как завершить работу в ветке: слить её, открыть Pull Request или оставить как есть. CX Codex 214 439установок orca-cli stablyai Скилл даёт агенту доступ к worktree, терминалам, артефактам и встроенному браузеру Orca через CLI. Пригодится, когда работа идёт в окружении Orca. CX Codex +1 354 000установок

Из того же набора12

crontap-quickstart Выбирает подходящий ресурс Crontap, проверяет лимиты тарифа и находит таймзону IANA перед созданием задач. CX Codex +1 883установок crontap-uptime-monitor Скилл настраивает мониторинг доступности HTTP-эндпоинтов через Crontap. Он создаёт проверки, задаёт порог сбоев, ставит мониторы на паузу во время деплоя и читает историю проверок. CX Codex +1 882установок crontap-retries-and-idempotency Настраивает политику повторов в Crontap и помогает сделать эндпоинт идемпотентным, чтобы повторный запуск не создавал дублей. CX Codex +1 881установок crontap-ai-built-apps Настраивает запуск регулярных HTTP-задач и проверку доступности для приложений из Lovable, Bolt, Replit или v0. Пригодится, когда проект должен выполнять фоновую работу после деплоя. CX Codex +1 881установок crontap-recurring-agent-endpoint Ставит HTTP-эндпоинт вашего приложения на внешнее расписание Crontap и следит за завершением через heartbeat. Нужен, когда у агента уже есть свой рантайм, а своего таймера нет. CX Codex +1 880установок crontap-natural-language-schedules Переводит описание расписания в проверенный cron, часовой пояс и ближайшие запуски. Ничего не создаёт без отдельного подтверждения. CX Codex +1 880установок crontap-debug-failed-runs Разбирает неудачные запуски расписаний Crontap по сохранённой конфигурации и истории выполнения. Пригодится, когда HTTP-задача опаздывает или падает. CX Codex +1 879установок crontap-schedule-http-job Позволяет настраивать регулярные вызовы HTTP-эндпоинтов, вебхуков и облачных функций через Crontap с предпросмотром расписания cron или естественного языка. CX Codex +1 879установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой