github · imoonkey — скилл для Claude Code: работа с GitHub
Скилл помогает искать репозитории, читать их данные и управлять issues, комментариями, звёздами и подписками. Перед изменением репозитория учитывайте ограничения отдельных операций записи.
npx skills add imoonkey/openweb --skill github -a claude-codeЧто делает github
Скилл даёт агенту операции для поиска репозиториев, получения сведений о проекте и пользователе, чтения README, issues, pull requests и списка контрибьюторов. С его помощью можно также создавать issues и комментарии, закрывать и переоткрывать issues, ставить звезду, подписываться на обновления и создавать форк.
Способ выполнения зависит от операции. closeIssue, reopenIssue, watchRepo, unwatchRepo и unstarRepo работают через веб-интерфейс GitHub; некоторые другие операции записи обращаются к api.github.com и затронуты несовпадением cookie-сессии и Bearer-токена. Поэтому создание issue или комментария, форк и starRepo могут не сработать при такой авторизации. Для чтения публичных репозиториев авторизация не нужна, но действует лимит 60 запросов в час; чтение с авторизацией через cookies — до 5000 запросов в час.
Хэши persisted query для закрытия и переоткрытия issues заданы в коде и могут перестать соответствовать изменениям веб-интерфейса GitHub. При таком сбое их придётся заново получить через DevTools. Перед запуском операций записи проверьте, какой маршрут использует нужная операция.
Какие задачи решает
- найти репозитории по запросу и языку программирования
- получить описание проекта, README и число звёзд
- просмотреть issues и pull requests репозитория
- закрыть или переоткрыть issue
- подписаться на обновления репозитория или убрать звезду
Примеры запросов агенту
- Найди репозитории на TypeScript по запросу
react language:typescriptи покажи пять результатов. - Получи сведения о репозитории
anthropics/claude-codeи прочитай его README. - Покажи открытые issues в
anthropics/claude-code, затем закрой issue с номером1.
Как установить github
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill github -a claude-code2Вручную: положить файлы
~/.claude/skills/github/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/github/
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill github -a codex2Вручную: положить файлы
.agents/skills/github/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill github -a cursor2Вручную: положить файлы
.cursor/skills/github/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install imoonkey/openweb github2Вручную: положить файлы
.github/skills/github/SKILL.md1Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill github -a gemini-cli2Командой платформы
gemini skills install https://github.com/imoonkey/openweb --path src/sites/githubВручную: положить файлы
.devin/skills/github/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add imoonkey/openweb --skill github -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о github
Как установить github в Claude Code?
Выполните npx skills add imoonkey/openweb --skill github -a claude-code. Файл скилла находится по пути ~/.claude/skills/github/SKILL.md.
Что делает скилл github?
Он добавляет операции для поиска репозиториев и чтения их данных, а также для работы с issues, комментариями, звёздами и подписками.
Какие операции записи могут затронуть проблемы с авторизацией?
starRepo, createIssue, createComment, deleteComment, forkRepo и graphqlQuery обращаются к api.github.com и затронуты несовпадением cookie-сессии и Bearer-токена.
Исходный текст
SKILL.md · MIT
# GitHub
## Overview
GitHub REST + GraphQL API — code hosting platform (developer tools archetype).
## Workflows
### Explore a repository
1. `searchRepos(q)` → pick result → `owner`, `repo` from `full_name`
2. `getRepo(owner, repo)` → description, stars, language
3. `getRepoReadme(owner, repo)` → base64-encoded README content
4. `listIssues(owner, repo)` → open issues
5. `listPullRequests(owner, repo)` → open PRs
### Investigate a user's work
1. `getUserProfile(username)` → bio, public_repos, followers
2. `searchRepos(q: "user:username")` → their repositories
### File an issue
1. `searchRepos(q)` → `owner`, `repo` from `full_name` (or use known repo)
2. `createIssue(owner, repo, title, body)` → `number`, `html_url`
### Manage issues
1. `listIssues(owner, repo)` → `issue_number`, `title`, `state`
2. `closeIssue(owner, repo, issue_number ← listIssues)` → `state: "closed"`
3. `reopenIssue(owner, repo, issue_number ← listIssues)` → `state: "open"`
4. `createComment(owner, repo, issue_number ← listIssues, body)` → `comment_id`, `html_url`
5. `deleteComment(owner, repo, comment_id ← createComment)` → 204
### Star / watch a repo
1. `searchRepos(q)` → `owner`, `repo` from `full_name`
2. `starRepo(owner, repo)` → 204
3. `unstarRepo(owner, repo)` → 204
4. `watchRepo(owner, repo)` → `subscribed`
5. `unwatchRepo(owner, repo)` → 204
## Operations
| Operation | Intent | Key Input | Key Output | Notes |
|-----------|--------|-----------|------------|-------|
| searchRepos | find repositories | q | total_count, items[].full_name, stargazers_count, language | entry point, paginated |
| getRepo | repository details | owner, repo | full_name, description, stargazers_count, forks_count, language | entry point |
| getUserProfile | user profile | username | login, name, bio, public_repos, followers, following | entry point |
| getRepoReadme | repository README | owner ← getRepo, repo ← getRepo | name, content (base64), encoding | |
| listIssues | repository issues | owner ← getRepo, repo ← getRepo | number, title, state, user.login, labels | paginated |
| listPullRequests | repository PRs | owner ← getRepo, repo ← getRepo | number, title, state, user.login, head.ref, base.ref | paginated |
| listContributors | repository contributors | owner ← getRepo, repo ← getRepo | login, contributions | paginated |
| createIssue | create an issue | owner ← getRepo, repo ← getRepo, title, body | number, html_url | write, CAUTION |
| closeIssue | close an issue | owner, repo, issue_number ← listIssues | data (GraphQL response) | write, CAUTION. Routes through github.com `/_graphql` |
| reopenIssue | reopen a closed issue | owner, repo, issue_number ← listIssues | data (GraphQL response) | write, CAUTION — reverse of closeIssue. Routes through github.com `/_graphql` |
| createComment | comment on issue/PR | owner, repo, issue_number ← listIssues, body | id, body, html_url | write, CAUTION |
| deleteComment | delete a comment | owner, repo, comment_id ← createComment | — (204) | write, CAUTION — reverse of createComment |
| forkRepo | fork a repository | owner ← getRepo, repo ← getRepo | full_name | write, CAUTION |
| starRepo | star a repository | owner ← getRepo, repo ← getRepo | — (204) | write, SAFE. (api.github.com — currently rejected by cookie_session, see DOC.md) |
| unstarRepo | unstar a repository | owner ← getRepo, repo ← getRepo | count (watcher count) | write, CAUTION — reverse of starRepo. Routes through github.com rails endpoint |
| watchRepo | watch a repository | owner ← getRepo, repo ← getRepo | count (watcher count) | write, CAUTION. Routes through github.com `/notifications/subscribe` |
| unwatchRepo | unwatch a repository | owner ← getRepo, repo ← getRepo | count (watcher count) | write, CAUTION — reverse of watchRepo. Routes through github.com `/notifications/subscribe` |
| graphqlQuery | execute GraphQL | query, variables | data | write (unrestricted mutations possible) |
## Quick Start
```bash
# Search repositories
openweb github exec searchRepos '{"q":"react language:typescript","per_page":5}'
# Get repository details
openweb github exec getRepo '{"owner":"anthropics","repo":"claude-code"}'
# List issues
openweb github exec listIssues '{"owner":"anthropics","repo":"claude-code","per_page":5}'
# Get user profile
openweb github exec getUserProfile '{"username":"anthropics"}'
# Close an issue
openweb github exec closeIssue '{"owner":"imoonkey","repo":"openweb-test","issue_number":1,"state":"closed"}'
# Comment on an issue
openweb github exec createComment '{"owner":"imoonkey","repo":"openweb-test","issue_number":1,"body":"Looks good!"}'
# Star / unstar a repo
openweb github exec starRepo '{"owner":"imoonkey","repo":"openweb-test"}'
openweb github exec unstarRepo '{"owner":"imoonkey","repo":"openweb-test"}'
# Watch / unwatch a repo
openweb github exec watchRepo '{"owner":"imoonkey","repo":"openweb-test"}'
openweb github exec unwatchRepo '{"owner":"imoonkey","repo":"openweb-test"}'
```
## Known Limitations
- **`closeIssue`, `reopenIssue`, `watchRepo`, `unwatchRepo`, `unstarRepo` route through github.com web UI** (transport: page) instead of api.github.com REST. They use the user's `_gh_sess` browser cookie + page-scraped `X-Fetch-Nonce` + per-form `authenticity_token`. Verify: 5/5 PASS (2026-04-19). The persisted-query hashes for close/reopen are hardcoded and **will drift** with GitHub web releases — re-capture from a real click via DevTools `_graphql` request when they break.
- **`starRepo`, `createIssue`, `createComment`, `deleteComment`, `forkRepo`, `graphqlQuery` still target api.github.com** and remain affected by the cookie-session/Bearer mismatch. Same web-rewrite pattern applies (see `adapters/github-web.ts`).
- Read ops on public repos work without auth (rate-limited to 60 req/h); authenticated read ops via cookies work too (5000 req/h).
© imoonkey · MIT · imoonkey/openweb
Похожие скиллы
Все скиллы по теме «Git и GitHub» →Сначала — github от других авторов.