{
  "schemaVersion": "1.0",
  "item": {
    "slug": "glab",
    "name": "glab",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/bezkom/glab",
    "canonicalUrl": "https://clawhub.ai/bezkom/glab",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/glab",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=glab",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "_meta.json",
      "references/api-advanced.md",
      "references/commands-detailed.md",
      "references/troubleshooting.md",
      "scripts/glab-mr-await.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/glab"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/glab",
    "agentPageUrl": "https://openagent3.xyz/skills/glab/agent",
    "manifestUrl": "https://openagent3.xyz/skills/glab/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/glab/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "GitLab CLI (glab)",
        "body": "Official CLI for GitLab. Manage issues, merge requests, pipelines, and more from the terminal.\n\nSource: Inspired by NikiforovAll/glab-skill on Smithery."
      },
      {
        "title": "⚠️ Security Notice",
        "body": "The glab api command provides unrestricted GitLab API access with your token.\n\nA compromised or overly-permissive token can delete projects, modify settings, expose secrets\nRecommendation: Use tokens with minimal scopes:\n\nread_api - Read-only operations\napi - Full access (only when write operations needed)\n\n\nFor automation, consider project-level tokens with limited scope\nNever use tokens with sudo scope unless required"
      },
      {
        "title": "Prerequisites",
        "body": "Required binaries:\n\nglab - GitLab CLI\njq - JSON processor (for scripts and API parsing)\n\nRequired credentials:\n\nGITLAB_TOKEN - GitLab personal access token\n\nOptional configuration:\n\nGITLAB_HOST - Self-hosted GitLab instance (default: gitlab.com)\n\n# Verify installation\nglab --version\njq --version\n\n# Authenticate (interactive)\nglab auth login\n\n# Or via environment\nexport GITLAB_TOKEN=\"glpat-xxxxxxxxxxxxxxxxxxxx\"\nexport GITLAB_HOST=\"gitlab.example.org\"  # for self-hosted\n\n# Verify auth\nglab auth status"
      },
      {
        "title": "Quick Reference",
        "body": "Merge Requests:\n\nglab mr create --title \"Fix\" --description \"Closes #123\"\nglab mr list --reviewer=@me          # MRs awaiting your review\nglab mr checkout 123                  # Test MR locally\nglab mr approve 123 && glab mr merge 123\n\nIssues:\n\nglab issue create --title \"Bug\" --label=bug\nglab issue list --assignee=@me\nglab issue close 456\n\nCI/CD:\n\nglab ci status                        # Current pipeline status\nglab pipeline ci view                 # Watch pipeline live\nglab ci lint                          # Validate .gitlab-ci.yml\nglab ci retry                         # Retry failed pipeline\n\nWorking Outside Repo:\n\nglab mr list -R owner/repo            # Specify repository\n\nAdvanced API Access:\n\nSee references/api-advanced.md for glab api usage. This command enables arbitrary GitLab API calls and should be used with appropriately-scoped tokens."
      },
      {
        "title": "Create and Merge MR",
        "body": "# 1. Push branch\ngit push -u origin feature-branch\n\n# 2. Create MR\nglab mr create --title \"Add feature\" --description \"Implements X\" --reviewer=alice,bob --label=\"enhancement\"\n\n# 3. After approval, merge\nglab mr approve 123\nglab mr merge 123 --remove-source-branch"
      },
      {
        "title": "Review MR",
        "body": "# List MRs for review\nglab mr list --reviewer=@me\n\n# Checkout and test\nglab mr checkout 123\n\n# Approve or comment\nglab mr approve 123\nglab mr note 123 -m \"Looks good, just one suggestion...\""
      },
      {
        "title": "Monitor Pipeline",
        "body": "# Watch current branch pipeline\nglab pipeline ci view\n\n# Check specific pipeline\nglab ci view 456\n\n# View failed job logs\nglab ci trace\n\n# Retry\nglab ci retry"
      },
      {
        "title": "Self-Hosted GitLab",
        "body": "# Set default host\nexport GITLAB_HOST=gitlab.example.org\n\n# Or per-command\nglab mr list -R gitlab.example.org/owner/repo"
      },
      {
        "title": "Scripts",
        "body": "ScriptDescriptionglab-mr-await.shWait for MR approval and successful pipelineglab-pipeline-watch.shMonitor pipeline with exit codes for CI\n\n# Wait for MR to be approved and merged\n./scripts/glab-mr-await.sh 123 --timeout 600\n\n# Watch pipeline, exit 0 on success, 1 on failure\n./scripts/glab-pipeline-watch.sh --timeout 300\n\nScript environment variables:\n\nTIMEOUT - Max wait time in seconds (default varies by script)\nINTERVAL - Polling interval in seconds (default 5-10s)"
      },
      {
        "title": "Troubleshooting",
        "body": "ErrorFixcommand not found: glabInstall glabcommand not found: jqInstall jq401 UnauthorizedSet GITLAB_TOKEN or run glab auth login404 Project Not FoundVerify repo name and permissionsnot a git repositoryUse -R owner/repo flagsource branch already has MRglab mr list to find existing\n\nFor detailed troubleshooting, see references/troubleshooting.md."
      },
      {
        "title": "Progressive Disclosure",
        "body": "references/api-advanced.md - glab api usage with security considerations\nreferences/commands-detailed.md - Full command reference with all flags\nreferences/troubleshooting.md - Detailed error scenarios and solutions\n\nLoad these when you need specific flag details or are debugging issues."
      },
      {
        "title": "Best Practices",
        "body": "Always verify auth: glab auth status\nUse minimal-scope tokens for read operations\nLink MRs to issues: \"Closes #123\" in description\nLint CI config before pushing: glab ci lint\nUse --output=json for scripting\nMost commands have --web to open in browser"
      }
    ],
    "body": "GitLab CLI (glab)\n\nOfficial CLI for GitLab. Manage issues, merge requests, pipelines, and more from the terminal.\n\nSource: Inspired by NikiforovAll/glab-skill on Smithery.\n\n⚠️ Security Notice\n\nThe glab api command provides unrestricted GitLab API access with your token.\n\nA compromised or overly-permissive token can delete projects, modify settings, expose secrets\nRecommendation: Use tokens with minimal scopes:\nread_api - Read-only operations\napi - Full access (only when write operations needed)\nFor automation, consider project-level tokens with limited scope\nNever use tokens with sudo scope unless required\nPrerequisites\n\nRequired binaries:\n\nglab - GitLab CLI\njq - JSON processor (for scripts and API parsing)\n\nRequired credentials:\n\nGITLAB_TOKEN - GitLab personal access token\n\nOptional configuration:\n\nGITLAB_HOST - Self-hosted GitLab instance (default: gitlab.com)\n# Verify installation\nglab --version\njq --version\n\n# Authenticate (interactive)\nglab auth login\n\n# Or via environment\nexport GITLAB_TOKEN=\"glpat-xxxxxxxxxxxxxxxxxxxx\"\nexport GITLAB_HOST=\"gitlab.example.org\"  # for self-hosted\n\n# Verify auth\nglab auth status\n\nQuick Reference\n\nMerge Requests:\n\nglab mr create --title \"Fix\" --description \"Closes #123\"\nglab mr list --reviewer=@me          # MRs awaiting your review\nglab mr checkout 123                  # Test MR locally\nglab mr approve 123 && glab mr merge 123\n\n\nIssues:\n\nglab issue create --title \"Bug\" --label=bug\nglab issue list --assignee=@me\nglab issue close 456\n\n\nCI/CD:\n\nglab ci status                        # Current pipeline status\nglab pipeline ci view                 # Watch pipeline live\nglab ci lint                          # Validate .gitlab-ci.yml\nglab ci retry                         # Retry failed pipeline\n\n\nWorking Outside Repo:\n\nglab mr list -R owner/repo            # Specify repository\n\n\nAdvanced API Access:\n\nSee references/api-advanced.md for glab api usage. This command enables arbitrary GitLab API calls and should be used with appropriately-scoped tokens.\n\nCore Workflows\nCreate and Merge MR\n# 1. Push branch\ngit push -u origin feature-branch\n\n# 2. Create MR\nglab mr create --title \"Add feature\" --description \"Implements X\" --reviewer=alice,bob --label=\"enhancement\"\n\n# 3. After approval, merge\nglab mr approve 123\nglab mr merge 123 --remove-source-branch\n\nReview MR\n# List MRs for review\nglab mr list --reviewer=@me\n\n# Checkout and test\nglab mr checkout 123\n\n# Approve or comment\nglab mr approve 123\nglab mr note 123 -m \"Looks good, just one suggestion...\"\n\nMonitor Pipeline\n# Watch current branch pipeline\nglab pipeline ci view\n\n# Check specific pipeline\nglab ci view 456\n\n# View failed job logs\nglab ci trace\n\n# Retry\nglab ci retry\n\nSelf-Hosted GitLab\n# Set default host\nexport GITLAB_HOST=gitlab.example.org\n\n# Or per-command\nglab mr list -R gitlab.example.org/owner/repo\n\nScripts\nScript\tDescription\nglab-mr-await.sh\tWait for MR approval and successful pipeline\nglab-pipeline-watch.sh\tMonitor pipeline with exit codes for CI\n# Wait for MR to be approved and merged\n./scripts/glab-mr-await.sh 123 --timeout 600\n\n# Watch pipeline, exit 0 on success, 1 on failure\n./scripts/glab-pipeline-watch.sh --timeout 300\n\n\nScript environment variables:\n\nTIMEOUT - Max wait time in seconds (default varies by script)\nINTERVAL - Polling interval in seconds (default 5-10s)\nTroubleshooting\nError\tFix\ncommand not found: glab\tInstall glab\ncommand not found: jq\tInstall jq\n401 Unauthorized\tSet GITLAB_TOKEN or run glab auth login\n404 Project Not Found\tVerify repo name and permissions\nnot a git repository\tUse -R owner/repo flag\nsource branch already has MR\tglab mr list to find existing\n\nFor detailed troubleshooting, see references/troubleshooting.md.\n\nProgressive Disclosure\nreferences/api-advanced.md - glab api usage with security considerations\nreferences/commands-detailed.md - Full command reference with all flags\nreferences/troubleshooting.md - Detailed error scenarios and solutions\n\nLoad these when you need specific flag details or are debugging issues.\n\nBest Practices\nAlways verify auth: glab auth status\nUse minimal-scope tokens for read operations\nLink MRs to issues: \"Closes #123\" in description\nLint CI config before pushing: glab ci lint\nUse --output=json for scripting\nMost commands have --web to open in browser"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/bezkom/glab",
    "publisherUrl": "https://clawhub.ai/bezkom/glab",
    "owner": "bezkom",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/glab",
    "downloadUrl": "https://openagent3.xyz/downloads/glab",
    "agentUrl": "https://openagent3.xyz/skills/glab/agent",
    "manifestUrl": "https://openagent3.xyz/skills/glab/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/glab/agent.md"
  }
}