[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7166ER4002FZX9JCAYEXMCT":3,"skill-same:01M7166ER4002FZX9JCAYEXMCT":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":14,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M7166ER4002FZX9JCAYEXMCT","github-automation",null,"Automate GitHub repositories, issues, pull requests, branches, CI\u002FCD, and permissions via Rube MCP (Composio). Manage code workflows, review PRs, search code, and handle deployments programmatically.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fgithub-automation\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"github","automation","github automation","ci","2026","review prs","code workflows","unknown","CI\u002FCD","branches","composio","community","MCP","search","issues","permissions","code","pull requests","workflows","review","2026-11-10 10:12:30",false,"---\nname: github-automation\ndescription: \"Automate GitHub repositories, issues, pull requests, branches, CI\u002FCD, and permissions via Rube MCP (Composio). Manage code workflows, review PRs, search code, and handle deployments programmatically.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# GitHub Automation via Rube MCP\n\nAutomate GitHub repository management, issue tracking, pull request workflows, branch operations, and CI\u002FCD through Composio's GitHub toolkit.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active GitHub connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `github`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `github`\n3. If connection is not ACTIVE, follow the returned auth link to complete GitHub OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create and Manage Issues\n\n**When to use**: User wants to create, list, or manage GitHub issues\n\n**Tool sequence**:\n1. `GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER` - Find target repo if unknown [Prerequisite]\n2. `GITHUB_LIST_REPOSITORY_ISSUES` - List existing issues (includes PRs) [Required]\n3. `GITHUB_CREATE_AN_ISSUE` - Create a new issue [Required]\n4. `GITHUB_CREATE_AN_ISSUE_COMMENT` - Add comments to an issue [Optional]\n5. `GITHUB_SEARCH_ISSUES_AND_PULL_REQUESTS` - Search across repos by keyword [Optional]\n\n**Key parameters**:\n- `owner`: Repository owner (username or org), case-insensitive\n- `repo`: Repository name without .git extension\n- `title`: Issue title (required for creation)\n- `body`: Issue description (supports Markdown)\n- `labels`: Array of label names\n- `assignees`: Array of GitHub usernames\n- `state`: 'open', 'closed', or 'all' for filtering\n\n**Pitfalls**:\n- `GITHUB_LIST_REPOSITORY_ISSUES` returns both issues AND pull requests; check `pull_request` field to distinguish\n- Only users with push access can set assignees, labels, and milestones; they are silently dropped otherwise\n- Pagination: `per_page` max 100; iterate pages until empty\n\n### 2. Manage Pull Requests\n\n**When to use**: User wants to create, review, or merge pull requests\n\n**Tool sequence**:\n1. `GITHUB_FIND_PULL_REQUESTS` - Search and filter PRs [Required]\n2. `GITHUB_GET_A_PULL_REQUEST` - Get detailed PR info including mergeable status [Required]\n3. `GITHUB_LIST_PULL_REQUESTS_FILES` - Review changed files [Optional]\n4. `GITHUB_CREATE_A_PULL_REQUEST` - Create a new PR [Required]\n5. `GITHUB_CREATE_AN_ISSUE_COMMENT` - Post review comments [Optional]\n6. `GITHUB_LIST_CHECK_RUNS_FOR_A_REF` - Verify CI status before merge [Optional]\n7. `GITHUB_MERGE_A_PULL_REQUEST` - Merge after explicit user approval [Required]\n\n**Key parameters**:\n- `head`: Source branch with changes (must exist; for cross-repo: 'username:branch')\n- `base`: Target branch to merge into (e.g., 'main')\n- `title`: PR title (required unless `issue` number provided)\n- `merge_method`: 'merge', 'squash', or 'rebase'\n- `state`: 'open', 'closed', or 'all'\n\n**Pitfalls**:\n- `GITHUB_CREATE_A_PULL_REQUEST` fails with 422 if base\u002Fhead are invalid, identical, or already merged\n- `GITHUB_MERGE_A_PULL_REQUEST` can be rejected if PR is draft, closed, or branch protection applies\n- Always verify mergeable status with `GITHUB_GET_A_PULL_REQUEST` immediately before merging\n- Require explicit user confirmation before calling MERGE\n\n### 3. Manage Repositories and Branches\n\n**When to use**: User wants to create repos, manage branches, or update repo settings\n\n**Tool sequence**:\n1. `GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER` - List user's repos [Required]\n2. `GITHUB_GET_A_REPOSITORY` - Get detailed repo info [Optional]\n3. `GITHUB_CREATE_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER` - Create personal repo [Required]\n4. `GITHUB_CREATE_AN_ORGANIZATION_REPOSITORY` - Create org repo [Alternative]\n5. `GITHUB_LIST_BRANCHES` - List branches [Required]\n6. `GITHUB_CREATE_A_REFERENCE` - Create new branch from SHA [Required]\n7. `GITHUB_UPDATE_A_REPOSITORY` - Update repo settings [Optional]\n\n**Key parameters**:\n- `name`: Repository name\n- `private`: Boolean for visibility\n- `ref`: Full reference path (e.g., 'refs\u002Fheads\u002Fnew-branch')\n- `sha`: Commit SHA to point the new reference to\n- `default_branch`: Default branch name\n\n**Pitfalls**:\n- `GITHUB_CREATE_A_REFERENCE` only creates NEW references; use `GITHUB_UPDATE_A_REFERENCE` for existing ones\n- `ref` must start with 'refs\u002F' and contain at least two slashes\n- `GITHUB_LIST_BRANCHES` paginates via `page`\u002F`per_page`; iterate until empty page\n- `GITHUB_DELETE_A_REPOSITORY` is permanent and irreversible; requires admin privileges\n\n### 4. Search Code and Commits\n\n**When to use**: User wants to find code, files, or commits across repositories\n\n**Tool sequence**:\n1. `GITHUB_SEARCH_CODE` - Search file contents and paths [Required]\n2. `GITHUB_SEARCH_CODE_ALL_PAGES` - Multi-page code search [Alternative]\n3. `GITHUB_SEARCH_COMMITS_BY_AUTHOR` - Search commits by author\u002Fdate\u002Forg [Required]\n4. `GITHUB_LIST_COMMITS` - List commits for a specific repo [Alternative]\n5. `GITHUB_GET_A_COMMIT` - Get detailed commit info [Optional]\n6. `GITHUB_GET_REPOSITORY_CONTENT` - Get file content [Optional]\n\n**Key parameters**:\n- `q`: Search query with qualifiers (`language:python`, `repo:owner\u002Frepo`, `extension:js`)\n- `owner`\u002F`repo`: For repo-specific commit listing\n- `author`: Filter by commit author\n- `since`\u002F`until`: ISO 8601 date range for commits\n\n**Pitfalls**:\n- Code search only indexes files under 384KB on default branch\n- Maximum 1000 results returned from code search\n- `GITHUB_SEARCH_COMMITS_BY_AUTHOR` requires keywords in addition to qualifiers; qualifier-only queries are not allowed\n- `GITHUB_LIST_COMMITS` returns 409 on empty repos\n\n### 5. Manage CI\u002FCD and Deployments\n\n**When to use**: User wants to view workflows, check CI status, or manage deployments\n\n**Tool sequence**:\n1. `GITHUB_LIST_REPOSITORY_WORKFLOWS` - List GitHub Actions workflows [Required]\n2. `GITHUB_GET_A_WORKFLOW` - Get workflow details by ID or filename [Optional]\n3. `GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT` - Manually trigger a workflow [Required]\n4. `GITHUB_LIST_CHECK_RUNS_FOR_A_REF` - Check CI status for a commit\u002Fbranch [Required]\n5. `GITHUB_LIST_DEPLOYMENTS` - List deployments [Optional]\n6. `GITHUB_GET_A_DEPLOYMENT_STATUS` - Get deployment status [Optional]\n\n**Key parameters**:\n- `workflow_id`: Numeric ID or filename (e.g., 'ci.yml')\n- `ref`: Git reference (branch\u002Ftag) for workflow dispatch\n- `inputs`: JSON string of workflow inputs matching `on.workflow_dispatch.inputs`\n- `environment`: Filter deployments by environment name\n\n**Pitfalls**:\n- `GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT` requires the workflow to have `workflow_dispatch` trigger configured\n- Full path `.github\u002Fworkflows\u002Fmain.yml` is auto-stripped to just `main.yml`\n- Inputs max 10 key-value pairs; must match workflow's `on.workflow_dispatch.inputs` definitions\n\n### 6. Manage Users and Permissions\n\n**When to use**: User wants to check collaborators, permissions, or branch protection\n\n**Tool sequence**:\n1. `GITHUB_LIST_REPOSITORY_COLLABORATORS` - List repo collaborators [Required]\n2. `GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER` - Check specific user's access [Optional]\n3. `GITHUB_GET_BRANCH_PROTECTION` - Inspect branch protection rules [Required]\n4. `GITHUB_UPDATE_BRANCH_PROTECTION` - Update protection settings [Optional]\n5. `GITHUB_ADD_A_REPOSITORY_COLLABORATOR` - Add\u002Fupdate collaborator [Optional]\n\n**Key parameters**:\n- `affiliation`: 'outside', 'direct', or 'all' for collaborator filtering\n- `permission`: Filter by 'pull', 'triage', 'push', 'maintain', 'admin'\n- `branch`: Branch name for protection rules\n- `enforce_admins`: Whether protection applies to admins\n\n**Pitfalls**:\n- `GITHUB_GET_BRANCH_PROTECTION` returns 404 for unprotected branches; treat as no protection rules\n- Determine push ability from `permissions.push` or `role_name`, not display labels\n- `GITHUB_LIST_REPOSITORY_COLLABORATORS` paginates; iterate all pages\n- `GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER` may be inconclusive for non-collaborators\n\n## Common Patterns\n\n### ID Resolution\n- **Repo name -> owner\u002Frepo**: `GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER`\n- **PR number -> PR details**: `GITHUB_FIND_PULL_REQUESTS` then `GITHUB_GET_A_PULL_REQUEST`\n- **Branch name -> SHA**: `GITHUB_GET_A_BRANCH`\n- **Workflow name -> ID**: `GITHUB_LIST_REPOSITORY_WORKFLOWS`\n\n### Pagination\nAll list endpoints use page-based pagination:\n- `page`: Page number (starts at 1)\n- `per_page`: Results per page (max 100)\n- Iterate until response returns fewer results than `per_page`\n\n### Safety\n- Always verify PR mergeable status before merge\n- Require explicit user confirmation for destructive operations (merge, delete)\n- Check CI status with `GITHUB_LIST_CHECK_RUNS_FOR_A_REF` before merging\n\n## Known Pitfalls\n\n- **Issues vs PRs**: `GITHUB_LIST_REPOSITORY_ISSUES` returns both; check `pull_request` field\n- **Pagination limits**: `per_page` max 100; always iterate pages until empty\n- **Branch creation**: `GITHUB_CREATE_A_REFERENCE` fails with 422 if reference already exists\n- **Merge guards**: Merge can fail due to branch protection, failing checks, or draft status\n- **Code search limits**: Only files \u003C384KB on default branch; max 1000 results\n- **Commit search**: Requires search text keywords alongside qualifiers\n- **Destructive actions**: Repo deletion is irreversible; merge cannot be undone\n- **Silent permission drops**: Labels, assignees, milestones silently dropped without push access\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List repos | `GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER` | `type`, `sort`, `per_page` |\n| Get repo | `GITHUB_GET_A_REPOSITORY` | `owner`, `repo` |\n| Create issue | `GITHUB_CREATE_AN_ISSUE` | `owner`, `repo`, `title`, `body` |\n| List issues | `GITHUB_LIST_REPOSITORY_ISSUES` | `owner`, `repo`, `state` |\n| Find PRs | `GITHUB_FIND_PULL_REQUESTS` | `repo`, `state`, `author` |\n| Create PR | `GITHUB_CREATE_A_PULL_REQUEST` | `owner`, `repo`, `head`, `base`, `title` |\n| Merge PR | `GITHUB_MERGE_A_PULL_REQUEST` | `owner`, `repo`, `pull_number`, `merge_method` |\n| List branches | `GITHUB_LIST_BRANCHES` | `owner`, `repo` |\n| Create branch | `GITHUB_CREATE_A_REFERENCE` | `owner`, `repo`, `ref`, `sha` |\n| Search code | `GITHUB_SEARCH_CODE` | `q` |\n| List commits | `GITHUB_LIST_COMMITS` | `owner`, `repo`, `author`, `since` |\n| Search commits | `GITHUB_SEARCH_COMMITS_BY_AUTHOR` | `q` |\n| List workflows | `GITHUB_LIST_REPOSITORY_WORKFLOWS` | `owner`, `repo` |\n| Trigger workflow | `GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT` | `owner`, `repo`, `workflow_id`, `ref` |\n| Check CI | `GITHUB_LIST_CHECK_RUNS_FOR_A_REF` | `owner`, `repo`, ref |\n| List collaborators | `GITHUB_LIST_REPOSITORY_COLLABORATORS` | `owner`, `repo` |\n| Branch protection | `GITHUB_GET_BRANCH_PROTECTION` | `owner`, `repo`, `branch` |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# GitHub Automation via Rube MCP\n\nAutomate GitHub repository management, issue tracking, pull request workflows, branch operations, and CI\u002FCD through Composio's GitHub toolkit.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active GitHub connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `github`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `github`\n3. If connection is not ACTIVE, follow the returned auth link to complete GitHub OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create and Manage Issues\n\n**When to use**: User wants to create, list, or manage GitHub issues\n\n**Tool sequence**:\n1. `GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER` - Find target repo if unknown [Prerequisite]\n2. `GITHUB_LIST_REPOSITORY_ISSUES` - List existing issues (includes PRs) [Required]\n3. `GITHUB_CREATE_AN_ISSUE` - Create a new issue [Required]\n4. `GITHUB_CREATE_AN_ISSUE_COMMENT` - Add comments to an issue [Optional]\n5. `GITHUB_SEARCH_ISSUES_AND_PULL_REQUESTS` - Search across repos by keyword [Optional]\n\n**Key parameters**:\n- `owner`: Repository owner (username or org), case-insensitive\n- `repo`: Repository name without .git extension\n- `title`: Issue title (required for creation)\n- `body`: Issue description (supports Markdown)\n- `labels`: Array of label names\n- `assignees`: Array of GitHub usernames\n- `state`: 'open', 'closed', or 'all' for filtering\n\n**Pitfalls**:\n- `GITHUB_LIST_REPOSITORY_ISSUES` returns both issues AND pull requests; check `pull_request` field to distinguish\n- Only users with push access can set assignees, labels, and milestones; they are silently dropped otherwise\n- Pagination: `per_page` max 100; iterate pages until empty\n\n### 2. Manage Pull Requests\n\n**When to use**: User wants to create, review, or merge pull requests\n\n**Tool sequence**:\n1. `GITHUB_FIND_PULL_REQUESTS` - Search and filter PRs [Required]\n2. `GITHUB_GET_A_PULL_REQUEST` - Get detailed PR info including mergeable status [Required]\n3. `GITHUB_LIST_PULL_REQUESTS_FILES` - Review changed files [Optional]\n4. `GITHUB_CREATE_A_PULL_REQUEST` - Create a new PR [Required]\n5. `GITHUB_CREATE_AN_ISSUE_COMMENT` - Post review comments [Optional]\n6. `GITHUB_LIST_CHECK_RUNS_FOR_A_REF` - Verify CI status before merge [Optional]\n7. `GITHUB_MERGE_A_PULL_REQUEST` - Merge after explicit user approval [Required]\n\n**Key parameters**:\n- `head`: Source branch with changes (must exist; for cross-repo: 'username:branch')\n- `base`: Target branch to merge into (e.g., 'main')\n- `title`: PR title (required unless `issue` number provided)\n- `merge_method`: 'merge', 'squash', or 'rebase'\n- `state`: 'open', 'closed', or 'all'\n\n**Pitfalls**:\n- `GITHUB_CREATE_A_PULL_REQUEST` fails with 422 if base\u002Fhead are invalid, identical, or already merged\n- `GITHUB_MERGE_A_PULL_REQUEST` can be rejected if PR is draft, closed, or branch protection applies\n- Always verify mergeable status with `GITHUB_GET_A_PULL_REQUEST` immediately before merging\n- Require explicit user confirmation before calling MERGE\n\n### 3. Manage Repositories and Branches\n\n**When to use**: User wants to create repos, manage branches, or update repo settings\n\n**Tool sequence**:\n1. `GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER` - List user's repos [Required]\n2. `GITHUB_GET_A_REPOSITORY` - Get detailed repo info [Optional]\n3. `GITHUB_CREATE_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER` - Create personal repo [Required]\n4. `GITHUB_CREATE_AN_ORGANIZATION_REPOSITORY` - Create org repo [Alternative]\n5. `GITHUB_LIST_BRANCHES` - List branches [Required]\n6. `GITHUB_CREATE_A_REFERENCE` - Create new branch from SHA [Required]\n7. `GITHUB_UPDATE_A_REPOSITORY` - Update repo settings [Optional]\n\n**Key parameters**:\n- `name`: Repository name\n- `private`: Boolean for visibility\n- `ref`: Full reference path (e.g., 'refs\u002Fheads\u002Fnew-branch')\n- `sha`: Commit SHA to point the new reference to\n- `default_branch`: Default branch name\n\n**Pitfalls**:\n- `GITHUB_CREATE_A_REFERENCE` only creates NEW references; use `GITHUB_UPDATE_A_REFERENCE` for existing ones\n- `ref` must start with 'refs\u002F' and contain at least two slashes\n- `GITHUB_LIST_BRANCHES` paginates via `page`\u002F`per_page`; iterate until empty page\n- `GITHUB_DELETE_A_REPOSITORY` is permanent and irreversible; requires admin privileges\n\n### 4. Search Code and Commits\n\n**When to use**: User wants to find code, files, or commits across repositories\n\n**Tool sequence**:\n1. `GITHUB_SEARCH_CODE` - Search file contents and paths [Required]\n2. `GITHUB_SEARCH_CODE_ALL_PAGES` - Multi-page code search [Alternative]\n3. `GITHUB_SEARCH_COMMITS_BY_AUTHOR` - Search commits by author\u002Fdate\u002Forg [Required]\n4. `GITHUB_LIST_COMMITS` - List commits for a specific repo [Alternative]\n5. `GITHUB_GET_A_COMMIT` - Get detailed commit info [Optional]\n6. `GITHUB_GET_REPOSITORY_CONTENT` - Get file content [Optional]\n\n**Key parameters**:\n- `q`: Search query with qualifiers (`language:python`, `repo:owner\u002Frepo`, `extension:js`)\n- `owner`\u002F`repo`: For repo-specific commit listing\n- `author`: Filter by commit author\n- `since`\u002F`until`: ISO 8601 date range for commits\n\n**Pitfalls**:\n- Code search only indexes files under 384KB on default branch\n- Maximum 1000 results returned from code search\n- `GITHUB_SEARCH_COMMITS_BY_AUTHOR` requires keywords in addition to qualifiers; qualifier-only queries are not allowed\n- `GITHUB_LIST_COMMITS` returns 409 on empty repos\n\n### 5. Manage CI\u002FCD and Deployments\n\n**When to use**: User wants to view workflows, check CI status, or manage deployments\n\n**Tool sequence**:\n1. `GITHUB_LIST_REPOSITORY_WORKFLOWS` - List GitHub Actions workflows [Required]\n2. `GITHUB_GET_A_WORKFLOW` - Get workflow details by ID or filename [Optional]\n3. `GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT` - Manually trigger a workflow [Required]\n4. `GITHUB_LIST_CHECK_RUNS_FOR_A_REF` - Check CI status for a commit\u002Fbranch [Required]\n5. `GITHUB_LIST_DEPLOYMENTS` - List deployments [Optional]\n6. `GITHUB_GET_A_DEPLOYMENT_STATUS` - Get deployment status [Optional]\n\n**Key parameters**:\n- `workflow_id`: Numeric ID or filename (e.g., 'ci.yml')\n- `ref`: Git reference (branch\u002Ftag) for workflow dispatch\n- `inputs`: JSON string of workflow inputs matching `on.workflow_dispatch.inputs`\n- `environment`: Filter deployments by environment name\n\n**Pitfalls**:\n- `GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT` requires the workflow to have `workflow_dispatch` trigger configured\n- Full path `.github\u002Fworkflows\u002Fmain.yml` is auto-stripped to just `main.yml`\n- Inputs max 10 key-value pairs; must match workflow's `on.workflow_dispatch.inputs` definitions\n\n### 6. Manage Users and Permissions\n\n**When to use**: User wants to check collaborators, permissions, or branch protection\n\n**Tool sequence**:\n1. `GITHUB_LIST_REPOSITORY_COLLABORATORS` - List repo collaborators [Required]\n2. `GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER` - Check specific user's access [Optional]\n3. `GITHUB_GET_BRANCH_PROTECTION` - Inspect branch protection rules [Required]\n4. `GITHUB_UPDATE_BRANCH_PROTECTION` - Update protection settings [Optional]\n5. `GITHUB_ADD_A_REPOSITORY_COLLABORATOR` - Add\u002Fupdate collaborator [Optional]\n\n**Key parameters**:\n- `affiliation`: 'outside', 'direct', or 'all' for collaborator filtering\n- `permission`: Filter by 'pull', 'triage', 'push', 'maintain', 'admin'\n- `branch`: Branch name for protection rules\n- `enforce_admins`: Whether protection applies to admins\n\n**Pitfalls**:\n- `GITHUB_GET_BRANCH_PROTECTION` returns 404 for unprotected branches; treat as no protection rules\n- Determine push ability from `permissions.push` or `role_name`, not display labels\n- `GITHUB_LIST_REPOSITORY_COLLABORATORS` paginates; iterate all pages\n- `GITHUB_GET_REPOSITORY_PERMISSIONS_FOR_A_USER` may be inconclusive for non-collaborators\n\n## Common Patterns\n\n### ID Resolution\n- **Repo name -> owner\u002Frepo**: `GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER`\n- **PR number -> PR details**: `GITHUB_FIND_PULL_REQUESTS` then `GITHUB_GET_A_PULL_REQUEST`\n- **Branch name -> SHA**: `GITHUB_GET_A_BRANCH`\n- **Workflow name -> ID**: `GITHUB_LIST_REPOSITORY_WORKFLOWS`\n\n### Pagination\nAll list endpoints use page-based pagination:\n- `page`: Page number (starts at 1)\n- `per_page`: Results per page (max 100)\n- Iterate until response returns fewer results than `per_page`\n\n### Safety\n- Always verify PR mergeable status before merge\n- Require explicit user confirmation for destructive operations (merge, delete)\n- Check CI status with `GITHUB_LIST_CHECK_RUNS_FOR_A_REF` before merging\n\n## Known Pitfalls\n\n- **Issues vs PRs**: `GITHUB_LIST_REPOSITORY_ISSUES` returns both; check `pull_request` field\n- **Pagination limits**: `per_page` max 100; always iterate pages until empty\n- **Branch creation**: `GITHUB_CREATE_A_REFERENCE` fails with 422 if reference already exists\n- **Merge guards**: Merge can fail due to branch protection, failing checks, or draft status\n- **Code search limits**: Only files \u003C384KB on default branch; max 1000 results\n- **Commit search**: Requires search text keywords alongside qualifiers\n- **Destructive actions**: Repo deletion is irreversible; merge cannot be undone\n- **Silent permission drops**: Labels, assignees, milestones silently dropped without push access\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List repos | `GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER` | `type`, `sort`, `per_page` |\n| Get repo | `GITHUB_GET_A_REPOSITORY` | `owner`, `repo` |\n| Create issue | `GITHUB_CREATE_AN_ISSUE` | `owner`, `repo`, `title`, `body` |\n| List issues | `GITHUB_LIST_REPOSITORY_ISSUES` | `owner`, `repo`, `state` |\n| Find PRs | `GITHUB_FIND_PULL_REQUESTS` | `repo`, `state`, `author` |\n| Create PR | `GITHUB_CREATE_A_PULL_REQUEST` | `owner`, `repo`, `head`, `base`, `title` |\n| Merge PR | `GITHUB_MERGE_A_PULL_REQUEST` | `owner`, `repo`, `pull_number`, `merge_method` |\n| List branches | `GITHUB_LIST_BRANCHES` | `owner`, `repo` |\n| Create branch | `GITHUB_CREATE_A_REFERENCE` | `owner`, `repo`, `ref`, `sha` |\n| Search code | `GITHUB_SEARCH_CODE` | `q` |\n| List commits | `GITHUB_LIST_COMMITS` | `owner`, `repo`, `author`, `since` |\n| Search commits | `GITHUB_SEARCH_COMMITS_BY_AUTHOR` | `q` |\n| List workflows | `GITHUB_LIST_REPOSITORY_WORKFLOWS` | `owner`, `repo` |\n| Trigger workflow | `GITHUB_CREATE_A_WORKFLOW_DISPATCH_EVENT` | `owner`, `repo`, `workflow_id`, `ref` |\n| Check CI | `GITHUB_LIST_CHECK_RUNS_FOR_A_REF` | `owner`, `repo`, ref |\n| List collaborators | `GITHUB_LIST_REPOSITORY_COLLABORATORS` | `owner`, `repo` |\n| Branch protection | `GITHUB_GET_BRANCH_PROTECTION` | `owner`, `repo`, `branch` |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":34,"source":38,"date_added":52,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcursor\u002Fgithub-automation","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill github-automation",{"tool":65,"command":66},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill github-automation",{"tool":68,"command":69},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill github-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fgithub-automation\u002FSKILL.md",true,[],[74,97,123,133,146,163],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":85,"publishedAt":47},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[86,87,40,88,89,90,91,92,93,94,95,96],"wechat search","wechat","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":47},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[104,105,106,107,108,109,40,110,111,112,113,114,115,116,117,118,119,120,121,122],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":47},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[130,131,104,115,116,117,118,108,40,120,132,121,122,114,112,111,110,119,109,107],"trend radar","radar","pulse",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":47},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[140,141,142,143,144,145],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":155,"publishedAt":47},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[152],{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[148,93,156,157,158,96,115,159,160,161,106,162,119],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":47},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[165,170,171,172,119,173,160,27,174,175,176,177],"status","play","go","latest","discover","control","cmd","volume"]