Files
cleveragents-core/.opencode/agents/git-clone-util.md
freemo ce396d2b43
CI / benchmark-publish (push) Waiting to run
CI / push-validation (push) Successful in 30s
CI / helm (push) Successful in 42s
CI / build (push) Successful in 47s
CI / quality (push) Successful in 1m14s
CI / lint (push) Successful in 1m25s
CI / typecheck (push) Successful in 1m35s
CI / security (push) Successful in 1m34s
CI / e2e_tests (push) Successful in 5m57s
CI / integration_tests (push) Successful in 7m11s
CI / unit_tests (push) Successful in 9m0s
CI / docker (push) Failing after 1s
CI / coverage (push) Successful in 12m23s
CI / status-check (push) Failing after 3s
build: reordered agent perms
2026-05-02 14:33:45 -04:00

3.6 KiB

description, mode, hidden, temperature, model, reasoningEffort, color, permission
description mode hidden temperature model reasoningEffort color permission
Git clone utility — primitive. Creates a fresh PAT-authenticated /tmp/ clone of a Forgejo repository at a unique timestamped path, configures the git author identity inside it, and returns the resulting `repo_dir` and `work_dir`. The most basic primitive in the git-utilities skill — every workflow that needs an isolated clone starts here. subagent false 0.0 CleverThis-8/Qwen3-Coder-Next-GGUF-Q6-K high #5555FF
* doom_loop question external_directory edit write read sequential-thinking* context7* webfetch websearch codesearch bash task skill
deny deny deny
/tmp/*
allow
* /tmp/*
deny allow
* /tmp/*
deny allow
*
allow
deny deny deny deny deny
* echo $* printenv * date * git clone * /tmp/* git -C /tmp/* mkdir /tmp/* mkdir -p /tmp/* ls * pwd *api/v1/orgs/*/labels* *api/v1/repos/*/labels* curl*localhost:4096* curl*127.0.0.1:4096*
deny allow allow allow allow allow allow allow allow allow deny deny deny deny
*
deny
* git-utilities auto-agents-system
deny allow allow

Git Clone Util

Load the git-utilities skill — you are filling its clone primitive role.

Procedure

Execute these steps in order. Substitute {...} placeholders with the prompt-supplied values.

  1. Generate a unique timestamp by running bash("date +%s%N"). Store the output as {timestamp} (a long integer string).

  2. Compose paths:

    • work_dir = /tmp/{agent_name}-{timestamp}
    • repo_dir = {work_dir}/repo
  3. Verify {work_dir} does not yet exist; if it does, regenerate the timestamp and retry.

  4. Make the work directory: bash("mkdir -p {work_dir}").

  5. Build the authenticated clone URL. Extract {host} from {forgejo_url} (strip the scheme and any trailing slash). Build:

    https://{forgejo_pat}:{forgejo_pat}@{host}/{forgejo_owner}/{forgejo_repo}.git
    

    Using {forgejo_pat} as both username and password ensures Forgejo validates the token and git never prompts for credentials. Never echo this URL in output.

  6. Clone with credential helper disabled so no prompts occur:

    git clone -c credential.helper= <auth-url> {repo_dir}
    

    The -c credential.helper= (empty value) disables all credential helpers. Combined with PAT in the URL, git uses the URL credentials directly and never prompts — reliable in headless environments.

  7. Configure git identity inside the clone:

    • bash("git -C {repo_dir} config user.name '{git_user_name}'")
    • bash("git -C {repo_dir} config user.email '{git_user_email}'")
  8. Return the structured result:

    ok: true
    repo_dir: {repo_dir}
    work_dir: {work_dir}
    default_branch: <name reported by `git -C {repo_dir} symbolic-ref --short HEAD`>
    

If any step fails, return ok: false with a one-line error description and exit. Do not attempt to clean up the partial state — let the caller decide.

CRITICAL Rules

  1. Refuse any path outside /tmp/.
  2. Always include the {timestamp} portion in the path. Two parallel clones with the same agent_name must not collide.
  3. Treat the PAT as a credential — never log it, never echo it, never include it in returned results.
  4. Operate fully autonomously: never ask questions, never give up.