| name | github |
| description | GitHub API scripts for repository discovery and inspection. Use this skill when listing your repos, inspecting one repo, or listing issues/PRs. Requires GITHUB_TOKEN. |
| license | Proprietary. LICENSE.txt has complete terms |
| version | 1.0.0 |
| tags | ["github","api","repositories","git"] |
| author | Datalayer |
GitHub Skill
Use this skill to call the GitHub scripts through run_skill_script.
Required Environment Variables
Invocation Contract
- Always call
run_skill_script with:
skill_name: github (lowercase, exactly as returned by list_skills)
script_name: one of list_repos, get_repo, list_issues, list_prs, search_repos
- Pass positional parameters with
args in exact order.
- Pass optional flags with
kwargs using the documented keys below.
- Do not invent keys. Unknown keys are converted into unknown CLI flags and the script exits with code
2.
- For flag-only options, use
args (for this skill all options expect values, so kwargs is fine).
Common Failure Modes
Skill not found: GitHub: use lowercase github as listed by list_skills.
- Exit code
2: one or more kwargs keys do not exist in the script CLI, or a required positional arg is missing. Read the stderr output — it lists all valid parameters. Retry with only those.
Error: GITHUB_TOKEN environment variable is required: the request context does not include GitHub identity/token.
Error: Invalid or expired GITHUB_TOKEN: token exists but is invalid/expired.
Recovery from exit code 2
When a script exits with code 2, the error output includes a "Valid parameters" block listing every accepted flag with types and defaults. Use that list to build a corrected kwargs/args and retry. Common mistakes:
- Using
per_page instead of limit.
- Passing
org or user to list_repos (those belong to search_repos).
- Omitting the required positional
query arg for search_repos (use args: ["<query>"]).
Scripts API
script_name: list_repos
- Purpose: list repositories for the authenticated user.
- Positional
args: none.
- Supported
kwargs:
visibility: all | public | private
sort: updated | created | pushed | full_name
format: table | json
limit: integer
- Not supported:
per_page (this causes a CLI error).
script_name: get_repo
- Purpose: get details of one repository.
- Positional
args:
- Supported
kwargs:
script_name: list_issues
- Purpose: list issues for one repository.
- Positional
args:
- Supported
kwargs:
state: open | closed | all
format: table | json
limit: integer
script_name: list_prs
- Purpose: list pull requests for one repository.
- Positional
args:
- Supported
kwargs:
state: open | closed | all
format: table | json
limit: integer
script_name: search_repos
- Purpose: search repositories by query and optional qualifiers.
- Positional
args:
- Supported
kwargs:
language: string
user: string
org: string
sort: stars | forks | updated | best-match
format: table | json
limit: integer
run_skill_script Examples
{
"skill_name": "github",
"script_name": "list_repos",
"kwargs": {
"sort": "updated",
"limit": 3,
"format": "json"
}
}
{
"skill_name": "github",
"script_name": "list_repos",
"kwargs": {
"visibility": "private",
"sort": "updated",
"limit": 3
}
}
- Search org repos (note:
query is a positional arg via args, org is a kwarg):
{
"skill_name": "github",
"script_name": "search_repos",
"args": ["*"],
"kwargs": {
"org": "datalayer",
"sort": "updated",
"limit": 3
}
}
{
"skill_name": "github",
"script_name": "get_repo",
"args": ["datalayer/agent-runtimes"],
"kwargs": {"format": "json"}
}
Common mistakes (exit code 2)
{"skill_name": "github", "script_name": "list_repos", "kwargs": {"per_page": 3}}
{"skill_name": "github", "script_name": "list_repos", "kwargs": {"limit": 3}}
{"skill_name": "github", "script_name": "search_repos", "kwargs": {"org": "datalayer"}}
{"skill_name": "github", "script_name": "search_repos", "args": ["*"], "kwargs": {"org": "datalayer", "limit": 3}}
Direct CLI Examples
python agent_skills/skills/github/scripts/list_repos.py --visibility private --limit 30
python agent_skills/skills/github/scripts/get_repo.py datalayer/agent-runtimes --format json
python agent_skills/skills/github/scripts/list_issues.py datalayer/agent-runtimes --state open --limit 20
python agent_skills/skills/github/scripts/list_prs.py datalayer/agent-runtimes --state all --limit 20
python agent_skills/skills/github/scripts/search_repos.py "notebook collaboration" --language python --limit 10