{"id":"ba490edb-4988-46d2-8e40-9cd68c3bc724","entityType":"agent","slug":"clawhub-stevetdp-relay-gitcode-cli","name":"Relay GitCode CLI","canonicalUrl":"https://www.xpersona.co/agent/clawhub-stevetdp-relay-gitcode-cli","canonicalPath":"/agent/clawhub-stevetdp-relay-gitcode-cli","generatedAt":"2026-10-12T20:15:21.647Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:42:00.570Z","emptyReason":null},"description":"Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 974 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s175261s0xvkyprt3f0vdgxm8h84hkx6:relay-gitcode-cli","sourceUrl":"https://clawhub.ai/stevetdp/relay-gitcode-cli","homepage":"https://clawhub.ai/stevetdp/skills/relay-gitcode-cli","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/stevetdp/relay-gitcode-cli","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/stevetdp/skills/relay-gitcode-cli","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Relay GitCode CLI technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:42:00.570Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:42:00.570Z","emptyReason":null},"stars":null,"forks":null,"downloads":974,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"0.1.5","tractionLabel":"974 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:42:00.500Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T23:42:00.570Z","lastCrawledAt":"2026-10-11T23:42:00.500Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T23:42:00.500Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.5","createdAt":"2026-05-20T09:14:14.911Z","changelog":"gd v0.1.5","fileCount":6,"zipByteSize":13374},{"version":"0.1.4","createdAt":"2026-05-20T06:13:19.629Z","changelog":"gd v0.1.4","fileCount":5,"zipByteSize":10816},{"version":"0.1.3","createdAt":"2026-05-20T02:30:14.409Z","changelog":"gd v0.1.3","fileCount":5,"zipByteSize":9276},{"version":"0.1.2","createdAt":"2026-05-19T15:20:14.824Z","changelog":"gd v0.1.2","fileCount":5,"zipByteSize":8394},{"version":"0.1.1","createdAt":"2026-05-19T13:17:55.594Z","changelog":"gd v0.1.1","fileCount":5,"zipByteSize":7731},{"version":"0.1.0","createdAt":"2026-05-19T12:35:15.529Z","changelog":"gd v0.1.0","fileCount":5,"zipByteSize":7036}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s175261s0xvkyprt3f0vdgxm8h84hkx6:relay-gitcode-cli","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s175261s0xvkyprt3f0vdgxm8h84hkx6:relay-gitcode-cli` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/stevetdp/relay-gitcode-cli before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T20:15:21.646Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stevetdp-relay-gitcode-cli/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:42:00.570Z","emptyReason":null},"readme":"Skill: Relay GitCode CLI\n\nOwner: stevetdp\n\nSummary: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search...\n\nTags: latest:0.1.5\n\nVersion history:\n\nv0.1.5 | 2026-05-20T09:14:14.911Z | user\n\ngd v0.1.5\n\nv0.1.4 | 2026-05-20T06:13:19.629Z | user\n\ngd v0.1.4\n\nv0.1.3 | 2026-05-20T02:30:14.409Z | user\n\ngd v0.1.3\n\nv0.1.2 | 2026-05-19T15:20:14.824Z | user\n\ngd v0.1.2\n\nv0.1.1 | 2026-05-19T13:17:55.594Z | user\n\ngd v0.1.1\n\nv0.1.0 | 2026-05-19T12:35:15.529Z | user\n\ngd v0.1.0\n\nArchive index:\n\nArchive v0.1.5: 6 files, 13374 bytes\n\nFiles: agents/openai.yaml (212b), references/cli-workflows.md (11730b), references/gitcode-workflow-yml.md (4901b), skill-card.md (3224b), SKILL.md (13174b), _meta.json (136b)\n\nFile v0.1.5:SKILL.md\n\n---\nname: relay-gitcode-cli\ndescription: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, GitCode Pipeline operations, raw API calls, JSON automation, version checks, and shell completion. Use when an agent should operate GitCode by running local gd commands. Do not use this skill for GitHub-only gh surfaces unless GitCode exposes an equivalent API through gd or gd api.\nmetadata:\n  version: 0.1.5\n  openclaw:\n    skillKey: relay-gitcode-cli\n    homepage: https://github.com/coolplayagent/relay-gitcode-cli\n---\n\n# Relay GitCode CLI\n\n## Workflow\n\nUse the selected `gd` binary as the GitCode control surface. Prefer `--json`\nfor automation and inspect command help before exposing unfamiliar operations:\n\n```bash\ngd --help\ngd pr create --help\ngd api --help\n```\n\nKeep behavior GitCode-specific. Do not introduce GitHub-only command surfaces\nsuch as gists, codespaces, projects, GitHub Actions, rulesets, extensions, or\nCopilot unless GitCode exposes equivalent API behavior and the task can be done\nthrough `gd api`.\n\nWhen `gd` commands, flags, examples, or user-facing behavior change in this\nrepository, update this `SKILL.md` in the same change so agent workflows stay\naligned with the compiled CLI.\n\n`gd` reuses reqwest system proxy behavior for `HTTP_PROXY`/`http_proxy`,\n`HTTPS_PROXY`/`https_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy`. TLS certificate verification is disabled by default for\nGitCode API calls. Set `GD_SSL_VERIFY`/`gd_ssl_verify`,\n`GITCODE_SSL_VERIFY`/`gitcode_ssl_verify`, or `SSL_VERIFY`/`ssl_verify` to\n`true` to enable verification; any non-empty\n`GIT_SSL_NO_VERIFY`/`git_ssl_no_verify` value keeps it disabled.\n\n## Readiness\n\nSelect the newest usable `gd` before running workflows. Resolve bundled assets\nrelative to this skill directory. On Linux x64, check\n`assets/bin/linux-x86_64/gd`; on Windows x64, check\n`assets/bin/windows-x86_64/gd.exe`. Also check the `gd` binary found on `PATH`\nwith `command -v gd` on Unix or `where gd` on Windows.\n\nFor every candidate that exists and is executable, run `<candidate> --version`\nand parse the semver from output such as `gd 0.1.0`. Use the candidate with the\nhighest semver. If versions are equal, prefer the bundled binary. Ignore\ncandidates that cannot run or do not print a parseable `gd` version. If the\nselected binary is not on `PATH`, run it by absolute path or set `GD_BIN` and\nsubstitute `\"$GD_BIN\"` for `gd` in the examples below.\n\nSet `GD_BIN` to the selected path, then inspect version and authentication\nstate:\n\n```bash\n\"$GD_BIN\" --version\n\"$GD_BIN\" version check --json\n\"$GD_BIN\" auth status --json\n```\n\nOnly install online when no bundled or `PATH` binary is usable. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd version check --json\n```\n\nWhen falling back to GitHub Releases downloads, use the environment proxy\nrequired by the host network. Check or set `HTTPS_PROXY`/`https_proxy`,\n`HTTP_PROXY`/`http_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy` before running `curl`, `wget`, or another downloader.\n\nDo not install this skill by building `gd` from a local repository checkout.\nThe bundled binaries and online fallbacks should come from released CLI\nartifacts.\n\nFor temporary CI or end-to-end tests, prefer `GD_TOKEN` or `GITCODE_TOKEN` in\nthe process environment. `GD_TOKEN` takes precedence when both are present. For\ninteractive token login, read the token from stdin and store it in the system\nkeyring:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nNever print, commit, or persist personal access tokens, cookies, or private API\nresponses in repository files.\n\n## Core Workflows\n\nUse explicit repositories with `--repo owner/repo` when the current directory\ndoes not define a `gd` default repository. Add `--json` for machine-readable\noutput:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\ngd repo clone owner/repo\ngd repo create name --private --description \"demo\" --json\ngd repo fork owner/repo --json\ngd repo move owner/repo target-owner/new-name --json\ngd repo move owner/repo target-owner --name new-name --json\ngd repo sync-github coolplayagent/relay-gitcode-cli --org plm-cac --private --json\ngd repo sync-github git@github.com:owner/repo.git --repo target-org/repo --if-exists skip --json\ngd repo sync-github owner/repo --repo target-org/repo --method git-push --if-exists update --json\ngd repo contents README.md --repo owner/repo --ref main --json\ngd repo file-create README.md --repo owner/repo --message \"init\" --content \"hello\" --json\ngd repo file-update README.md --repo owner/repo --message \"update\" --sha blob-sha --content-file README.md --json\ngd repo settings-edit --repo owner/repo --field has_issues=true --json\ngd repo pr-settings --repo owner/repo --json\ngd repo push-rules --repo owner/repo --json\ngd repo contributor-stats --repo owner/repo --current-user --json\ngd repo events --repo owner/repo --filter push --json\n```\n\n`gd repo move` moves a GitCode repository between users and organizations, or\nrenames it when the target owner is unchanged. Use a disposable repository for\nE2E checks:\n\n```bash\nGITCODE_TOKEN=... GD_E2E_SOURCE_REPO=owner/repo GD_E2E_TARGET_OWNER=target-owner GD_E2E_TARGET_NAME=temporary-name scripts/e2e-repo-move.sh\n```\n\n`gd repo sync-github` accepts a GitHub `owner/repo`, HTTPS URL, or SSH URL and\ncreates a GitCode repository with that GitHub repository as `import_url` by\ndefault.\nWithout `--org` or `--repo`, it imports into the authenticated GitCode user\nnamespace. Use `--org` for a GitCode organization and `--repo owner/name` for an\nexplicit target path. Existing targets are skipped by default. Use `--method\ngit-push` to create a regular GitCode repository and push GitHub branches and\ntags with Git instead of enabling Pull mirroring; this keeps the target writable\nfor GitCode Release creation. Use `--if-exists update` to push refs to an\nexisting regular target, or `--if-exists recreate` to delete and recreate the\ntarget.\n\nManage issues and pull requests with the GitCode-backed command surface:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --json\ngd issue edit 1 --repo owner/repo --state close --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\ngd issue comments 1 --repo owner/repo --json\ngd issue comment-edit 123 --repo owner/repo --body \"updated\" --json\ngd issue label-add 1 --repo owner/repo --label bug --json\ngd issue prs 1 --repo owner/repo --json\ngd issue logs 1 --repo owner/repo --json\n\ngd pr list --repo owner/repo --state open --base main --json\ngd pr view 1 --repo owner/repo --json\ngd pr create --repo owner/repo --title \"change\" --body \"details\" --base main --head feature --json\ngd pr edit 1 --repo owner/repo --title \"new title\" --json\ngd pr merge 1 --repo owner/repo --merge-method squash --json\ngd pr commits 1 --repo owner/repo --json\ngd pr files 1 --repo owner/repo --json\ngd pr changes 1 --repo owner/repo --json\ngd pr issues 1 --repo owner/repo --json\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\ngd pr label-add 1 --repo owner/repo --label bug --json\ngd pr review approve 1 --repo owner/repo --json\ngd pr review assign-approver 1 --repo owner/repo --user alice --json\n```\n\nFor broad GitCode settings payloads, pass repeated `--field key=value` entries.\nBoolean, numeric, and `null` values are sent as JSON scalars; other values are\nsent as strings. GitCode PR review is exposed through `gd pr review` approval\nand tester subcommands.\n\nUse `gd api` for GitCode API v5 endpoints that do not have first-class\nsubcommands:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\nManage GitCode Releases and migrate published GitHub Release assets into a\nGitCode Release when a GitCode repository mirrors GitHub source code:\n\n```bash\ngd release list --repo owner/repo --json\ngd release view v0.1.0 --repo owner/repo --json\ngd release create v0.1.0 --repo owner/repo --title \"v0.1.0\" --notes \"Release notes\" --json\ngd release edit 1 --repo owner/repo --title \"v0.1.0\" --json\ngd release upload v0.1.0 dist/app.tar.gz --repo owner/repo --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --tag v0.1.0 --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --all --dry-run --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --tag v0.1.0 --update-release=false --skip-existing-assets=false --json\n```\n\nManage tags and milestones directly when GitCode exposes equivalent API\nbehavior:\n\n```bash\ngd tag list --repo owner/repo --json\ngd tag create v0.1.0 --repo owner/repo --ref main --message \"v0.1.0\" --json\ngd tag protected-list --repo owner/repo --json\ngd tag protected-create \"v*\" --repo owner/repo --create-access-level 30 --json\ngd milestone list --repo owner/repo --json\ngd milestone create --repo owner/repo --title v1 --due-on 2026-06-01 --json\ngd milestone edit 1 --repo owner/repo --state closed --json\n```\n\n`gd release migrate-github` reads GitHub Release metadata and uploaded assets,\nthen creates or updates GitCode Releases through GitCode Release APIs. It uses\n`GITHUB_TOKEN` when present for GitHub API reads, `GD_TOKEN`, `GITCODE_TOKEN`,\nor the system keyring for GitCode writes, and skips existing GitCode assets with\nmatching names by default. Use `--update-release=false` to preserve existing\nGitCode Release metadata and `--skip-existing-assets=false` to fail on duplicate\nasset names.\n\n## Pipelines\n\nGitCode workflow commands use GitCode API credentials. OpenLibing gate commands\nuse separate OpenLibing GitCode OAuth credentials; they do not reuse\n`GD_TOKEN` or `GITCODE_TOKEN`. Use `gd pipeline auth login` for browser OAuth, or set\n`GD_OPENLIBING_TOKEN` or `GD_OPENLIBING_COOKIE` for automation. Use the\nOpenLibing `--project-id`, not the GitCode repository id.\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n\ngd pipeline auth status --json\ngd pipeline config --project-id openlibing-project-id --json\ngd pipeline setup --project-id openlibing-project-id --repo owner/repo --language Rust --codecheck-rule-set default --json\ngd pipeline prs --project-id openlibing-project-id --repo owner/repo --state open --json\ngd pipeline checks --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-view --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-runs --project-id openlibing-project-id --pipeline-name codecheck --json\n```\n\n`gd pipeline checks` falls back to the OpenLibing CodeCheck task summary when\nthe CICD PR check endpoint is not readable. `gd pipeline setup\n--codecheck-rule-set` accepts either a rule-set name or a direct rule-set ID.\nFor setup failures on OpenLibing repository add/update, check the documented\nOpenLibing prerequisites before retrying: project administrator or equivalent\nproject approver role, repository recorded in Code Repository Management, PR\ntakeover enabled, CodeCheck language/rule set selected, GitCode public or robot\naccount repository access, and webhook configuration permission.\n\n## Troubleshooting\n\nIf a command fails, read the JSON response or the `gd:` error line before\nguessing hidden state. Check authentication, repository spelling, hostname, and\nAPI base first:\n\n```bash\ngd auth status --json\ngd repo view owner/repo --json\ngd api /user --json\ngd --api-base https://api.gitcode.com/api/v5 api /user --json\n```\n\nParse-time diagnostics cover unknown commands and flags plus locally known\nstructured values such as `owner/repo` repositories, GitHub repository inputs,\nHTTP(S) base URLs, `.gitcode/workflows/` paths, `key=value` API/workflow fields,\nand CodeCheck secret names. With `--json` or `--format json`, parse failures\nwrite a single-line JSON object to stderr with `error`, `matched_path`,\n`unexpected_token`, `expected`, `suggestion`, and `usage`.\n\nFor more command recipes, API automation patterns, and GitCode workflow YAML\nexamples, read `references/cli-workflows.md` and\n`references/gitcode-workflow-yml.md`.\n\nFile v0.1.5:_meta.json\n\n{\n  \"ownerId\": \"kn7ftpbqzwq14ga3f5ms64h1yn84hc25\",\n  \"slug\": \"relay-gitcode-cli\",\n  \"version\": \"0.1.5\",\n  \"publishedAt\": 1779268454911\n}\n\nFile v0.1.5:references/cli-workflows.md\n\n# Relay GitCode CLI Workflows\n\n## Contents\n\n- [Installation and Authentication](#installation-and-authentication)\n- [Safe Automation Defaults](#safe-automation-defaults)\n- [Repository Workflows](#repository-workflows)\n- [Issue and Pull Request Workflows](#issue-and-pull-request-workflows)\n- [Search, SSH Keys, Labels, and Releases](#search-ssh-keys-labels-and-releases)\n- [Raw GitCode API Calls](#raw-gitcode-api-calls)\n- [GitCode Pipeline Workflows](#gitcode-pipeline-workflows)\n- [Workflow YAML References](#workflow-yaml-references)\n- [Out of Scope](#out-of-scope)\n\n## Installation and Authentication\n\nSelect the newest usable released `gd` binary before running workflows. Check\nthe bundled binary for the current platform, if present:\n`assets/bin/linux-x86_64/gd` on Linux x64 or\n`assets/bin/windows-x86_64/gd.exe` on Windows x64. Also check the `gd` binary\nfound on `PATH` with `command -v gd` on Unix or `where gd` on Windows.\n\nRun `<candidate> --version` for each candidate and parse the semver from output\nsuch as `gd 0.1.0`. Use the highest semver. If versions are equal, prefer the\nbundled binary. Ignore candidates that cannot run or do not print a parseable\n`gd` version. If the selected binary is not on `PATH`, run it by absolute path\nor set `GD_BIN` and substitute `\"$GD_BIN\"` for `gd` in examples.\n\nOnly install online when no bundled or `PATH` binary is usable. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd --version\ngd version check --json\n```\n\nWhen falling back to GitHub Releases downloads, use the environment proxy\nrequired by the host network. Check or set `HTTPS_PROXY`/`https_proxy`,\n`HTTP_PROXY`/`http_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy` before running `curl`, `wget`, or another downloader.\n\nDo not install from a local repository checkout as part of this skill workflow.\nThe bundled binaries and online fallbacks should come from released CLI\nartifacts.\n\nUse `GD_TOKEN` or `GITCODE_TOKEN` for temporary automation and CI. `GD_TOKEN`\ntakes precedence when both are present:\n\n```bash\nGD_TOKEN=\"$GD_TOKEN\" gd auth status --json\n```\n\nUse keyring-backed login for interactive local sessions:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nDo not write tokens to shell history, repository files, committed fixtures, or\nskill outputs. Do not include private API responses in docs or examples.\n\n## Safe Automation Defaults\n\n- Prefer `--json` for any output an agent will parse.\n- Prefer explicit `--repo owner/repo` rather than relying on local default\n  repository state.\n- Use `--hostname` for GitCode host overrides and `--api-base` for API base\n  overrides.\n- Keep page sizes bounded with `--limit`.\n- Read command help before using a subcommand in a new automation path.\n- Use `gd api` only for GitCode API v5 endpoints or another user-approved\n  GitCode-compatible API base.\n\n## Repository Workflows\n\nInspect repositories:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\n```\n\nClone with optional Git flags after `--`:\n\n```bash\ngd repo clone owner/repo\ngd repo clone owner/repo local-dir -- --depth 1\n```\n\nCreate or fork repositories:\n\n```bash\ngd repo create demo --private --description \"demo repository\" --json\ngd repo fork owner/repo --json\ngd repo move owner/repo target-owner/new-name --json\ngd repo move owner/repo target-owner --name new-name --json\ngd repo sync-github coolplayagent/relay-gitcode-cli --org plm-cac --private --json\ngd repo sync-github git@github.com:owner/repo.git --repo target-org/repo --if-exists skip --json\ngd repo sync-github owner/repo --repo target-org/repo --method git-push --if-exists update --json\n```\n\nUse `gd repo move` to transfer a GitCode repository between a user and an\norganization, between organizations, or back to a user namespace. Include a new\nrepository name as `target-owner/new-name` or pass `--name new-name`; if the\nowner is unchanged, the command only renames the repository.\n\nUse `gd repo sync-github` to create a GitCode repository from a GitHub\n`import_url` by default. The source accepts `owner/repo`, HTTPS, or SSH GitHub\nURLs. Omit `--org` and `--repo` to import into the authenticated GitCode user\nnamespace, pass `--org` for an organization, or pass `--repo owner/name` for an\nexplicit target path. Existing targets are skipped by default. Use `--method\ngit-push` to create a regular GitCode repository and push GitHub branches and\ntags with Git instead of enabling Pull mirroring; this keeps the target writable\nfor GitCode Release creation. Use `--if-exists update` to push refs to an\nexisting regular target, or `--if-exists recreate` to delete and recreate the\ntarget.\n\n## Issue and Pull Request Workflows\n\nList and inspect issues:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\n```\n\nCreate and comment on issues:\n\n```bash\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --label bug --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n```\n\nList and inspect pull requests:\n\n```bash\ngd pr list --repo owner/repo --state open --base main --limit 30 --json\ngd pr view 1 --repo owner/repo --json\n```\n\nCreate pull requests:\n\n```bash\ngd pr create \\\n  --repo owner/repo \\\n  --title \"change\" \\\n  --body \"details\" \\\n  --base main \\\n  --head feature \\\n  --assignee user \\\n  --label enhancement \\\n  --json\n```\n\nList, add, and reply to Pull Request review comments:\n\n```bash\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\n`gd mr` is a visible alias for `gd pr`. Prefer `gd pr` in reusable\ndocumentation unless the user specifically requests merge-request naming.\n\n## Search, SSH Keys, Labels, and Releases\n\nSearch GitCode resources:\n\n```bash\ngd search repos \"rust cli\" --limit 20 --json\ngd search issues \"repo:owner/repo bug\" --limit 20 --json\ngd search users \"alice\" --limit 20 --json\n```\n\nManage SSH keys:\n\n```bash\ngd ssh-key list --json\ngd ssh-key add ~/.ssh/id_ed25519.pub --title laptop --json\ngd ssh-key delete key-id --json\n```\n\nManage repository labels:\n\n```bash\ngd label list --repo owner/repo --json\ngd label create bug --repo owner/repo --color ff0000 --description \"Bug reports\" --json\ngd label edit bug --repo owner/repo --new-name defect --json\ngd label delete defect --repo owner/repo --json\n```\n\nInspect and create releases:\n\n```bash\ngd release list --repo owner/repo --json\ngd release view v0.1.0 --repo owner/repo --json\ngd release create v0.1.0 --repo owner/repo --title \"v0.1.0\" --notes \"Release notes\" --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --tag v0.1.0 --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --all --dry-run --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --tag v0.1.0 --update-release=false --skip-existing-assets=false --json\n```\n\n`gd release migrate-github` is useful when a GitCode repository mirrors GitHub\nsource code but GitHub Release assets must be copied separately. The command\nuses `GITHUB_TOKEN` when present for GitHub reads and GitCode credentials for\nRelease creation and asset uploads. Existing GitCode assets with the same name\nare skipped by default. Use `--update-release=false` to preserve existing\nGitCode Release metadata and `--skip-existing-assets=false` to fail on duplicate\nasset names.\n\n## Raw GitCode API Calls\n\nUse `gd api` when the GitCode API supports an operation that does not yet have a\nfirst-class `gd` command:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues -X POST -f title=\"bug\" -f body=\"details\" --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\nField modes:\n\n- `-f/--raw-field key=value` sends string values.\n- `-F/--field key=value` parses `true`, `false`, `null`, integers, and floats.\n- `--input file.json` sends a request body from a file; `--input -` reads stdin.\n- `--include` prints HTTP status and headers before the body.\n- `--silent` suppresses response printing but still fails on non-success status.\n\n## GitCode Pipeline Workflows\n\nGitCode workflow commands operate against GitCode and reuse the normal `gd`\nauthentication path. Create or update workflow YAML and CodeCheck workflow files\nthrough the repository contents API:\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck \\\n  --repo owner/repo \\\n  --language SHELL \\\n  --access-token-secret CODECHECK_ACCESS_TOKEN \\\n  --json\n```\n\nThe generated CodeCheck workflow references the configured secret expression and\ndoes not commit a token value. It filters push and pull request events by the\nconfigured target branch, then passes the pull request source repository and\nbranch or the current push repository/ref to `codecheck-action@0.0.3`.\n\nRun, inspect, and control GitCode workflow runs:\n\n```bash\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --limit 20 --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --job-run-id job-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n```\n\n`gd pipeline log` prints raw log text by default. Add `--json` when callers need\nthe full response envelope.\n\nOpenLibing provides GitCode PR gate and CodeCheck status. Authenticate\nseparately from `GD_TOKEN` and `GITCODE_TOKEN`:\n\n```bash\ngd pipeline auth login\ngd pipeline auth status --json\n```\n\nFor automation, provide `GD_OPENLIBING_TOKEN` or `GD_OPENLIBING_COOKIE`.\nOpenLibing commands require the OpenLibing project id:\n\n```bash\ngd pipeline config --project-id openlibing-project-id --json\ngd pipeline setup --project-id openlibing-project-id --repo owner/repo --language Rust --codecheck-rule-set default --json\ngd pipeline prs --project-id openlibing-project-id --repo owner/repo --state open --json\ngd pipeline checks --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-view --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-runs --project-id openlibing-project-id --pipeline-name codecheck --limit 20 --json\n```\n\n`gd pipeline checks` falls back to the OpenLibing CodeCheck task summary when\nthe CICD PR check endpoint is not readable. `gd pipeline setup\n--codecheck-rule-set` accepts either a rule-set name or a direct rule-set ID.\nFor setup failures on OpenLibing repository add/update, check the documented\nOpenLibing prerequisites before retrying: project administrator or equivalent\nproject approver role, repository recorded in Code Repository Management, PR\ntakeover enabled, CodeCheck language/rule set selected, GitCode public or robot\naccount repository access, and webhook configuration permission.\n\n## Workflow YAML References\n\nFor examples of `.gitcode/workflows/ci.yml` structure, event triggers, runners,\ncheckout steps, and language-specific CI templates, read\n`references/gitcode-workflow-yml.md`.\n\n## Out of Scope\n\nDo not use this skill for GitHub-only gh functionality unless GitCode has an\nequivalent API and the task can be completed through `gd` or `gd api`. Do not\nmanage GitHub Actions workflows, GitHub projects, gists, codespaces, GitHub\nrulesets, extensions, or Copilot through this skill.\n\nFile v0.1.5:references/gitcode-workflow-yml.md\n\n# GitCode Workflow YAML Examples\n\nUse this reference when creating or updating GitCode Pipeline workflow files\nunder `.gitcode/workflows`, especially `.gitcode/workflows/ci.yml`.\n\nOfficial GitCode Pipeline documentation describes workflows as YAML files stored\nunder `.gitcode/workflows`. A workflow has trigger events, one or more jobs, and\nordered steps. Jobs run on a GitCode runner such as `euleros-2.10.1`, and steps\ncan either run shell commands or use reusable actions such as\n`checkout-action@0.0.1`, `setup-node@0.0.1`, `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1`.\n\nSources:\n\n- <https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/>\n- <https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/>\n\n## Style\n\n- Store workflow files in `.gitcode/workflows`.\n- Use `ci.yml` for the main continuous-integration workflow unless the project\n  already has a clearer local naming convention.\n- Keep YAML indentation at two spaces.\n- Use a clear top-level `name`.\n- Prefer explicit branch filters for `push` and `pull_request`.\n- GitCode documents manual triggers as a pipeline capability, but the public\n  intro page does not show a YAML key for that trigger. Do not add\n  `workflow_dispatch` to reusable examples unless the target GitCode project has\n  already confirmed that syntax.\n- Start each job by checking out the repository with `checkout-action@0.0.1`.\n- Run repository commands from `repo_workspace` after checkout.\n- Keep secrets in GitCode project secrets or environment configuration, not in\n  workflow files.\n- Keep GitCode workflow examples separate from GitHub Actions examples. Do not\n  use `actions/checkout`, `ubuntu-latest`, or GitHub-only workflow surfaces.\n- GitCode documents `setup-java@0.0.1`, `setup-python@0.0.1`, and\n  `setup-go@0.0.1` as available built-in actions, but this reference does not\n  guess their `with` inputs without action-specific docs.\n\n## Minimal CI\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  build:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Inspect workspace\n        run: |\n          cd repo_workspace\n          pwd\n          ls\n```\n\n## CodeCheck\n\nUse `gd pipeline codecheck` to generate this workflow so the personal access\ntoken is referenced through a project secret instead of committed as a literal\nvalue:\n\n```bash\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\n```\n\nThe generated workflow uses `codecheck-action@0.0.3` with `repo_url`,\n`branch`, `rule_sets`, and `access_token` inputs as documented by GitCode\nCodeCheck. Pull request runs pass the PR source repository and branch to\nCodeCheck; push runs pass the configured repository URL and current ref.\n\n## Rust CLI CI\n\nUse this shape for Rust command line projects. It installs stable Rust inside\nthe clean EulerOS runner, then runs the same local gate used by this repository.\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  rust:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Install Rust stable\n        run: |\n          cd repo_workspace\n          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable\n          \"$HOME/.cargo/bin/rustup\" component add rustfmt clippy\n      - name: Format gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" fmt --all -- --check\n      - name: Clippy gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" clippy --all-targets --all-features -- -D warnings\n      - name: Test suite\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" test --all-targets --all-features\n      - name: Build\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" build --all-targets --all-features\n```\n\n## Node CI\n\nThis follows the GitCode documentation pattern for `setup-node@0.0.1`.\n\n```yaml\nname: node-ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  node:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Use Node.js\n        uses: setup-node@0.0.1\n        with:\n          node-version: '20.10.0'\n      - run: cd repo_workspace && npm ci\n      - run: cd repo_workspace && npm run build --if-present\n      - run: cd repo_workspace && npm test\n```\n\n## Other Language Actions\n\nThe public GitCode Pipeline intro lists `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1` as built-in actions. It does not show\ntheir input names. When writing Java, Python, or Go templates, use the action\ndocumentation or a known-good workflow from the target project before adding\n`with` keys.\n\nFile v0.1.5:skill-card.md\n\n## Description:\n\nRelay GitCode CLI guides agents to use the local `gd` command line client for GitCode API v5 workflows, including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, pipelines, raw API calls, JSON automation, version checks, and shell completion.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[stevetdp](https://clawhub.ai/user/stevetdp)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill when an agent needs to inspect or change GitCode resources through `gd` commands instead of GitHub-only tooling. It supports repository, pull request, issue, release, label, SSH key, pipeline, workflow YAML, and raw API automation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill handles GitCode credentials and private API responses.\n\nMitigation: Use narrow, revocable tokens through environment variables or keyring-backed login, and do not print, commit, or persist tokens or private API responses.\n\nRisk: The documented CLI behavior disables TLS certificate verification by default.\n\nMitigation: Enable verification with `GD_SSL_VERIFY`, `GITCODE_SSL_VERIFY`, or `SSL_VERIFY` set to `true`, and avoid setting `GIT_SSL_NO_VERIFY`.\n\nRisk: The skill can guide powerful repository and API changes, including moves, delete/recreate syncs, SSH-key deletion, label deletion, pipeline cancellation, and raw API mutations.\n\nMitigation: Require explicit user confirmation before high-impact operations, prefer disposable repositories for tests, and use dry-run or skip modes where available.\n\nRisk: Online installation fallbacks may fetch unpinned binaries or packages.\n\nMitigation: Prefer bundled or already installed released `gd` binaries, verify the selected version before use, and avoid online installs unless no usable local binary exists.\n\n## Reference(s):\n\n- [Relay GitCode CLI ClawHub page](https://clawhub.ai/stevetdp/skills/relay-gitcode-cli)\n- [Relay GitCode CLI homepage](https://github.com/coolplayagent/relay-gitcode-cli)\n- [Relay GitCode CLI Workflows](references/cli-workflows.md)\n- [GitCode Workflow YAML Examples](references/gitcode-workflow-yml.md)\n- [GitCode Pipeline documentation](https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/)\n- [GitCode Pipeline documentation (Chinese)](https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell command examples, JSON-oriented command patterns, and GitCode workflow YAML snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Prefers explicit repositories, bounded result sizes, and `--json` output for agent-readable automation.]\n\n## Skill Version(s):\n\n0.1.5 (source: frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.5:agents/openai.yaml\n\ninterface:\n  display_name: \"Relay GitCode CLI\"\n  short_description: \"Use gd for GitCode CLI workflows\"\n  default_prompt: \"Use $relay-gitcode-cli to inspect a GitCode repository and manage pull requests with gd.\"\n\nArchive v0.1.4: 5 files, 10816 bytes\n\nFiles: agents/openai.yaml (212b), references/cli-workflows.md (11660b), references/gitcode-workflow-yml.md (4901b), SKILL.md (10208b), _meta.json (136b)\n\nFile v0.1.4:SKILL.md\n\n---\nname: relay-gitcode-cli\ndescription: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, GitCode Pipeline operations, raw API calls, JSON automation, version checks, and shell completion. Use when an agent should operate GitCode by running local gd commands. Do not use this skill for GitHub-only gh surfaces unless GitCode exposes an equivalent API through gd or gd api.\nmetadata:\n  version: 0.1.4\n  openclaw:\n    skillKey: relay-gitcode-cli\n    homepage: https://github.com/coolplayagent/relay-gitcode-cli\n---\n\n# Relay GitCode CLI\n\n## Workflow\n\nUse the selected `gd` binary as the GitCode control surface. Prefer `--json`\nfor automation and inspect command help before exposing unfamiliar operations:\n\n```bash\ngd --help\ngd pr create --help\ngd api --help\n```\n\nKeep behavior GitCode-specific. Do not introduce GitHub-only command surfaces\nsuch as gists, codespaces, projects, GitHub Actions, rulesets, extensions, or\nCopilot unless GitCode exposes equivalent API behavior and the task can be done\nthrough `gd api`.\n\nWhen `gd` commands, flags, examples, or user-facing behavior change in this\nrepository, update this `SKILL.md` in the same change so agent workflows stay\naligned with the compiled CLI.\n\n`gd` reuses reqwest system proxy behavior for `HTTP_PROXY`/`http_proxy`,\n`HTTPS_PROXY`/`https_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy`. TLS certificate verification is disabled by default for\nGitCode API calls.\n\n## Readiness\n\nSelect the newest usable `gd` before running workflows. Resolve bundled assets\nrelative to this skill directory. On Linux x64, check\n`assets/bin/linux-x86_64/gd`; on Windows x64, check\n`assets/bin/windows-x86_64/gd.exe`. Also check the `gd` binary found on `PATH`\nwith `command -v gd` on Unix or `where gd` on Windows.\n\nFor every candidate that exists and is executable, run `<candidate> --version`\nand parse the semver from output such as `gd 0.1.0`. Use the candidate with the\nhighest semver. If versions are equal, prefer the bundled binary. Ignore\ncandidates that cannot run or do not print a parseable `gd` version. If the\nselected binary is not on `PATH`, run it by absolute path or set `GD_BIN` and\nsubstitute `\"$GD_BIN\"` for `gd` in the examples below.\n\nSet `GD_BIN` to the selected path, then inspect version and authentication\nstate:\n\n```bash\n\"$GD_BIN\" --version\n\"$GD_BIN\" version check --json\n\"$GD_BIN\" auth status --json\n```\n\nOnly install online when no bundled or `PATH` binary is usable. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd version check --json\n```\n\nWhen falling back to GitHub Releases downloads, use the environment proxy\nrequired by the host network. Check or set `HTTPS_PROXY`/`https_proxy`,\n`HTTP_PROXY`/`http_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy` before running `curl`, `wget`, or another downloader.\n\nDo not install this skill by building `gd` from a local repository checkout.\nThe bundled binaries and online fallbacks should come from released CLI\nartifacts.\n\nFor temporary CI or end-to-end tests, prefer `GITCODE_TOKEN` in the process\nenvironment. For interactive token login, read the token from stdin and store it\nin the system keyring:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nNever print, commit, or persist personal access tokens, cookies, or private API\nresponses in repository files.\n\n## Core Workflows\n\nUse explicit repositories with `--repo owner/repo` when the current directory\ndoes not define a `gd` default repository. Add `--json` for machine-readable\noutput:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\ngd repo clone owner/repo\ngd repo create name --private --description \"demo\" --json\ngd repo fork owner/repo --json\ngd repo move owner/repo target-owner/new-name --json\ngd repo move owner/repo target-owner --name new-name --json\ngd repo sync-github coolplayagent/relay-gitcode-cli --org plm-cac --private --json\ngd repo sync-github git@github.com:owner/repo.git --repo target-org/repo --if-exists skip --json\ngd repo sync-github owner/repo --repo target-org/repo --method git-push --if-exists update --json\n```\n\n`gd repo move` moves a GitCode repository between users and organizations, or\nrenames it when the target owner is unchanged. Use a disposable repository for\nE2E checks:\n\n```bash\nGITCODE_TOKEN=... GD_E2E_SOURCE_REPO=owner/repo GD_E2E_TARGET_OWNER=target-owner GD_E2E_TARGET_NAME=temporary-name scripts/e2e-repo-move.sh\n```\n\n`gd repo sync-github` accepts a GitHub `owner/repo`, HTTPS URL, or SSH URL and\ncreates a GitCode repository with that GitHub repository as `import_url` by\ndefault.\nWithout `--org` or `--repo`, it imports into the authenticated GitCode user\nnamespace. Use `--org` for a GitCode organization and `--repo owner/name` for an\nexplicit target path. Existing targets are skipped by default. Use `--method\ngit-push` to create a regular GitCode repository and push GitHub branches and\ntags with Git instead of enabling Pull mirroring; this keeps the target writable\nfor GitCode Release creation. Use `--if-exists update` to push refs to an\nexisting regular target, or `--if-exists recreate` to delete and recreate the\ntarget.\n\nManage issues and pull requests with the GitCode-backed command surface:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n\ngd pr list --repo owner/repo --state open --base main --json\ngd pr view 1 --repo owner/repo --json\ngd pr create --repo owner/repo --title \"change\" --body \"details\" --base main --head feature --json\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\nUse `gd api` for GitCode API v5 endpoints that do not have first-class\nsubcommands:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\nManage GitCode Releases and migrate published GitHub Release assets into a\nGitCode Release when a GitCode repository mirrors GitHub source code:\n\n```bash\ngd release list --repo owner/repo --json\ngd release view v0.1.0 --repo owner/repo --json\ngd release create v0.1.0 --repo owner/repo --title \"v0.1.0\" --notes \"Release notes\" --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --tag v0.1.0 --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --all --dry-run --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --tag v0.1.0 --update-release=false --skip-existing-assets=false --json\n```\n\n`gd release migrate-github` reads GitHub Release metadata and uploaded assets,\nthen creates or updates GitCode Releases through GitCode Release APIs. It uses\n`GITHUB_TOKEN` when present for GitHub API reads, `GITCODE_TOKEN` or the system\nkeyring for GitCode writes, and skips existing GitCode assets with matching\nnames by default. Use `--update-release=false` to preserve existing GitCode\nRelease metadata and `--skip-existing-assets=false` to fail on duplicate asset\nnames.\n\n## Pipelines\n\nGitCode workflow commands use GitCode API credentials. OpenLibing gate commands\nuse separate OpenLibing GitCode OAuth credentials; they do not reuse\n`GITCODE_TOKEN`. Use `gd pipeline auth login` for browser OAuth, or set\n`GD_OPENLIBING_TOKEN` or `GD_OPENLIBING_COOKIE` for automation. Use the\nOpenLibing `--project-id`, not the GitCode repository id.\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n\ngd pipeline auth status --json\ngd pipeline config --project-id openlibing-project-id --json\ngd pipeline setup --project-id openlibing-project-id --repo owner/repo --language Rust --codecheck-rule-set default --json\ngd pipeline prs --project-id openlibing-project-id --repo owner/repo --state open --json\ngd pipeline checks --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-view --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-runs --project-id openlibing-project-id --pipeline-name codecheck --json\n```\n\n`gd pipeline checks` falls back to the OpenLibing CodeCheck task summary when\nthe CICD PR check endpoint is not readable. `gd pipeline setup\n--codecheck-rule-set` accepts either a rule-set name or a direct rule-set ID.\nFor setup failures on OpenLibing repository add/update, check the documented\nOpenLibing prerequisites before retrying: project administrator or equivalent\nproject approver role, repository recorded in Code Repository Management, PR\ntakeover enabled, CodeCheck language/rule set selected, GitCode public or robot\naccount repository access, and webhook configuration permission.\n\n## Troubleshooting\n\nIf a command fails, read the JSON response or the `gd:` error line before\nguessing hidden state. Check authentication, repository spelling, hostname, and\nAPI base first:\n\n```bash\ngd auth status --json\ngd repo view owner/repo --json\ngd api /user --json\ngd --api-base https://api.gitcode.com/api/v5 api /user --json\n```\n\nFor more command recipes, API automation patterns, and GitCode workflow YAML\nexamples, read `references/cli-workflows.md` and\n`references/gitcode-workflow-yml.md`.\n\nFile v0.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn7ftpbqzwq14ga3f5ms64h1yn84hc25\",\n  \"slug\": \"relay-gitcode-cli\",\n  \"version\": \"0.1.4\",\n  \"publishedAt\": 1779257599629\n}\n\nFile v0.1.4:references/cli-workflows.md\n\n# Relay GitCode CLI Workflows\n\n## Contents\n\n- [Installation and Authentication](#installation-and-authentication)\n- [Safe Automation Defaults](#safe-automation-defaults)\n- [Repository Workflows](#repository-workflows)\n- [Issue and Pull Request Workflows](#issue-and-pull-request-workflows)\n- [Search, SSH Keys, Labels, and Releases](#search-ssh-keys-labels-and-releases)\n- [Raw GitCode API Calls](#raw-gitcode-api-calls)\n- [GitCode Pipeline Workflows](#gitcode-pipeline-workflows)\n- [Workflow YAML References](#workflow-yaml-references)\n- [Out of Scope](#out-of-scope)\n\n## Installation and Authentication\n\nSelect the newest usable released `gd` binary before running workflows. Check\nthe bundled binary for the current platform, if present:\n`assets/bin/linux-x86_64/gd` on Linux x64 or\n`assets/bin/windows-x86_64/gd.exe` on Windows x64. Also check the `gd` binary\nfound on `PATH` with `command -v gd` on Unix or `where gd` on Windows.\n\nRun `<candidate> --version` for each candidate and parse the semver from output\nsuch as `gd 0.1.0`. Use the highest semver. If versions are equal, prefer the\nbundled binary. Ignore candidates that cannot run or do not print a parseable\n`gd` version. If the selected binary is not on `PATH`, run it by absolute path\nor set `GD_BIN` and substitute `\"$GD_BIN\"` for `gd` in examples.\n\nOnly install online when no bundled or `PATH` binary is usable. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd --version\ngd version check --json\n```\n\nWhen falling back to GitHub Releases downloads, use the environment proxy\nrequired by the host network. Check or set `HTTPS_PROXY`/`https_proxy`,\n`HTTP_PROXY`/`http_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy` before running `curl`, `wget`, or another downloader.\n\nDo not install from a local repository checkout as part of this skill workflow.\nThe bundled binaries and online fallbacks should come from released CLI\nartifacts.\n\nUse `GITCODE_TOKEN` for temporary automation and CI:\n\n```bash\nGITCODE_TOKEN=\"$GITCODE_TOKEN\" gd auth status --json\n```\n\nUse keyring-backed login for interactive local sessions:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nDo not write tokens to shell history, repository files, committed fixtures, or\nskill outputs. Do not include private API responses in docs or examples.\n\n## Safe Automation Defaults\n\n- Prefer `--json` for any output an agent will parse.\n- Prefer explicit `--repo owner/repo` rather than relying on local default\n  repository state.\n- Use `--hostname` for GitCode host overrides and `--api-base` for API base\n  overrides.\n- Keep page sizes bounded with `--limit`.\n- Read command help before using a subcommand in a new automation path.\n- Use `gd api` only for GitCode API v5 endpoints or another user-approved\n  GitCode-compatible API base.\n\n## Repository Workflows\n\nInspect repositories:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\n```\n\nClone with optional Git flags after `--`:\n\n```bash\ngd repo clone owner/repo\ngd repo clone owner/repo local-dir -- --depth 1\n```\n\nCreate or fork repositories:\n\n```bash\ngd repo create demo --private --description \"demo repository\" --json\ngd repo fork owner/repo --json\ngd repo move owner/repo target-owner/new-name --json\ngd repo move owner/repo target-owner --name new-name --json\ngd repo sync-github coolplayagent/relay-gitcode-cli --org plm-cac --private --json\ngd repo sync-github git@github.com:owner/repo.git --repo target-org/repo --if-exists skip --json\ngd repo sync-github owner/repo --repo target-org/repo --method git-push --if-exists update --json\n```\n\nUse `gd repo move` to transfer a GitCode repository between a user and an\norganization, between organizations, or back to a user namespace. Include a new\nrepository name as `target-owner/new-name` or pass `--name new-name`; if the\nowner is unchanged, the command only renames the repository.\n\nUse `gd repo sync-github` to create a GitCode repository from a GitHub\n`import_url` by default. The source accepts `owner/repo`, HTTPS, or SSH GitHub\nURLs. Omit `--org` and `--repo` to import into the authenticated GitCode user\nnamespace, pass `--org` for an organization, or pass `--repo owner/name` for an\nexplicit target path. Existing targets are skipped by default. Use `--method\ngit-push` to create a regular GitCode repository and push GitHub branches and\ntags with Git instead of enabling Pull mirroring; this keeps the target writable\nfor GitCode Release creation. Use `--if-exists update` to push refs to an\nexisting regular target, or `--if-exists recreate` to delete and recreate the\ntarget.\n\n## Issue and Pull Request Workflows\n\nList and inspect issues:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\n```\n\nCreate and comment on issues:\n\n```bash\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --label bug --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n```\n\nList and inspect pull requests:\n\n```bash\ngd pr list --repo owner/repo --state open --base main --limit 30 --json\ngd pr view 1 --repo owner/repo --json\n```\n\nCreate pull requests:\n\n```bash\ngd pr create \\\n  --repo owner/repo \\\n  --title \"change\" \\\n  --body \"details\" \\\n  --base main \\\n  --head feature \\\n  --assignee user \\\n  --label enhancement \\\n  --json\n```\n\nList, add, and reply to Pull Request review comments:\n\n```bash\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\n`gd mr` is a visible alias for `gd pr`. Prefer `gd pr` in reusable\ndocumentation unless the user specifically requests merge-request naming.\n\n## Search, SSH Keys, Labels, and Releases\n\nSearch GitCode resources:\n\n```bash\ngd search repos \"rust cli\" --limit 20 --json\ngd search issues \"repo:owner/repo bug\" --limit 20 --json\ngd search users \"alice\" --limit 20 --json\n```\n\nManage SSH keys:\n\n```bash\ngd ssh-key list --json\ngd ssh-key add ~/.ssh/id_ed25519.pub --title laptop --json\ngd ssh-key delete key-id --json\n```\n\nManage repository labels:\n\n```bash\ngd label list --repo owner/repo --json\ngd label create bug --repo owner/repo --color ff0000 --description \"Bug reports\" --json\ngd label edit bug --repo owner/repo --new-name defect --json\ngd label delete defect --repo owner/repo --json\n```\n\nInspect and create releases:\n\n```bash\ngd release list --repo owner/repo --json\ngd release view v0.1.0 --repo owner/repo --json\ngd release create v0.1.0 --repo owner/repo --title \"v0.1.0\" --notes \"Release notes\" --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --tag v0.1.0 --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --all --dry-run --json\ngd release migrate-github --repo owner/repo --github-repo source/repo --tag v0.1.0 --update-release=false --skip-existing-assets=false --json\n```\n\n`gd release migrate-github` is useful when a GitCode repository mirrors GitHub\nsource code but GitHub Release assets must be copied separately. The command\nuses `GITHUB_TOKEN` when present for GitHub reads and GitCode credentials for\nRelease creation and asset uploads. Existing GitCode assets with the same name\nare skipped by default. Use `--update-release=false` to preserve existing\nGitCode Release metadata and `--skip-existing-assets=false` to fail on duplicate\nasset names.\n\n## Raw GitCode API Calls\n\nUse `gd api` when the GitCode API supports an operation that does not yet have a\nfirst-class `gd` command:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues -X POST -f title=\"bug\" -f body=\"details\" --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\nField modes:\n\n- `-f/--raw-field key=value` sends string values.\n- `-F/--field key=value` parses `true`, `false`, `null`, integers, and floats.\n- `--input file.json` sends a request body from a file; `--input -` reads stdin.\n- `--include` prints HTTP status and headers before the body.\n- `--silent` suppresses response printing but still fails on non-success status.\n\n## GitCode Pipeline Workflows\n\nGitCode workflow commands operate against GitCode and reuse the normal `gd`\nauthentication path. Create or update workflow YAML and CodeCheck workflow files\nthrough the repository contents API:\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck \\\n  --repo owner/repo \\\n  --language SHELL \\\n  --access-token-secret CODECHECK_ACCESS_TOKEN \\\n  --json\n```\n\nThe generated CodeCheck workflow references the configured secret expression and\ndoes not commit a token value. It filters push and pull request events by the\nconfigured target branch, then passes the pull request source repository and\nbranch or the current push repository/ref to `codecheck-action@0.0.3`.\n\nRun, inspect, and control GitCode workflow runs:\n\n```bash\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --limit 20 --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --job-run-id job-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n```\n\n`gd pipeline log` prints raw log text by default. Add `--json` when callers need\nthe full response envelope.\n\nOpenLibing provides GitCode PR gate and CodeCheck status. Authenticate\nseparately from `GITCODE_TOKEN`:\n\n```bash\ngd pipeline auth login\ngd pipeline auth status --json\n```\n\nFor automation, provide `GD_OPENLIBING_TOKEN` or `GD_OPENLIBING_COOKIE`.\nOpenLibing commands require the OpenLibing project id:\n\n```bash\ngd pipeline config --project-id openlibing-project-id --json\ngd pipeline setup --project-id openlibing-project-id --repo owner/repo --language Rust --codecheck-rule-set default --json\ngd pipeline prs --project-id openlibing-project-id --repo owner/repo --state open --json\ngd pipeline checks --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-view --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-runs --project-id openlibing-project-id --pipeline-name codecheck --limit 20 --json\n```\n\n`gd pipeline checks` falls back to the OpenLibing CodeCheck task summary when\nthe CICD PR check endpoint is not readable. `gd pipeline setup\n--codecheck-rule-set` accepts either a rule-set name or a direct rule-set ID.\nFor setup failures on OpenLibing repository add/update, check the documented\nOpenLibing prerequisites before retrying: project administrator or equivalent\nproject approver role, repository recorded in Code Repository Management, PR\ntakeover enabled, CodeCheck language/rule set selected, GitCode public or robot\naccount repository access, and webhook configuration permission.\n\n## Workflow YAML References\n\nFor examples of `.gitcode/workflows/ci.yml` structure, event triggers, runners,\ncheckout steps, and language-specific CI templates, read\n`references/gitcode-workflow-yml.md`.\n\n## Out of Scope\n\nDo not use this skill for GitHub-only gh functionality unless GitCode has an\nequivalent API and the task can be completed through `gd` or `gd api`. Do not\nmanage GitHub Actions workflows, GitHub projects, gists, codespaces, GitHub\nrulesets, extensions, or Copilot through this skill.\n\nFile v0.1.4:references/gitcode-workflow-yml.md\n\n# GitCode Workflow YAML Examples\n\nUse this reference when creating or updating GitCode Pipeline workflow files\nunder `.gitcode/workflows`, especially `.gitcode/workflows/ci.yml`.\n\nOfficial GitCode Pipeline documentation describes workflows as YAML files stored\nunder `.gitcode/workflows`. A workflow has trigger events, one or more jobs, and\nordered steps. Jobs run on a GitCode runner such as `euleros-2.10.1`, and steps\ncan either run shell commands or use reusable actions such as\n`checkout-action@0.0.1`, `setup-node@0.0.1`, `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1`.\n\nSources:\n\n- <https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/>\n- <https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/>\n\n## Style\n\n- Store workflow files in `.gitcode/workflows`.\n- Use `ci.yml` for the main continuous-integration workflow unless the project\n  already has a clearer local naming convention.\n- Keep YAML indentation at two spaces.\n- Use a clear top-level `name`.\n- Prefer explicit branch filters for `push` and `pull_request`.\n- GitCode documents manual triggers as a pipeline capability, but the public\n  intro page does not show a YAML key for that trigger. Do not add\n  `workflow_dispatch` to reusable examples unless the target GitCode project has\n  already confirmed that syntax.\n- Start each job by checking out the repository with `checkout-action@0.0.1`.\n- Run repository commands from `repo_workspace` after checkout.\n- Keep secrets in GitCode project secrets or environment configuration, not in\n  workflow files.\n- Keep GitCode workflow examples separate from GitHub Actions examples. Do not\n  use `actions/checkout`, `ubuntu-latest`, or GitHub-only workflow surfaces.\n- GitCode documents `setup-java@0.0.1`, `setup-python@0.0.1`, and\n  `setup-go@0.0.1` as available built-in actions, but this reference does not\n  guess their `with` inputs without action-specific docs.\n\n## Minimal CI\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  build:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Inspect workspace\n        run: |\n          cd repo_workspace\n          pwd\n          ls\n```\n\n## CodeCheck\n\nUse `gd pipeline codecheck` to generate this workflow so the personal access\ntoken is referenced through a project secret instead of committed as a literal\nvalue:\n\n```bash\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\n```\n\nThe generated workflow uses `codecheck-action@0.0.3` with `repo_url`,\n`branch`, `rule_sets`, and `access_token` inputs as documented by GitCode\nCodeCheck. Pull request runs pass the PR source repository and branch to\nCodeCheck; push runs pass the configured repository URL and current ref.\n\n## Rust CLI CI\n\nUse this shape for Rust command line projects. It installs stable Rust inside\nthe clean EulerOS runner, then runs the same local gate used by this repository.\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  rust:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Install Rust stable\n        run: |\n          cd repo_workspace\n          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable\n          \"$HOME/.cargo/bin/rustup\" component add rustfmt clippy\n      - name: Format gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" fmt --all -- --check\n      - name: Clippy gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" clippy --all-targets --all-features -- -D warnings\n      - name: Test suite\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" test --all-targets --all-features\n      - name: Build\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" build --all-targets --all-features\n```\n\n## Node CI\n\nThis follows the GitCode documentation pattern for `setup-node@0.0.1`.\n\n```yaml\nname: node-ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  node:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Use Node.js\n        uses: setup-node@0.0.1\n        with:\n          node-version: '20.10.0'\n      - run: cd repo_workspace && npm ci\n      - run: cd repo_workspace && npm run build --if-present\n      - run: cd repo_workspace && npm test\n```\n\n## Other Language Actions\n\nThe public GitCode Pipeline intro lists `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1` as built-in actions. It does not show\ntheir input names. When writing Java, Python, or Go templates, use the action\ndocumentation or a known-good workflow from the target project before adding\n`with` keys.\n\nFile v0.1.4:agents/openai.yaml\n\ninterface:\n  display_name: \"Relay GitCode CLI\"\n  short_description: \"Use gd for GitCode CLI workflows\"\n  default_prompt: \"Use $relay-gitcode-cli to inspect a GitCode repository and manage pull requests with gd.\"\n\nArchive v0.1.3: 5 files, 9276 bytes\n\nFiles: agents/openai.yaml (212b), references/cli-workflows.md (9464b), references/gitcode-workflow-yml.md (4901b), SKILL.md (7618b), _meta.json (136b)\n\nFile v0.1.3:SKILL.md\n\n---\nname: relay-gitcode-cli\ndescription: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, GitCode Pipeline operations, raw API calls, JSON automation, version checks, and shell completion. Use when an agent should operate GitCode by running local gd commands. Do not use this skill for GitHub-only gh surfaces unless GitCode exposes an equivalent API through gd or gd api.\nmetadata:\n  openclaw:\n    skillKey: relay-gitcode-cli\n    homepage: https://github.com/coolplayagent/relay-gitcode-cli\n---\n\n# Relay GitCode CLI\n\n## Workflow\n\nUse the selected `gd` binary as the GitCode control surface. Prefer `--json`\nfor automation and inspect command help before exposing unfamiliar operations:\n\n```bash\ngd --help\ngd pr create --help\ngd api --help\n```\n\nKeep behavior GitCode-specific. Do not introduce GitHub-only command surfaces\nsuch as gists, codespaces, projects, GitHub Actions, rulesets, extensions, or\nCopilot unless GitCode exposes equivalent API behavior and the task can be done\nthrough `gd api`.\n\nWhen `gd` commands, flags, examples, or user-facing behavior change in this\nrepository, update this `SKILL.md` in the same change so agent workflows stay\naligned with the compiled CLI.\n\n`gd` reuses reqwest system proxy behavior for `HTTP_PROXY`/`http_proxy`,\n`HTTPS_PROXY`/`https_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy`. TLS certificate verification is disabled by default for\nGitCode API calls.\n\n## Readiness\n\nSelect the newest usable `gd` before running workflows. Resolve bundled assets\nrelative to this skill directory. On Linux x64, check\n`assets/bin/linux-x86_64/gd`; on Windows x64, check\n`assets/bin/windows-x86_64/gd.exe`. Also check the `gd` binary found on `PATH`\nwith `command -v gd` on Unix or `where gd` on Windows.\n\nFor every candidate that exists and is executable, run `<candidate> --version`\nand parse the semver from output such as `gd 0.1.0`. Use the candidate with the\nhighest semver. If versions are equal, prefer the bundled binary. Ignore\ncandidates that cannot run or do not print a parseable `gd` version. If the\nselected binary is not on `PATH`, run it by absolute path or set `GD_BIN` and\nsubstitute `\"$GD_BIN\"` for `gd` in the examples below.\n\nSet `GD_BIN` to the selected path, then inspect version and authentication\nstate:\n\n```bash\n\"$GD_BIN\" --version\n\"$GD_BIN\" version check --json\n\"$GD_BIN\" auth status --json\n```\n\nOnly install online when no bundled or `PATH` binary is usable. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd version check --json\n```\n\nWhen falling back to GitHub Releases downloads, use the environment proxy\nrequired by the host network. Check or set `HTTPS_PROXY`/`https_proxy`,\n`HTTP_PROXY`/`http_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy` before running `curl`, `wget`, or another downloader.\n\nDo not install this skill by building `gd` from a local repository checkout.\nThe bundled binaries and online fallbacks should come from released CLI\nartifacts.\n\nFor temporary CI or end-to-end tests, prefer `GITCODE_TOKEN` in the process\nenvironment. For interactive token login, read the token from stdin and store it\nin the system keyring:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nNever print, commit, or persist personal access tokens, cookies, or private API\nresponses in repository files.\n\n## Core Workflows\n\nUse explicit repositories with `--repo owner/repo` when the current directory\ndoes not define a `gd` default repository. Add `--json` for machine-readable\noutput:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\ngd repo clone owner/repo\ngd repo create name --private --description \"demo\" --json\ngd repo fork owner/repo --json\n```\n\nManage issues and pull requests with the GitCode-backed command surface:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n\ngd pr list --repo owner/repo --state open --base main --json\ngd pr view 1 --repo owner/repo --json\ngd pr create --repo owner/repo --title \"change\" --body \"details\" --base main --head feature --json\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\nUse `gd api` for GitCode API v5 endpoints that do not have first-class\nsubcommands:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\n## Pipelines\n\nGitCode workflow commands use GitCode API credentials. OpenLibing gate commands\nuse separate OpenLibing GitCode OAuth credentials; they do not reuse\n`GITCODE_TOKEN`. Use `gd pipeline auth login` for browser OAuth, or set\n`GD_OPENLIBING_TOKEN` or `GD_OPENLIBING_COOKIE` for automation. Use the\nOpenLibing `--project-id`, not the GitCode repository id.\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n\ngd pipeline auth status --json\ngd pipeline config --project-id openlibing-project-id --json\ngd pipeline setup --project-id openlibing-project-id --repo owner/repo --language Rust --codecheck-rule-set default --json\ngd pipeline prs --project-id openlibing-project-id --repo owner/repo --state open --json\ngd pipeline checks --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-view --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-runs --project-id openlibing-project-id --pipeline-name codecheck --json\n```\n\n`gd pipeline checks` falls back to the OpenLibing CodeCheck task summary when\nthe CICD PR check endpoint is not readable. `gd pipeline setup\n--codecheck-rule-set` accepts either a rule-set name or a direct rule-set ID.\nFor setup failures on OpenLibing repository add/update, check the documented\nOpenLibing prerequisites before retrying: project administrator or equivalent\nproject approver role, repository recorded in Code Repository Management, PR\ntakeover enabled, CodeCheck language/rule set selected, GitCode public or robot\naccount repository access, and webhook configuration permission.\n\n## Troubleshooting\n\nIf a command fails, read the JSON response or the `gd:` error line before\nguessing hidden state. Check authentication, repository spelling, hostname, and\nAPI base first:\n\n```bash\ngd auth status --json\ngd repo view owner/repo --json\ngd api /user --json\ngd --api-base https://api.gitcode.com/api/v5 api /user --json\n```\n\nFor more command recipes, API automation patterns, and GitCode workflow YAML\nexamples, read `references/cli-workflows.md` and\n`references/gitcode-workflow-yml.md`.\n\nFile v0.1.3:_meta.json\n\n{\n  \"ownerId\": \"kn7ftpbqzwq14ga3f5ms64h1yn84hc25\",\n  \"slug\": \"relay-gitcode-cli\",\n  \"version\": \"0.1.3\",\n  \"publishedAt\": 1779244214409\n}\n\nFile v0.1.3:references/cli-workflows.md\n\n# Relay GitCode CLI Workflows\n\n## Contents\n\n- [Installation and Authentication](#installation-and-authentication)\n- [Safe Automation Defaults](#safe-automation-defaults)\n- [Repository Workflows](#repository-workflows)\n- [Issue and Pull Request Workflows](#issue-and-pull-request-workflows)\n- [Search, SSH Keys, Labels, and Releases](#search-ssh-keys-labels-and-releases)\n- [Raw GitCode API Calls](#raw-gitcode-api-calls)\n- [GitCode Pipeline Workflows](#gitcode-pipeline-workflows)\n- [Workflow YAML References](#workflow-yaml-references)\n- [Out of Scope](#out-of-scope)\n\n## Installation and Authentication\n\nSelect the newest usable released `gd` binary before running workflows. Check\nthe bundled binary for the current platform, if present:\n`assets/bin/linux-x86_64/gd` on Linux x64 or\n`assets/bin/windows-x86_64/gd.exe` on Windows x64. Also check the `gd` binary\nfound on `PATH` with `command -v gd` on Unix or `where gd` on Windows.\n\nRun `<candidate> --version` for each candidate and parse the semver from output\nsuch as `gd 0.1.0`. Use the highest semver. If versions are equal, prefer the\nbundled binary. Ignore candidates that cannot run or do not print a parseable\n`gd` version. If the selected binary is not on `PATH`, run it by absolute path\nor set `GD_BIN` and substitute `\"$GD_BIN\"` for `gd` in examples.\n\nOnly install online when no bundled or `PATH` binary is usable. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd --version\ngd version check --json\n```\n\nWhen falling back to GitHub Releases downloads, use the environment proxy\nrequired by the host network. Check or set `HTTPS_PROXY`/`https_proxy`,\n`HTTP_PROXY`/`http_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy` before running `curl`, `wget`, or another downloader.\n\nDo not install from a local repository checkout as part of this skill workflow.\nThe bundled binaries and online fallbacks should come from released CLI\nartifacts.\n\nUse `GITCODE_TOKEN` for temporary automation and CI:\n\n```bash\nGITCODE_TOKEN=\"$GITCODE_TOKEN\" gd auth status --json\n```\n\nUse keyring-backed login for interactive local sessions:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nDo not write tokens to shell history, repository files, committed fixtures, or\nskill outputs. Do not include private API responses in docs or examples.\n\n## Safe Automation Defaults\n\n- Prefer `--json` for any output an agent will parse.\n- Prefer explicit `--repo owner/repo` rather than relying on local default\n  repository state.\n- Use `--hostname` for GitCode host overrides and `--api-base` for API base\n  overrides.\n- Keep page sizes bounded with `--limit`.\n- Read command help before using a subcommand in a new automation path.\n- Use `gd api` only for GitCode API v5 endpoints or another user-approved\n  GitCode-compatible API base.\n\n## Repository Workflows\n\nInspect repositories:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\n```\n\nClone with optional Git flags after `--`:\n\n```bash\ngd repo clone owner/repo\ngd repo clone owner/repo local-dir -- --depth 1\n```\n\nCreate or fork repositories:\n\n```bash\ngd repo create demo --private --description \"demo repository\" --json\ngd repo fork owner/repo --json\n```\n\n## Issue and Pull Request Workflows\n\nList and inspect issues:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\n```\n\nCreate and comment on issues:\n\n```bash\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --label bug --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n```\n\nList and inspect pull requests:\n\n```bash\ngd pr list --repo owner/repo --state open --base main --limit 30 --json\ngd pr view 1 --repo owner/repo --json\n```\n\nCreate pull requests:\n\n```bash\ngd pr create \\\n  --repo owner/repo \\\n  --title \"change\" \\\n  --body \"details\" \\\n  --base main \\\n  --head feature \\\n  --assignee user \\\n  --label enhancement \\\n  --json\n```\n\nList, add, and reply to Pull Request review comments:\n\n```bash\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\n`gd mr` is a visible alias for `gd pr`. Prefer `gd pr` in reusable\ndocumentation unless the user specifically requests merge-request naming.\n\n## Search, SSH Keys, Labels, and Releases\n\nSearch GitCode resources:\n\n```bash\ngd search repos \"rust cli\" --limit 20 --json\ngd search issues \"repo:owner/repo bug\" --limit 20 --json\ngd search users \"alice\" --limit 20 --json\n```\n\nManage SSH keys:\n\n```bash\ngd ssh-key list --json\ngd ssh-key add ~/.ssh/id_ed25519.pub --title laptop --json\ngd ssh-key delete key-id --json\n```\n\nManage repository labels:\n\n```bash\ngd label list --repo owner/repo --json\ngd label create bug --repo owner/repo --color ff0000 --description \"Bug reports\" --json\ngd label edit bug --repo owner/repo --new-name defect --json\ngd label delete defect --repo owner/repo --json\n```\n\nInspect and create releases:\n\n```bash\ngd release list --repo owner/repo --json\ngd release view v0.1.0 --repo owner/repo --json\ngd release create v0.1.0 --repo owner/repo --title \"v0.1.0\" --notes \"Release notes\" --json\n```\n\n## Raw GitCode API Calls\n\nUse `gd api` when the GitCode API supports an operation that does not yet have a\nfirst-class `gd` command:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues -X POST -f title=\"bug\" -f body=\"details\" --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\nField modes:\n\n- `-f/--raw-field key=value` sends string values.\n- `-F/--field key=value` parses `true`, `false`, `null`, integers, and floats.\n- `--input file.json` sends a request body from a file; `--input -` reads stdin.\n- `--include` prints HTTP status and headers before the body.\n- `--silent` suppresses response printing but still fails on non-success status.\n\n## GitCode Pipeline Workflows\n\nGitCode workflow commands operate against GitCode and reuse the normal `gd`\nauthentication path. Create or update workflow YAML and CodeCheck workflow files\nthrough the repository contents API:\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck \\\n  --repo owner/repo \\\n  --language SHELL \\\n  --access-token-secret CODECHECK_ACCESS_TOKEN \\\n  --json\n```\n\nThe generated CodeCheck workflow references the configured secret expression and\ndoes not commit a token value. It filters push and pull request events by the\nconfigured target branch, then passes the pull request source repository and\nbranch or the current push repository/ref to `codecheck-action@0.0.3`.\n\nRun, inspect, and control GitCode workflow runs:\n\n```bash\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --limit 20 --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --job-run-id job-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n```\n\n`gd pipeline log` prints raw log text by default. Add `--json` when callers need\nthe full response envelope.\n\nOpenLibing provides GitCode PR gate and CodeCheck status. Authenticate\nseparately from `GITCODE_TOKEN`:\n\n```bash\ngd pipeline auth login\ngd pipeline auth status --json\n```\n\nFor automation, provide `GD_OPENLIBING_TOKEN` or `GD_OPENLIBING_COOKIE`.\nOpenLibing commands require the OpenLibing project id:\n\n```bash\ngd pipeline config --project-id openlibing-project-id --json\ngd pipeline setup --project-id openlibing-project-id --repo owner/repo --language Rust --codecheck-rule-set default --json\ngd pipeline prs --project-id openlibing-project-id --repo owner/repo --state open --json\ngd pipeline checks --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-view --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-runs --project-id openlibing-project-id --pipeline-name codecheck --limit 20 --json\n```\n\n`gd pipeline checks` falls back to the OpenLibing CodeCheck task summary when\nthe CICD PR check endpoint is not readable. `gd pipeline setup\n--codecheck-rule-set` accepts either a rule-set name or a direct rule-set ID.\nFor setup failures on OpenLibing repository add/update, check the documented\nOpenLibing prerequisites before retrying: project administrator or equivalent\nproject approver role, repository recorded in Code Repository Management, PR\ntakeover enabled, CodeCheck language/rule set selected, GitCode public or robot\naccount repository access, and webhook configuration permission.\n\n## Workflow YAML References\n\nFor examples of `.gitcode/workflows/ci.yml` structure, event triggers, runners,\ncheckout steps, and language-specific CI templates, read\n`references/gitcode-workflow-yml.md`.\n\n## Out of Scope\n\nDo not use this skill for GitHub-only gh functionality unless GitCode has an\nequivalent API and the task can be completed through `gd` or `gd api`. Do not\nmanage GitHub Actions workflows, GitHub projects, gists, codespaces, GitHub\nrulesets, extensions, or Copilot through this skill.\n\nFile v0.1.3:references/gitcode-workflow-yml.md\n\n# GitCode Workflow YAML Examples\n\nUse this reference when creating or updating GitCode Pipeline workflow files\nunder `.gitcode/workflows`, especially `.gitcode/workflows/ci.yml`.\n\nOfficial GitCode Pipeline documentation describes workflows as YAML files stored\nunder `.gitcode/workflows`. A workflow has trigger events, one or more jobs, and\nordered steps. Jobs run on a GitCode runner such as `euleros-2.10.1`, and steps\ncan either run shell commands or use reusable actions such as\n`checkout-action@0.0.1`, `setup-node@0.0.1`, `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1`.\n\nSources:\n\n- <https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/>\n- <https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/>\n\n## Style\n\n- Store workflow files in `.gitcode/workflows`.\n- Use `ci.yml` for the main continuous-integration workflow unless the project\n  already has a clearer local naming convention.\n- Keep YAML indentation at two spaces.\n- Use a clear top-level `name`.\n- Prefer explicit branch filters for `push` and `pull_request`.\n- GitCode documents manual triggers as a pipeline capability, but the public\n  intro page does not show a YAML key for that trigger. Do not add\n  `workflow_dispatch` to reusable examples unless the target GitCode project has\n  already confirmed that syntax.\n- Start each job by checking out the repository with `checkout-action@0.0.1`.\n- Run repository commands from `repo_workspace` after checkout.\n- Keep secrets in GitCode project secrets or environment configuration, not in\n  workflow files.\n- Keep GitCode workflow examples separate from GitHub Actions examples. Do not\n  use `actions/checkout`, `ubuntu-latest`, or GitHub-only workflow surfaces.\n- GitCode documents `setup-java@0.0.1`, `setup-python@0.0.1`, and\n  `setup-go@0.0.1` as available built-in actions, but this reference does not\n  guess their `with` inputs without action-specific docs.\n\n## Minimal CI\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  build:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Inspect workspace\n        run: |\n          cd repo_workspace\n          pwd\n          ls\n```\n\n## CodeCheck\n\nUse `gd pipeline codecheck` to generate this workflow so the personal access\ntoken is referenced through a project secret instead of committed as a literal\nvalue:\n\n```bash\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\n```\n\nThe generated workflow uses `codecheck-action@0.0.3` with `repo_url`,\n`branch`, `rule_sets`, and `access_token` inputs as documented by GitCode\nCodeCheck. Pull request runs pass the PR source repository and branch to\nCodeCheck; push runs pass the configured repository URL and current ref.\n\n## Rust CLI CI\n\nUse this shape for Rust command line projects. It installs stable Rust inside\nthe clean EulerOS runner, then runs the same local gate used by this repository.\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  rust:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Install Rust stable\n        run: |\n          cd repo_workspace\n          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable\n          \"$HOME/.cargo/bin/rustup\" component add rustfmt clippy\n      - name: Format gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" fmt --all -- --check\n      - name: Clippy gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" clippy --all-targets --all-features -- -D warnings\n      - name: Test suite\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" test --all-targets --all-features\n      - name: Build\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" build --all-targets --all-features\n```\n\n## Node CI\n\nThis follows the GitCode documentation pattern for `setup-node@0.0.1`.\n\n```yaml\nname: node-ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  node:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Use Node.js\n        uses: setup-node@0.0.1\n        with:\n          node-version: '20.10.0'\n      - run: cd repo_workspace && npm ci\n      - run: cd repo_workspace && npm run build --if-present\n      - run: cd repo_workspace && npm test\n```\n\n## Other Language Actions\n\nThe public GitCode Pipeline intro lists `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1` as built-in actions. It does not show\ntheir input names. When writing Java, Python, or Go templates, use the action\ndocumentation or a known-good workflow from the target project before adding\n`with` keys.\n\nFile v0.1.3:agents/openai.yaml\n\ninterface:\n  display_name: \"Relay GitCode CLI\"\n  short_description: \"Use gd for GitCode CLI workflows\"\n  default_prompt: \"Use $relay-gitcode-cli to inspect a GitCode repository and manage pull requests with gd.\"\n\nArchive v0.1.2: 5 files, 8394 bytes\n\nFiles: agents/openai.yaml (212b), references/cli-workflows.md (8447b), references/gitcode-workflow-yml.md (4901b), SKILL.md (6560b), _meta.json (136b)\n\nFile v0.1.2:SKILL.md\n\n---\nname: relay-gitcode-cli\ndescription: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, GitCode Pipeline operations, raw API calls, JSON automation, version checks, and shell completion. Use when an agent should operate GitCode by running local gd commands. Do not use this skill for GitHub-only gh surfaces unless GitCode exposes an equivalent API through gd or gd api.\nmetadata:\n  openclaw:\n    skillKey: relay-gitcode-cli\n    homepage: https://github.com/coolplayagent/relay-gitcode-cli\n---\n\n# Relay GitCode CLI\n\n## Workflow\n\nUse the compiled `gd` binary as the GitCode control surface. Prefer `--json`\nfor automation and inspect command help before exposing unfamiliar operations:\n\n```bash\ngd --help\ngd pr create --help\ngd api --help\n```\n\nKeep behavior GitCode-specific. Do not introduce GitHub-only command surfaces\nsuch as gists, codespaces, projects, GitHub Actions, rulesets, extensions, or\nCopilot unless GitCode exposes equivalent API behavior and the task can be done\nthrough `gd api`.\n\nWhen `gd` commands, flags, examples, or user-facing behavior change in this\nrepository, update this `SKILL.md` in the same change so agent workflows stay\naligned with the compiled CLI.\n\n`gd` reuses reqwest system proxy behavior for `HTTP_PROXY`/`http_proxy`,\n`HTTPS_PROXY`/`https_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy`. TLS certificate verification is disabled by default for\nGitCode API calls.\n\n## Readiness\n\nCheck whether `gd` exists, then inspect version and authentication state:\n\n```bash\ncommand -v gd\ngd --version\ngd version check --json\ngd auth status --json\n```\n\nFor online install or upgrades, use a released artifact. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd version check --json\n```\n\nDo not install this skill by building `gd` from a local repository checkout.\nThe skill is published independently and should point agents at released CLI\nartifacts.\n\nFor temporary CI or end-to-end tests, prefer `GITCODE_TOKEN` in the process\nenvironment. For interactive token login, read the token from stdin and store it\nin the system keyring:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nNever print, commit, or persist personal access tokens, cookies, or private API\nresponses in repository files.\n\n## Core Workflows\n\nUse explicit repositories with `--repo owner/repo` when the current directory\ndoes not define a `gd` default repository. Add `--json` for machine-readable\noutput:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\ngd repo clone owner/repo\ngd repo create name --private --description \"demo\" --json\ngd repo fork owner/repo --json\n```\n\nManage issues and pull requests with the GitCode-backed command surface:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n\ngd pr list --repo owner/repo --state open --base main --json\ngd pr view 1 --repo owner/repo --json\ngd pr create --repo owner/repo --title \"change\" --body \"details\" --base main --head feature --json\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\nUse `gd api` for GitCode API v5 endpoints that do not have first-class\nsubcommands:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\n## Pipelines\n\nGitCode workflow commands use GitCode API credentials. OpenLibing gate commands\nuse separate OpenLibing GitCode OAuth credentials; they do not reuse\n`GITCODE_TOKEN`. Use `gd pipeline auth login` for browser OAuth, or set\n`GD_OPENLIBING_TOKEN` or `GD_OPENLIBING_COOKIE` for automation. Use the\nOpenLibing `--project-id`, not the GitCode repository id.\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n\ngd pipeline auth status --json\ngd pipeline config --project-id openlibing-project-id --json\ngd pipeline setup --project-id openlibing-project-id --repo owner/repo --language Rust --codecheck-rule-set default --json\ngd pipeline prs --project-id openlibing-project-id --repo owner/repo --state open --json\ngd pipeline checks --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-view --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-runs --project-id openlibing-project-id --pipeline-name codecheck --json\n```\n\n`gd pipeline checks` falls back to the OpenLibing CodeCheck task summary when\nthe CICD PR check endpoint is not readable. `gd pipeline setup\n--codecheck-rule-set` accepts either a rule-set name or a direct rule-set ID.\nFor setup failures on OpenLibing repository add/update, check the documented\nOpenLibing prerequisites before retrying: project administrator or equivalent\nproject approver role, repository recorded in Code Repository Management, PR\ntakeover enabled, CodeCheck language/rule set selected, GitCode public or robot\naccount repository access, and webhook configuration permission.\n\n## Troubleshooting\n\nIf a command fails, read the JSON response or the `gd:` error line before\nguessing hidden state. Check authentication, repository spelling, hostname, and\nAPI base first:\n\n```bash\ngd auth status --json\ngd repo view owner/repo --json\ngd api /user --json\ngd --api-base https://api.gitcode.com/api/v5 api /user --json\n```\n\nFor more command recipes, API automation patterns, and GitCode workflow YAML\nexamples, read `references/cli-workflows.md` and\n`references/gitcode-workflow-yml.md`.\n\nFile v0.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn7ftpbqzwq14ga3f5ms64h1yn84hc25\",\n  \"slug\": \"relay-gitcode-cli\",\n  \"version\": \"0.1.2\",\n  \"publishedAt\": 1779204014824\n}\n\nFile v0.1.2:references/cli-workflows.md\n\n# Relay GitCode CLI Workflows\n\n## Contents\n\n- [Installation and Authentication](#installation-and-authentication)\n- [Safe Automation Defaults](#safe-automation-defaults)\n- [Repository Workflows](#repository-workflows)\n- [Issue and Pull Request Workflows](#issue-and-pull-request-workflows)\n- [Search, SSH Keys, Labels, and Releases](#search-ssh-keys-labels-and-releases)\n- [Raw GitCode API Calls](#raw-gitcode-api-calls)\n- [GitCode Pipeline Workflows](#gitcode-pipeline-workflows)\n- [Workflow YAML References](#workflow-yaml-references)\n- [Out of Scope](#out-of-scope)\n\n## Installation and Authentication\n\nInstall and upgrade from released artifacts. Prefer the Rust package first and\nGitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd --version\ngd version check --json\n```\n\nDo not install from a local repository checkout as part of this skill workflow.\nThe skill is independently published and should use the released `gd` CLI.\n\nUse `GITCODE_TOKEN` for temporary automation and CI:\n\n```bash\nGITCODE_TOKEN=\"$GITCODE_TOKEN\" gd auth status --json\n```\n\nUse keyring-backed login for interactive local sessions:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nDo not write tokens to shell history, repository files, committed fixtures, or\nskill outputs. Do not include private API responses in docs or examples.\n\n## Safe Automation Defaults\n\n- Prefer `--json` for any output an agent will parse.\n- Prefer explicit `--repo owner/repo` rather than relying on local default\n  repository state.\n- Use `--hostname` for GitCode host overrides and `--api-base` for API base\n  overrides.\n- Keep page sizes bounded with `--limit`.\n- Read command help before using a subcommand in a new automation path.\n- Use `gd api` only for GitCode API v5 endpoints or another user-approved\n  GitCode-compatible API base.\n\n## Repository Workflows\n\nInspect repositories:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\n```\n\nClone with optional Git flags after `--`:\n\n```bash\ngd repo clone owner/repo\ngd repo clone owner/repo local-dir -- --depth 1\n```\n\nCreate or fork repositories:\n\n```bash\ngd repo create demo --private --description \"demo repository\" --json\ngd repo fork owner/repo --json\n```\n\n## Issue and Pull Request Workflows\n\nList and inspect issues:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\n```\n\nCreate and comment on issues:\n\n```bash\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --label bug --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n```\n\nList and inspect pull requests:\n\n```bash\ngd pr list --repo owner/repo --state open --base main --limit 30 --json\ngd pr view 1 --repo owner/repo --json\n```\n\nCreate pull requests:\n\n```bash\ngd pr create \\\n  --repo owner/repo \\\n  --title \"change\" \\\n  --body \"details\" \\\n  --base main \\\n  --head feature \\\n  --assignee user \\\n  --label enhancement \\\n  --json\n```\n\nList, add, and reply to Pull Request review comments:\n\n```bash\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\n`gd mr` is a visible alias for `gd pr`. Prefer `gd pr` in reusable\ndocumentation unless the user specifically requests merge-request naming.\n\n## Search, SSH Keys, Labels, and Releases\n\nSearch GitCode resources:\n\n```bash\ngd search repos \"rust cli\" --limit 20 --json\ngd search issues \"repo:owner/repo bug\" --limit 20 --json\ngd search users \"alice\" --limit 20 --json\n```\n\nManage SSH keys:\n\n```bash\ngd ssh-key list --json\ngd ssh-key add ~/.ssh/id_ed25519.pub --title laptop --json\ngd ssh-key delete key-id --json\n```\n\nManage repository labels:\n\n```bash\ngd label list --repo owner/repo --json\ngd label create bug --repo owner/repo --color ff0000 --description \"Bug reports\" --json\ngd label edit bug --repo owner/repo --new-name defect --json\ngd label delete defect --repo owner/repo --json\n```\n\nInspect and create releases:\n\n```bash\ngd release list --repo owner/repo --json\ngd release view v0.1.0 --repo owner/repo --json\ngd release create v0.1.0 --repo owner/repo --title \"v0.1.0\" --notes \"Release notes\" --json\n```\n\n## Raw GitCode API Calls\n\nUse `gd api` when the GitCode API supports an operation that does not yet have a\nfirst-class `gd` command:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues -X POST -f title=\"bug\" -f body=\"details\" --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\nField modes:\n\n- `-f/--raw-field key=value` sends string values.\n- `-F/--field key=value` parses `true`, `false`, `null`, integers, and floats.\n- `--input file.json` sends a request body from a file; `--input -` reads stdin.\n- `--include` prints HTTP status and headers before the body.\n- `--silent` suppresses response printing but still fails on non-success status.\n\n## GitCode Pipeline Workflows\n\nGitCode workflow commands operate against GitCode and reuse the normal `gd`\nauthentication path. Create or update workflow YAML and CodeCheck workflow files\nthrough the repository contents API:\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck \\\n  --repo owner/repo \\\n  --language SHELL \\\n  --access-token-secret CODECHECK_ACCESS_TOKEN \\\n  --json\n```\n\nThe generated CodeCheck workflow references the configured secret expression and\ndoes not commit a token value. It filters push and pull request events by the\nconfigured target branch, then passes the pull request source repository and\nbranch or the current push repository/ref to `codecheck-action@0.0.3`.\n\nRun, inspect, and control GitCode workflow runs:\n\n```bash\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --limit 20 --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --job-run-id job-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n```\n\n`gd pipeline log` prints raw log text by default. Add `--json` when callers need\nthe full response envelope.\n\nOpenLibing provides GitCode PR gate and CodeCheck status. Authenticate\nseparately from `GITCODE_TOKEN`:\n\n```bash\ngd pipeline auth login\ngd pipeline auth status --json\n```\n\nFor automation, provide `GD_OPENLIBING_TOKEN` or `GD_OPENLIBING_COOKIE`.\nOpenLibing commands require the OpenLibing project id:\n\n```bash\ngd pipeline config --project-id openlibing-project-id --json\ngd pipeline setup --project-id openlibing-project-id --repo owner/repo --language Rust --codecheck-rule-set default --json\ngd pipeline prs --project-id openlibing-project-id --repo owner/repo --state open --json\ngd pipeline checks --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-view --project-id openlibing-project-id --repo owner/repo --pr 1 --json\ngd pipeline gate-runs --project-id openlibing-project-id --pipeline-name codecheck --limit 20 --json\n```\n\n`gd pipeline checks` falls back to the OpenLibing CodeCheck task summary when\nthe CICD PR check endpoint is not readable. `gd pipeline setup\n--codecheck-rule-set` accepts either a rule-set name or a direct rule-set ID.\nFor setup failures on OpenLibing repository add/update, check the documented\nOpenLibing prerequisites before retrying: project administrator or equivalent\nproject approver role, repository recorded in Code Repository Management, PR\ntakeover enabled, CodeCheck language/rule set selected, GitCode public or robot\naccount repository access, and webhook configuration permission.\n\n## Workflow YAML References\n\nFor examples of `.gitcode/workflows/ci.yml` structure, event triggers, runners,\ncheckout steps, and language-specific CI templates, read\n`references/gitcode-workflow-yml.md`.\n\n## Out of Scope\n\nDo not use this skill for GitHub-only gh functionality unless GitCode has an\nequivalent API and the task can be completed through `gd` or `gd api`. Do not\nmanage GitHub Actions workflows, GitHub projects, gists, codespaces, GitHub\nrulesets, extensions, or Copilot through this skill.\n\nFile v0.1.2:references/gitcode-workflow-yml.md\n\n# GitCode Workflow YAML Examples\n\nUse this reference when creating or updating GitCode Pipeline workflow files\nunder `.gitcode/workflows`, especially `.gitcode/workflows/ci.yml`.\n\nOfficial GitCode Pipeline documentation describes workflows as YAML files stored\nunder `.gitcode/workflows`. A workflow has trigger events, one or more jobs, and\nordered steps. Jobs run on a GitCode runner such as `euleros-2.10.1`, and steps\ncan either run shell commands or use reusable actions such as\n`checkout-action@0.0.1`, `setup-node@0.0.1`, `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1`.\n\nSources:\n\n- <https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/>\n- <https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/>\n\n## Style\n\n- Store workflow files in `.gitcode/workflows`.\n- Use `ci.yml` for the main continuous-integration workflow unless the project\n  already has a clearer local naming convention.\n- Keep YAML indentation at two spaces.\n- Use a clear top-level `name`.\n- Prefer explicit branch filters for `push` and `pull_request`.\n- GitCode documents manual triggers as a pipeline capability, but the public\n  intro page does not show a YAML key for that trigger. Do not add\n  `workflow_dispatch` to reusable examples unless the target GitCode project has\n  already confirmed that syntax.\n- Start each job by checking out the repository with `checkout-action@0.0.1`.\n- Run repository commands from `repo_workspace` after checkout.\n- Keep secrets in GitCode project secrets or environment configuration, not in\n  workflow files.\n- Keep GitCode workflow examples separate from GitHub Actions examples. Do not\n  use `actions/checkout`, `ubuntu-latest`, or GitHub-only workflow surfaces.\n- GitCode documents `setup-java@0.0.1`, `setup-python@0.0.1`, and\n  `setup-go@0.0.1` as available built-in actions, but this reference does not\n  guess their `with` inputs without action-specific docs.\n\n## Minimal CI\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  build:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Inspect workspace\n        run: |\n          cd repo_workspace\n          pwd\n          ls\n```\n\n## CodeCheck\n\nUse `gd pipeline codecheck` to generate this workflow so the personal access\ntoken is referenced through a project secret instead of committed as a literal\nvalue:\n\n```bash\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\n```\n\nThe generated workflow uses `codecheck-action@0.0.3` with `repo_url`,\n`branch`, `rule_sets`, and `access_token` inputs as documented by GitCode\nCodeCheck. Pull request runs pass the PR source repository and branch to\nCodeCheck; push runs pass the configured repository URL and current ref.\n\n## Rust CLI CI\n\nUse this shape for Rust command line projects. It installs stable Rust inside\nthe clean EulerOS runner, then runs the same local gate used by this repository.\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  rust:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Install Rust stable\n        run: |\n          cd repo_workspace\n          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable\n          \"$HOME/.cargo/bin/rustup\" component add rustfmt clippy\n      - name: Format gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" fmt --all -- --check\n      - name: Clippy gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" clippy --all-targets --all-features -- -D warnings\n      - name: Test suite\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" test --all-targets --all-features\n      - name: Build\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" build --all-targets --all-features\n```\n\n## Node CI\n\nThis follows the GitCode documentation pattern for `setup-node@0.0.1`.\n\n```yaml\nname: node-ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  node:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Use Node.js\n        uses: setup-node@0.0.1\n        with:\n          node-version: '20.10.0'\n      - run: cd repo_workspace && npm ci\n      - run: cd repo_workspace && npm run build --if-present\n      - run: cd repo_workspace && npm test\n```\n\n## Other Language Actions\n\nThe public GitCode Pipeline intro lists `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1` as built-in actions. It does not show\ntheir input names. When writing Java, Python, or Go templates, use the action\ndocumentation or a known-good workflow from the target project before adding\n`with` keys.\n\nFile v0.1.2:agents/openai.yaml\n\ninterface:\n  display_name: \"Relay GitCode CLI\"\n  short_description: \"Use gd for GitCode CLI workflows\"\n  default_prompt: \"Use $relay-gitcode-cli to inspect a GitCode repository and manage pull requests with gd.\"\n\nArchive v0.1.1: 5 files, 7731 bytes\n\nFiles: agents/openai.yaml (212b), references/cli-workflows.md (7586b), references/gitcode-workflow-yml.md (4901b), SKILL.md (5275b), _meta.json (136b)\n\nFile v0.1.1:SKILL.md\n\n---\nname: relay-gitcode-cli\ndescription: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, GitCode Pipeline operations, raw API calls, JSON automation, version checks, and shell completion. Use when an agent should operate GitCode by running local gd commands. Do not use this skill for GitHub-only gh surfaces unless GitCode exposes an equivalent API through gd or gd api.\nmetadata:\n  openclaw:\n    skillKey: relay-gitcode-cli\n    homepage: https://github.com/coolplayagent/relay-gitcode-cli\n---\n\n# Relay GitCode CLI\n\n## Workflow\n\nUse the compiled `gd` binary as the GitCode control surface. Prefer `--json`\nfor automation and inspect command help before exposing unfamiliar operations:\n\n```bash\ngd --help\ngd pr create --help\ngd api --help\n```\n\nKeep behavior GitCode-specific. Do not introduce GitHub-only command surfaces\nsuch as gists, codespaces, projects, GitHub Actions, rulesets, extensions, or\nCopilot unless GitCode exposes equivalent API behavior and the task can be done\nthrough `gd api`.\n\nWhen `gd` commands, flags, examples, or user-facing behavior change in this\nrepository, update this `SKILL.md` in the same change so agent workflows stay\naligned with the compiled CLI.\n\n`gd` reuses reqwest system proxy behavior for `HTTP_PROXY`/`http_proxy`,\n`HTTPS_PROXY`/`https_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy`. TLS certificate verification is disabled by default for\nGitCode API calls.\n\n## Readiness\n\nCheck whether `gd` exists, then inspect version and authentication state:\n\n```bash\ncommand -v gd\ngd --version\ngd version check --json\ngd auth status --json\n```\n\nFor online install or upgrades, use a released artifact. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd version check --json\n```\n\nDo not install this skill by building `gd` from a local repository checkout.\nThe skill is published independently and should point agents at released CLI\nartifacts.\n\nFor temporary CI or end-to-end tests, prefer `GITCODE_TOKEN` in the process\nenvironment. For interactive token login, read the token from stdin and store it\nin the system keyring:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nNever print, commit, or persist personal access tokens, cookies, or private API\nresponses in repository files.\n\n## Core Workflows\n\nUse explicit repositories with `--repo owner/repo` when the current directory\ndoes not define a `gd` default repository. Add `--json` for machine-readable\noutput:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\ngd repo clone owner/repo\ngd repo create name --private --description \"demo\" --json\ngd repo fork owner/repo --json\n```\n\nManage issues and pull requests with the GitCode-backed command surface:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n\ngd pr list --repo owner/repo --state open --base main --json\ngd pr view 1 --repo owner/repo --json\ngd pr create --repo owner/repo --title \"change\" --body \"details\" --base main --head feature --json\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\nUse `gd api` for GitCode API v5 endpoints that do not have first-class\nsubcommands:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\n## Pipelines\n\nPipeline commands call GitCode Actions APIs. They reuse the same GitCode\npersonal access token as other `gd` commands through `GITCODE_TOKEN` or\n`gd auth login --with-token`, sending it as `Authorization: Bearer <token>`.\nDo not configure or ask for AK/SK credentials for pipeline workflows.\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --json\n```\n\n## Troubleshooting\n\nIf a command fails, read the JSON response or the `gd:` error line before\nguessing hidden state. Check authentication, repository spelling, hostname, and\nAPI base first:\n\n```bash\ngd auth status --json\ngd repo view owner/repo --json\ngd api /user --json\ngd --api-base https://api.gitcode.com/api/v5 api /user --json\n```\n\nFor more command recipes, API automation patterns, and GitCode workflow YAML\nexamples, read `references/cli-workflows.md` and\n`references/gitcode-workflow-yml.md`.\n\nFile v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7ftpbqzwq14ga3f5ms64h1yn84hc25\",\n  \"slug\": \"relay-gitcode-cli\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1779196675594\n}\n\nFile v0.1.1:references/cli-workflows.md\n\n# Relay GitCode CLI Workflows\n\n## Contents\n\n- [Installation and Authentication](#installation-and-authentication)\n- [Safe Automation Defaults](#safe-automation-defaults)\n- [Repository Workflows](#repository-workflows)\n- [Issue and Pull Request Workflows](#issue-and-pull-request-workflows)\n- [Search, SSH Keys, Labels, and Releases](#search-ssh-keys-labels-and-releases)\n- [Raw GitCode API Calls](#raw-gitcode-api-calls)\n- [GitCode Pipeline Workflows](#gitcode-pipeline-workflows)\n- [Workflow YAML References](#workflow-yaml-references)\n- [Out of Scope](#out-of-scope)\n\n## Installation and Authentication\n\nInstall and upgrade from released artifacts. Prefer the Rust package first and\nGitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd --version\ngd version check --json\n```\n\nDo not install from a local repository checkout as part of this skill workflow.\nThe skill is independently published and should use the released `gd` CLI.\n\nUse `GITCODE_TOKEN` for temporary automation and CI:\n\n```bash\nGITCODE_TOKEN=\"$GITCODE_TOKEN\" gd auth status --json\n```\n\nUse keyring-backed login for interactive local sessions:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nDo not write tokens to shell history, repository files, committed fixtures, or\nskill outputs. Do not include private API responses in docs or examples.\n\n## Safe Automation Defaults\n\n- Prefer `--json` for any output an agent will parse.\n- Prefer explicit `--repo owner/repo` rather than relying on local default\n  repository state.\n- Use `--hostname` for GitCode host overrides and `--api-base` for API base\n  overrides.\n- Keep page sizes bounded with `--limit`.\n- Read command help before using a subcommand in a new automation path.\n- Use `gd api` only for GitCode API v5 endpoints or another user-approved\n  GitCode-compatible API base.\n\n## Repository Workflows\n\nInspect repositories:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\n```\n\nClone with optional Git flags after `--`:\n\n```bash\ngd repo clone owner/repo\ngd repo clone owner/repo local-dir -- --depth 1\n```\n\nCreate or fork repositories:\n\n```bash\ngd repo create demo --private --description \"demo repository\" --json\ngd repo fork owner/repo --json\n```\n\n## Issue and Pull Request Workflows\n\nList and inspect issues:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\n```\n\nCreate and comment on issues:\n\n```bash\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --label bug --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n```\n\nList and inspect pull requests:\n\n```bash\ngd pr list --repo owner/repo --state open --base main --limit 30 --json\ngd pr view 1 --repo owner/repo --json\n```\n\nCreate pull requests:\n\n```bash\ngd pr create \\\n  --repo owner/repo \\\n  --title \"change\" \\\n  --body \"details\" \\\n  --base main \\\n  --head feature \\\n  --assignee user \\\n  --label enhancement \\\n  --json\n```\n\nList, add, and reply to Pull Request review comments:\n\n```bash\ngd pr comments 1 --repo owner/repo --limit 50 --json\ngd pr comment 1 --repo owner/repo --body \"please fix\" --path src/main.rs --position 3 --need-to-resolve --json\ngd pr reply 1 discussion-id --repo owner/repo --body \"fixed\" --json\n```\n\n`gd mr` is a visible alias for `gd pr`. Prefer `gd pr` in reusable\ndocumentation unless the user specifically requests merge-request naming.\n\n## Search, SSH Keys, Labels, and Releases\n\nSearch GitCode resources:\n\n```bash\ngd search repos \"rust cli\" --limit 20 --json\ngd search issues \"repo:owner/repo bug\" --limit 20 --json\ngd search users \"alice\" --limit 20 --json\n```\n\nManage SSH keys:\n\n```bash\ngd ssh-key list --json\ngd ssh-key add ~/.ssh/id_ed25519.pub --title laptop --json\ngd ssh-key delete key-id --json\n```\n\nManage repository labels:\n\n```bash\ngd label list --repo owner/repo --json\ngd label create bug --repo owner/repo --color ff0000 --description \"Bug reports\" --json\ngd label edit bug --repo owner/repo --new-name defect --json\ngd label delete defect --repo owner/repo --json\n```\n\nInspect and create releases:\n\n```bash\ngd release list --repo owner/repo --json\ngd release view v0.1.0 --repo owner/repo --json\ngd release create v0.1.0 --repo owner/repo --title \"v0.1.0\" --notes \"Release notes\" --json\n```\n\n## Raw GitCode API Calls\n\nUse `gd api` when the GitCode API supports an operation that does not yet have a\nfirst-class `gd` command:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues -X POST -f title=\"bug\" -f body=\"details\" --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\nField modes:\n\n- `-f/--raw-field key=value` sends string values.\n- `-F/--field key=value` parses `true`, `false`, `null`, integers, and floats.\n- `--input file.json` sends a request body from a file; `--input -` reads stdin.\n- `--include` prints HTTP status and headers before the body.\n- `--silent` suppresses response printing but still fails on non-success status.\n\n## GitCode Pipeline Workflows\n\nPipeline commands reuse the same GitCode personal access token as other\ncommands. Provide it through `GITCODE_TOKEN` for automation or\n`gd auth login --with-token` for keyring-backed sessions; `gd` sends\n`Authorization: Bearer <token>` to both GitCode API v5 and GitCode Actions\nendpoints. Do not configure AK/SK, HuaweiCloud SDK signing variables, or a\nseparate pipeline tenant/domain credential flow.\n\n```bash\nGITCODE_TOKEN=\"$GITCODE_TOKEN\" gd pipeline list --repo owner/repo --json\n```\n\nRegister or update a workflow file:\n\n```bash\ngd pipeline set \\\n  --repo owner/repo \\\n  .gitcode/workflows/ci.yml \\\n  --file workflow.yml \\\n  --json\n\ngd pipeline set \\\n  --repo owner/repo \\\n  .gitcode/workflows/ci.yml \\\n  --mode update \\\n  --sha file-sha \\\n  --file workflow.yml \\\n  --json\n```\n\nCreate a GitCode CodeCheck workflow. Configure the named project secret in\nGitCode first; the generated workflow references the secret expression and does\nnot commit a token value:\n\n```bash\ngd pipeline codecheck \\\n  --repo owner/repo \\\n  --language SHELL \\\n  --access-token-secret CODECHECK_ACCESS_TOKEN \\\n  --json\n```\n\nThe generated workflow filters push and pull request events by the configured\ntarget branch, then passes the pull request source repository and branch or the\ncurrent push repository/ref to `codecheck-action@0.0.3`.\n\nRun and inspect pipelines:\n\n```bash\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --limit 20 --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\n```\n\nControl a run:\n\n```bash\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --job-run-id job-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n```\n\n`gd pipeline log` prints raw log text by default. Add `--json` when callers need\nthe full response envelope.\n\n## Workflow YAML References\n\nFor examples of `.gitcode/workflows/ci.yml` structure, event triggers, runners,\ncheckout steps, and language-specific CI templates, read\n`references/gitcode-workflow-yml.md`.\n\n## Out of Scope\n\nDo not use this skill for GitHub-only gh functionality unless GitCode has an\nequivalent API and the task can be completed through `gd` or `gd api`. Do not\nmanage GitHub Actions workflows, GitHub projects, gists, codespaces, GitHub\nrulesets, extensions, or Copilot through this skill.\n\nFile v0.1.1:references/gitcode-workflow-yml.md\n\n# GitCode Workflow YAML Examples\n\nUse this reference when creating or updating GitCode Pipeline workflow files\nunder `.gitcode/workflows`, especially `.gitcode/workflows/ci.yml`.\n\nOfficial GitCode Pipeline documentation describes workflows as YAML files stored\nunder `.gitcode/workflows`. A workflow has trigger events, one or more jobs, and\nordered steps. Jobs run on a GitCode runner such as `euleros-2.10.1`, and steps\ncan either run shell commands or use reusable actions such as\n`checkout-action@0.0.1`, `setup-node@0.0.1`, `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1`.\n\nSources:\n\n- <https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/>\n- <https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/>\n\n## Style\n\n- Store workflow files in `.gitcode/workflows`.\n- Use `ci.yml` for the main continuous-integration workflow unless the project\n  already has a clearer local naming convention.\n- Keep YAML indentation at two spaces.\n- Use a clear top-level `name`.\n- Prefer explicit branch filters for `push` and `pull_request`.\n- GitCode documents manual triggers as a pipeline capability, but the public\n  intro page does not show a YAML key for that trigger. Do not add\n  `workflow_dispatch` to reusable examples unless the target GitCode project has\n  already confirmed that syntax.\n- Start each job by checking out the repository with `checkout-action@0.0.1`.\n- Run repository commands from `repo_workspace` after checkout.\n- Keep secrets in GitCode project secrets or environment configuration, not in\n  workflow files.\n- Keep GitCode workflow examples separate from GitHub Actions examples. Do not\n  use `actions/checkout`, `ubuntu-latest`, or GitHub-only workflow surfaces.\n- GitCode documents `setup-java@0.0.1`, `setup-python@0.0.1`, and\n  `setup-go@0.0.1` as available built-in actions, but this reference does not\n  guess their `with` inputs without action-specific docs.\n\n## Minimal CI\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  build:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Inspect workspace\n        run: |\n          cd repo_workspace\n          pwd\n          ls\n```\n\n## CodeCheck\n\nUse `gd pipeline codecheck` to generate this workflow so the personal access\ntoken is referenced through a project secret instead of committed as a literal\nvalue:\n\n```bash\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\n```\n\nThe generated workflow uses `codecheck-action@0.0.3` with `repo_url`,\n`branch`, `rule_sets`, and `access_token` inputs as documented by GitCode\nCodeCheck. Pull request runs pass the PR source repository and branch to\nCodeCheck; push runs pass the configured repository URL and current ref.\n\n## Rust CLI CI\n\nUse this shape for Rust command line projects. It installs stable Rust inside\nthe clean EulerOS runner, then runs the same local gate used by this repository.\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  rust:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Install Rust stable\n        run: |\n          cd repo_workspace\n          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable\n          \"$HOME/.cargo/bin/rustup\" component add rustfmt clippy\n      - name: Format gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" fmt --all -- --check\n      - name: Clippy gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" clippy --all-targets --all-features -- -D warnings\n      - name: Test suite\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" test --all-targets --all-features\n      - name: Build\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" build --all-targets --all-features\n```\n\n## Node CI\n\nThis follows the GitCode documentation pattern for `setup-node@0.0.1`.\n\n```yaml\nname: node-ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  node:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Use Node.js\n        uses: setup-node@0.0.1\n        with:\n          node-version: '20.10.0'\n      - run: cd repo_workspace && npm ci\n      - run: cd repo_workspace && npm run build --if-present\n      - run: cd repo_workspace && npm test\n```\n\n## Other Language Actions\n\nThe public GitCode Pipeline intro lists `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1` as built-in actions. It does not show\ntheir input names. When writing Java, Python, or Go templates, use the action\ndocumentation or a known-good workflow from the target project before adding\n`with` keys.\n\nFile v0.1.1:agents/openai.yaml\n\ninterface:\n  display_name: \"Relay GitCode CLI\"\n  short_description: \"Use gd for GitCode CLI workflows\"\n  default_prompt: \"Use $relay-gitcode-cli to inspect a GitCode repository and manage pull requests with gd.\"\n\nArchive v0.1.0: 5 files, 7036 bytes\n\nFiles: agents/openai.yaml (212b), references/cli-workflows.md (6750b), references/gitcode-workflow-yml.md (4310b), SKILL.md (4934b), _meta.json (136b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: relay-gitcode-cli\ndescription: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, GitCode Pipeline operations, raw API calls, JSON automation, version checks, and shell completion. Use when an agent should operate GitCode by running local gd commands. Do not use this skill for GitHub-only gh surfaces unless GitCode exposes an equivalent API through gd or gd api.\nmetadata:\n  openclaw:\n    skillKey: relay-gitcode-cli\n    homepage: https://github.com/coolplayagent/relay-gitcode-cli\n---\n\n# Relay GitCode CLI\n\n## Workflow\n\nUse the compiled `gd` binary as the GitCode control surface. Prefer `--json`\nfor automation and inspect command help before exposing unfamiliar operations:\n\n```bash\ngd --help\ngd pr create --help\ngd api --help\n```\n\nKeep behavior GitCode-specific. Do not introduce GitHub-only command surfaces\nsuch as gists, codespaces, projects, GitHub Actions, rulesets, extensions, or\nCopilot unless GitCode exposes equivalent API behavior and the task can be done\nthrough `gd api`.\n\nWhen `gd` commands, flags, examples, or user-facing behavior change in this\nrepository, update this `SKILL.md` in the same change so agent workflows stay\naligned with the compiled CLI.\n\n`gd` reuses reqwest system proxy behavior for `HTTP_PROXY`/`http_proxy`,\n`HTTPS_PROXY`/`https_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy`. TLS certificate verification is disabled by default for\nGitCode API calls.\n\n## Readiness\n\nCheck whether `gd` exists, then inspect version and authentication state:\n\n```bash\ncommand -v gd\ngd --version\ngd version check --json\ngd auth status --json\n```\n\nFor online install or upgrades, use a released artifact. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd version check --json\n```\n\nDo not install this skill by building `gd` from a local repository checkout.\nThe skill is published independently and should point agents at released CLI\nartifacts.\n\nFor temporary CI or end-to-end tests, prefer `GITCODE_TOKEN` in the process\nenvironment. For interactive token login, read the token from stdin and store it\nin the system keyring:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nNever print, commit, or persist personal access tokens, cookies, or private API\nresponses in repository files.\n\n## Core Workflows\n\nUse explicit repositories with `--repo owner/repo` when the current directory\ndoes not define a `gd` default repository. Add `--json` for machine-readable\noutput:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\ngd repo clone owner/repo\ngd repo create name --private --description \"demo\" --json\ngd repo fork owner/repo --json\n```\n\nManage issues and pull requests with the GitCode-backed command surface:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n\ngd pr list --repo owner/repo --state open --base main --json\ngd pr view 1 --repo owner/repo --json\ngd pr create --repo owner/repo --title \"change\" --body \"details\" --base main --head feature --json\n```\n\nUse `gd api` for GitCode API v5 endpoints that do not have first-class\nsubcommands:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\n## Pipelines\n\nPipeline commands call GitCode Actions APIs. They reuse the same GitCode\npersonal access token as other `gd` commands through `GITCODE_TOKEN` or\n`gd auth login --with-token`, sending it as `Authorization: Bearer <token>`.\nDo not configure or ask for AK/SK credentials for pipeline workflows.\n\n```bash\ngd pipeline set --repo owner/repo .gitcode/workflows/ci.yml --file workflow.yml --json\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --json\n```\n\n## Troubleshooting\n\nIf a command fails, read the JSON response or the `gd:` error line before\nguessing hidden state. Check authentication, repository spelling, hostname, and\nAPI base first:\n\n```bash\ngd auth status --json\ngd repo view owner/repo --json\ngd api /user --json\ngd --api-base https://api.gitcode.com/api/v5 api /user --json\n```\n\nFor more command recipes, API automation patterns, and GitCode workflow YAML\nexamples, read `references/cli-workflows.md` and\n`references/gitcode-workflow-yml.md`.\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ftpbqzwq14ga3f5ms64h1yn84hc25\",\n  \"slug\": \"relay-gitcode-cli\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1779194115529\n}\n\nFile v0.1.0:references/cli-workflows.md\n\n# Relay GitCode CLI Workflows\n\n## Contents\n\n- [Installation and Authentication](#installation-and-authentication)\n- [Safe Automation Defaults](#safe-automation-defaults)\n- [Repository Workflows](#repository-workflows)\n- [Issue and Pull Request Workflows](#issue-and-pull-request-workflows)\n- [Search, SSH Keys, Labels, and Releases](#search-ssh-keys-labels-and-releases)\n- [Raw GitCode API Calls](#raw-gitcode-api-calls)\n- [GitCode Pipeline Workflows](#gitcode-pipeline-workflows)\n- [Workflow YAML References](#workflow-yaml-references)\n- [Out of Scope](#out-of-scope)\n\n## Installation and Authentication\n\nInstall and upgrade from released artifacts. Prefer the Rust package first and\nGitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd --version\ngd version check --json\n```\n\nDo not install from a local repository checkout as part of this skill workflow.\nThe skill is independently published and should use the released `gd` CLI.\n\nUse `GITCODE_TOKEN` for temporary automation and CI:\n\n```bash\nGITCODE_TOKEN=\"$GITCODE_TOKEN\" gd auth status --json\n```\n\nUse keyring-backed login for interactive local sessions:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nDo not write tokens to shell history, repository files, committed fixtures, or\nskill outputs. Do not include private API responses in docs or examples.\n\n## Safe Automation Defaults\n\n- Prefer `--json` for any output an agent will parse.\n- Prefer explicit `--repo owner/repo` rather than relying on local default\n  repository state.\n- Use `--hostname` for GitCode host overrides and `--api-base` for API base\n  overrides.\n- Keep page sizes bounded with `--limit`.\n- Read command help before using a subcommand in a new automation path.\n- Use `gd api` only for GitCode API v5 endpoints or another user-approved\n  GitCode-compatible API base.\n\n## Repository Workflows\n\nInspect repositories:\n\n```bash\ngd repo view owner/repo --json\ngd repo list owner --limit 50 --json\n```\n\nClone with optional Git flags after `--`:\n\n```bash\ngd repo clone owner/repo\ngd repo clone owner/repo local-dir -- --depth 1\n```\n\nCreate or fork repositories:\n\n```bash\ngd repo create demo --private --description \"demo repository\" --json\ngd repo fork owner/repo --json\n```\n\n## Issue and Pull Request Workflows\n\nList and inspect issues:\n\n```bash\ngd issue list --repo owner/repo --state open --limit 30 --json\ngd issue view 1 --repo owner/repo --json\n```\n\nCreate and comment on issues:\n\n```bash\ngd issue create --repo owner/repo --title \"bug\" --body \"details\" --label bug --json\ngd issue comment 1 --repo owner/repo --body \"thanks\" --json\n```\n\nList and inspect pull requests:\n\n```bash\ngd pr list --repo owner/repo --state open --base main --limit 30 --json\ngd pr view 1 --repo owner/repo --json\n```\n\nCreate pull requests:\n\n```bash\ngd pr create \\\n  --repo owner/repo \\\n  --title \"change\" \\\n  --body \"details\" \\\n  --base main \\\n  --head feature \\\n  --assignee user \\\n  --label enhancement \\\n  --json\n```\n\n`gd mr` is a visible alias for `gd pr`. Prefer `gd pr` in reusable\ndocumentation unless the user specifically requests merge-request naming.\n\n## Search, SSH Keys, Labels, and Releases\n\nSearch GitCode resources:\n\n```bash\ngd search repos \"rust cli\" --limit 20 --json\ngd search issues \"repo:owner/repo bug\" --limit 20 --json\ngd search users \"alice\" --limit 20 --json\n```\n\nManage SSH keys:\n\n```bash\ngd ssh-key list --json\ngd ssh-key add ~/.ssh/id_ed25519.pub --title laptop --json\ngd ssh-key delete key-id --json\n```\n\nManage repository labels:\n\n```bash\ngd label list --repo owner/repo --json\ngd label create bug --repo owner/repo --color ff0000 --description \"Bug reports\" --json\ngd label edit bug --repo owner/repo --new-name defect --json\ngd label delete defect --repo owner/repo --json\n```\n\nInspect and create releases:\n\n```bash\ngd release list --repo owner/repo --json\ngd release view v0.1.0 --repo owner/repo --json\ngd release create v0.1.0 --repo owner/repo --title \"v0.1.0\" --notes \"Release notes\" --json\n```\n\n## Raw GitCode API Calls\n\nUse `gd api` when the GitCode API supports an operation that does not yet have a\nfirst-class `gd` command:\n\n```bash\ngd api /user --json\ngd api /repos/owner/repo -X PATCH -F has_issues=true --json\ngd api /repos/owner/repo/issues -X POST -f title=\"bug\" -f body=\"details\" --json\ngd api /repos/owner/repo/issues --paginate --json\n```\n\nField modes:\n\n- `-f/--raw-field key=value` sends string values.\n- `-F/--field key=value` parses `true`, `false`, `null`, integers, and floats.\n- `--input file.json` sends a request body from a file; `--input -` reads stdin.\n- `--include` prints HTTP status and headers before the body.\n- `--silent` suppresses response printing but still fails on non-success status.\n\n## GitCode Pipeline Workflows\n\nPipeline commands reuse the same GitCode personal access token as other\ncommands. Provide it through `GITCODE_TOKEN` for automation or\n`gd auth login --with-token` for keyring-backed sessions; `gd` sends\n`Authorization: Bearer <token>` to both GitCode API v5 and GitCode Actions\nendpoints. Do not configure AK/SK, HuaweiCloud SDK signing variables, or a\nseparate pipeline tenant/domain credential flow.\n\n```bash\nGITCODE_TOKEN=\"$GITCODE_TOKEN\" gd pipeline list --repo owner/repo --json\n```\n\nRegister or update a workflow file:\n\n```bash\ngd pipeline set \\\n  --repo owner/repo \\\n  .gitcode/workflows/ci.yml \\\n  --file workflow.yml \\\n  --json\n\ngd pipeline set \\\n  --repo owner/repo \\\n  .gitcode/workflows/ci.yml \\\n  --mode update \\\n  --sha file-sha \\\n  --file workflow.yml \\\n  --json\n```\n\nRun and inspect pipelines:\n\n```bash\ngd pipeline run --repo owner/repo workflow-id --file-path .gitcode/workflows/ci.yml --branch main --json\ngd pipeline runs --repo owner/repo --workflow-name ci --status success --limit 20 --json\ngd pipeline view --repo owner/repo workflow-run-id --json\ngd pipeline log --repo owner/repo workflow-run-id job-id\n```\n\nControl a run:\n\n```bash\ngd pipeline stop --repo owner/repo workflow-run-id --json\ngd pipeline retry --repo owner/repo workflow-run-id --job-run-id job-run-id --json\ngd pipeline rerun --repo owner/repo workflow-run-id --json\n```\n\n`gd pipeline log` prints raw log text by default. Add `--json` when callers need\nthe full response envelope.\n\n## Workflow YAML References\n\nFor examples of `.gitcode/workflows/ci.yml` structure, event triggers, runners,\ncheckout steps, and language-specific CI templates, read\n`references/gitcode-workflow-yml.md`.\n\n## Out of Scope\n\nDo not use this skill for GitHub-only gh functionality unless GitCode has an\nequivalent API and the task can be completed through `gd` or `gd api`. Do not\nmanage GitHub Actions workflows, GitHub projects, gists, codespaces, GitHub\nrulesets, extensions, or Copilot through this skill.\n\nFile v0.1.0:references/gitcode-workflow-yml.md\n\n# GitCode Workflow YAML Examples\n\nUse this reference when creating or updating GitCode Pipeline workflow files\nunder `.gitcode/workflows`, especially `.gitcode/workflows/ci.yml`.\n\nOfficial GitCode Pipeline documentation describes workflows as YAML files stored\nunder `.gitcode/workflows`. A workflow has trigger events, one or more jobs, and\nordered steps. Jobs run on a GitCode runner such as `euleros-2.10.1`, and steps\ncan either run shell commands or use reusable actions such as\n`checkout-action@0.0.1`, `setup-node@0.0.1`, `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1`.\n\nSources:\n\n- <https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/>\n- <https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/>\n\n## Style\n\n- Store workflow files in `.gitcode/workflows`.\n- Use `ci.yml` for the main continuous-integration workflow unless the project\n  already has a clearer local naming convention.\n- Keep YAML indentation at two spaces.\n- Use a clear top-level `name`.\n- Prefer explicit branch filters for `push` and `pull_request`.\n- GitCode documents manual triggers as a pipeline capability, but the public\n  intro page does not show a YAML key for that trigger. Do not add\n  `workflow_dispatch` to reusable examples unless the target GitCode project has\n  already confirmed that syntax.\n- Start each job by checking out the repository with `checkout-action@0.0.1`.\n- Run repository commands from `repo_workspace` after checkout.\n- Keep secrets in GitCode project secrets or environment configuration, not in\n  workflow files.\n- Keep GitCode workflow examples separate from GitHub Actions examples. Do not\n  use `actions/checkout`, `ubuntu-latest`, or GitHub-only workflow surfaces.\n- GitCode documents `setup-java@0.0.1`, `setup-python@0.0.1`, and\n  `setup-go@0.0.1` as available built-in actions, but this reference does not\n  guess their `with` inputs without action-specific docs.\n\n## Minimal CI\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  build:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Inspect workspace\n        run: |\n          cd repo_workspace\n          pwd\n          ls\n```\n\n## Rust CLI CI\n\nUse this shape for Rust command line projects. It installs stable Rust inside\nthe clean EulerOS runner, then runs the same local gate used by this repository.\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  rust:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Install Rust stable\n        run: |\n          cd repo_workspace\n          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable\n          \"$HOME/.cargo/bin/rustup\" component add rustfmt clippy\n      - name: Format gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" fmt --all -- --check\n      - name: Clippy gate\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" clippy --all-targets --all-features -- -D warnings\n      - name: Test suite\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" test --all-targets --all-features\n      - name: Build\n        run: |\n          cd repo_workspace\n          \"$HOME/.cargo/bin/cargo\" build --all-targets --all-features\n```\n\n## Node CI\n\nThis follows the GitCode documentation pattern for `setup-node@0.0.1`.\n\n```yaml\nname: node-ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  node:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Use Node.js\n        uses: setup-node@0.0.1\n        with:\n          node-version: '20.10.0'\n      - run: cd repo_workspace && npm ci\n      - run: cd repo_workspace && npm run build --if-present\n      - run: cd repo_workspace && npm test\n```\n\n## Other Language Actions\n\nThe public GitCode Pipeline intro lists `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1` as built-in actions. It does not show\ntheir input names. When writing Java, Python, or Go templates, use the action\ndocumentation or a known-good workflow from the target project before adding\n`with` keys.\n\nFile v0.1.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Relay GitCode CLI\"\n  short_description: \"Use gd for GitCode CLI workflows\"\n  default_prompt: \"Use $relay-gitcode-cli to inspect a GitCode repository and manage pull requests with gd.\"","readmeExcerpt":"Skill: Relay GitCode CLI Owner: stevetdp Summary: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search... Tags: latest:0.1.5 Version history: v0.1.5 | 2026-05-20T09:14:14.911Z | user gd v0.1.5 v0.1.4 | 2026-05-20T06:13:19.629Z | user gd v0.1.4 v0.1.3 | 2026-05-20T02:30:14.409Z | user gd v0.1.3 v0.1.2 | 2026-05-19T","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"gd --help\ngd pr create --help\ngd api --help"},{"language":"bash","snippet":"\"$GD_BIN\" --version\n\"$GD_BIN\" version check --json\n\"$GD_BIN\" auth status --json"},{"language":"bash","snippet":"cargo install relay-gitcode-cli --force\ngd version check --json"},{"language":"bash","snippet":"printf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json"},{"language":"bash","snippet":"gd repo view owner/repo --json\ngd repo list owner --limit 50 --json\ngd repo clone owner/repo\ngd repo create name --private --description \"demo\" --json\ngd repo fork owner/repo --json\ngd repo move owner/repo target-owner/new-name --json\ngd repo move owner/repo target-owner --name new-name --json\ngd repo sync-github coolplayagent/relay-gitcode-cli --org plm-cac --private --json\ngd repo sync-github git@github.com:owner/repo.git --repo target-org/repo --if-exists skip --json\ngd repo sync-github owner/repo --repo target-org/repo --method git-push --if-exists update --json\ngd repo contents README.md --repo owner/repo --ref main --json\ngd repo file-create README.md --repo owner/repo --message \"init\" --content \"hello\" --json\ngd repo file-update README.md --repo owner/repo --message \"update\" --sha blob-sha --content-file README.md --json\ngd repo settings-edit --repo owner/repo --field has_issues=true --json\ngd repo pr-settings --repo owner/repo --json\ngd repo push-rules --repo owner/repo --json\ngd repo contributor-stats --repo owner/repo --current-user --json\ngd repo events --repo owner/repo --filter push --json"},{"language":"bash","snippet":"GITCODE_TOKEN=... GD_E2E_SOURCE_REPO=owner/repo GD_E2E_TARGET_OWNER=target-owner GD_E2E_TARGET_NAME=temporary-name scripts/e2e-repo-move.sh"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: relay-gitcode-cli\ndescription: Use gd, the relay-gitcode-cli GitCode command line client, for GitCode API v5 workflows including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, GitCode Pipeline operations, raw API calls, JSON automation, version checks, and shell completion. Use when an agent should operate GitCode by running local gd commands. Do not use this skill for GitHub-only gh surfaces unless GitCode exposes an equivalent API through gd or gd api.\nmetadata:\n  version: 0.1.5\n  openclaw:\n    skillKey: relay-gitcode-cli\n    homepage: https://github.com/coolplayagent/relay-gitcode-cli\n---\n\n# Relay GitCode CLI\n\n## Workflow\n\nUse the selected `gd` binary as the GitCode control surface. Prefer `--json`\nfor automation and inspect command help before exposing unfamiliar operations:\n\n```bash\ngd --help\ngd pr create --help\ngd api --help\n```\n\nKeep behavior GitCode-specific. Do not introduce GitHub-only command surfaces\nsuch as gists, codespaces, projects, GitHub Actions, rulesets, extensions, or\nCopilot unless GitCode exposes equivalent API behavior and the task can be done\nthrough `gd api`.\n\nWhen `gd` commands, flags, examples, or user-facing behavior change in this\nrepository, update this `SKILL.md` in the same change so agent workflows stay\naligned with the compiled CLI.\n\n`gd` reuses reqwest system proxy behavior for `HTTP_PROXY`/`http_proxy`,\n`HTTPS_PROXY`/`https_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy`. TLS certificate verification is disabled by default for\nGitCode API calls. Set `GD_SSL_VERIFY`/`gd_ssl_verify`,\n`GITCODE_SSL_VERIFY`/`gitcode_ssl_verify`, or `SSL_VERIFY`/`ssl_verify` to\n`true` to enable verification; any non-empty\n`GIT_SSL_NO_VERIFY`/`git_ssl_no_verify` value keeps it disabled.\n\n## Readiness\n\nSelect the newest usable `gd` before running workflows. Resolve bundled assets\nrelative to this skill directory. On Linux x64, check\n`assets/bin/linux-x86_64/gd`; on Windows x64, check\n`assets/bin/windows-x86_64/gd.exe`. Also check the `gd` binary found on `PATH`\nwith `command -v gd` on Unix or `where gd` on Windows.\n\nFor every candidate that exists and is executable, run `<candidate> --version`\nand parse the semver from output such as `gd 0.1.0`. Use the candidate with the\nhighest semver. If versions are equal, prefer the bundled binary. Ignore\ncandidates that cannot run or do not print a parseable `gd` version. If the\nselected binary is not on `PATH`, run it by absolute path or set `GD_BIN` and\nsubstitute `\"$GD_BIN\"` for `gd` in the examples below.\n\nSet `GD_BIN` to the selected path, then inspect version and authentication\nstate:\n\n```bash\n\"$GD_BIN\" --version\n\"$GD_BIN\" version check --json\n\"$GD_BIN\" auth status --json\n```\n\nOnly install online when no bundled or `PATH` binary is usable. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd version check --json\n```\n\nWhen falling back to GitHub Releases downloads, use the"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ftpbqzwq14ga3f5ms64h1yn84hc25\",\n  \"slug\": \"relay-gitcode-cli\",\n  \"version\": \"0.1.5\",\n  \"publishedAt\": 1779268454911\n}"},{"path":"references/cli-workflows.md","content":"# Relay GitCode CLI Workflows\n\n## Contents\n\n- [Installation and Authentication](#installation-and-authentication)\n- [Safe Automation Defaults](#safe-automation-defaults)\n- [Repository Workflows](#repository-workflows)\n- [Issue and Pull Request Workflows](#issue-and-pull-request-workflows)\n- [Search, SSH Keys, Labels, and Releases](#search-ssh-keys-labels-and-releases)\n- [Raw GitCode API Calls](#raw-gitcode-api-calls)\n- [GitCode Pipeline Workflows](#gitcode-pipeline-workflows)\n- [Workflow YAML References](#workflow-yaml-references)\n- [Out of Scope](#out-of-scope)\n\n## Installation and Authentication\n\nSelect the newest usable released `gd` binary before running workflows. Check\nthe bundled binary for the current platform, if present:\n`assets/bin/linux-x86_64/gd` on Linux x64 or\n`assets/bin/windows-x86_64/gd.exe` on Windows x64. Also check the `gd` binary\nfound on `PATH` with `command -v gd` on Unix or `where gd` on Windows.\n\nRun `<candidate> --version` for each candidate and parse the semver from output\nsuch as `gd 0.1.0`. Use the highest semver. If versions are equal, prefer the\nbundled binary. Ignore candidates that cannot run or do not print a parseable\n`gd` version. If the selected binary is not on `PATH`, run it by absolute path\nor set `GD_BIN` and substitute `\"$GD_BIN\"` for `gd` in examples.\n\nOnly install online when no bundled or `PATH` binary is usable. Prefer the Rust\npackage first and GitHub Releases second:\n\n```bash\ncargo install relay-gitcode-cli --force\ngd --version\ngd version check --json\n```\n\nWhen falling back to GitHub Releases downloads, use the environment proxy\nrequired by the host network. Check or set `HTTPS_PROXY`/`https_proxy`,\n`HTTP_PROXY`/`http_proxy`, `ALL_PROXY`/`all_proxy`, and\n`NO_PROXY`/`no_proxy` before running `curl`, `wget`, or another downloader.\n\nDo not install from a local repository checkout as part of this skill workflow.\nThe bundled binaries and online fallbacks should come from released CLI\nartifacts.\n\nUse `GD_TOKEN` or `GITCODE_TOKEN` for temporary automation and CI. `GD_TOKEN`\ntakes precedence when both are present:\n\n```bash\nGD_TOKEN=\"$GD_TOKEN\" gd auth status --json\n```\n\nUse keyring-backed login for interactive local sessions:\n\n```bash\nprintf '%s' \"$GITCODE_TOKEN\" | gd auth login --with-token --json\ngd auth status --json\n```\n\nDo not write tokens to shell history, repository files, committed fixtures, or\nskill outputs. Do not include private API responses in docs or examples.\n\n## Safe Automation Defaults\n\n- Prefer `--json` for any output an agent will parse.\n- Prefer explicit `--repo owner/repo` rather than relying on local default\n  repository state.\n- Use `--hostname` for GitCode host overrides and `--api-base` for API base\n  overrides.\n- Keep page sizes bounded with `--limit`.\n- Read command help before using a subcommand in a new automation path.\n- Use `gd api` only for GitCode API v5 endpoints or another user-approved\n  GitCode-compatible API base.\n\n## Repository Workflows\n\nInspect repositories:\n\n```bas"},{"path":"references/gitcode-workflow-yml.md","content":"# GitCode Workflow YAML Examples\n\nUse this reference when creating or updating GitCode Pipeline workflow files\nunder `.gitcode/workflows`, especially `.gitcode/workflows/ci.yml`.\n\nOfficial GitCode Pipeline documentation describes workflows as YAML files stored\nunder `.gitcode/workflows`. A workflow has trigger events, one or more jobs, and\nordered steps. Jobs run on a GitCode runner such as `euleros-2.10.1`, and steps\ncan either run shell commands or use reusable actions such as\n`checkout-action@0.0.1`, `setup-node@0.0.1`, `setup-java@0.0.1`,\n`setup-python@0.0.1`, and `setup-go@0.0.1`.\n\nSources:\n\n- <https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/>\n- <https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/>\n\n## Style\n\n- Store workflow files in `.gitcode/workflows`.\n- Use `ci.yml` for the main continuous-integration workflow unless the project\n  already has a clearer local naming convention.\n- Keep YAML indentation at two spaces.\n- Use a clear top-level `name`.\n- Prefer explicit branch filters for `push` and `pull_request`.\n- GitCode documents manual triggers as a pipeline capability, but the public\n  intro page does not show a YAML key for that trigger. Do not add\n  `workflow_dispatch` to reusable examples unless the target GitCode project has\n  already confirmed that syntax.\n- Start each job by checking out the repository with `checkout-action@0.0.1`.\n- Run repository commands from `repo_workspace` after checkout.\n- Keep secrets in GitCode project secrets or environment configuration, not in\n  workflow files.\n- Keep GitCode workflow examples separate from GitHub Actions examples. Do not\n  use `actions/checkout`, `ubuntu-latest`, or GitHub-only workflow surfaces.\n- GitCode documents `setup-java@0.0.1`, `setup-python@0.0.1`, and\n  `setup-go@0.0.1` as available built-in actions, but this reference does not\n  guess their `with` inputs without action-specific docs.\n\n## Minimal CI\n\n```yaml\nname: ci\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  build:\n    runs-on: euleros-2.10.1\n    steps:\n      - uses: checkout-action@0.0.1\n      - name: Inspect workspace\n        run: |\n          cd repo_workspace\n          pwd\n          ls\n```\n\n## CodeCheck\n\nUse `gd pipeline codecheck` to generate this workflow so the personal access\ntoken is referenced through a project secret instead of committed as a literal\nvalue:\n\n```bash\ngd pipeline codecheck --repo owner/repo --language SHELL --access-token-secret CODECHECK_ACCESS_TOKEN --json\n```\n\nThe generated workflow uses `codecheck-action@0.0.3` with `repo_url`,\n`branch`, `rule_sets`, and `access_token` inputs as documented by GitCode\nCodeCheck. Pull request runs pass the PR source repository and branch to\nCodeCheck; push runs pass the configured repository URL and current ref.\n\n## Rust CLI CI\n\nUse this shape for Rust command line projects. It installs stable Rust inside\nthe clean EulerOS runner, then runs the same local gate u"},{"path":"skill-card.md","content":"## Description:\n\nRelay GitCode CLI guides agents to use the local `gd` command line client for GitCode API v5 workflows, including authentication, repositories, pull requests, issues, search, SSH keys, labels, releases, pipelines, raw API calls, JSON automation, version checks, and shell completion.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[stevetdp](https://clawhub.ai/user/stevetdp)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill when an agent needs to inspect or change GitCode resources through `gd` commands instead of GitHub-only tooling. It supports repository, pull request, issue, release, label, SSH key, pipeline, workflow YAML, and raw API automation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill handles GitCode credentials and private API responses.\n\nMitigation: Use narrow, revocable tokens through environment variables or keyring-backed login, and do not print, commit, or persist tokens or private API responses.\n\nRisk: The documented CLI behavior disables TLS certificate verification by default.\n\nMitigation: Enable verification with `GD_SSL_VERIFY`, `GITCODE_SSL_VERIFY`, or `SSL_VERIFY` set to `true`, and avoid setting `GIT_SSL_NO_VERIFY`.\n\nRisk: The skill can guide powerful repository and API changes, including moves, delete/recreate syncs, SSH-key deletion, label deletion, pipeline cancellation, and raw API mutations.\n\nMitigation: Require explicit user confirmation before high-impact operations, prefer disposable repositories for tests, and use dry-run or skip modes where available.\n\nRisk: Online installation fallbacks may fetch unpinned binaries or packages.\n\nMitigation: Prefer bundled or already installed released `gd` binaries, verify the selected version before use, and avoid online installs unless no usable local binary exists.\n\n## Reference(s):\n\n- [Relay GitCode CLI ClawHub page](https://clawhub.ai/stevetdp/skills/relay-gitcode-cli)\n- [Relay GitCode CLI homepage](https://github.com/coolplayagent/relay-gitcode-cli)\n- [Relay GitCode CLI Workflows](references/cli-workflows.md)\n- [GitCode Workflow YAML Examples](references/gitcode-workflow-yml.md)\n- [GitCode Pipeline documentation](https://docs.gitcode.com/en/docs/help/home/org_project/pipeline/pipeline-intro1/)\n- [GitCode Pipeline documentation (Chinese)](https://docs.gitcode.com/docs/help/home/org_project/pipeline/pipeline-intro1/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell command examples, JSON-oriented command patterns, and GitCode workflow YAML snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Prefers explicit repositories, bounded result sizes, and `--json` output for agent-readable automation.]\n\n## Skill Version(s):\n\n0.1.5 (source: frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should e"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1702,"uniquenessScore":38,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T23:42:00.570Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T23:42:00.570Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T20:15:21.647Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}