AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Ghs Repos Pull

skill-atypical-consulting-githubskills-ghs-repos-pull · by Atypical-Consulting

>

No reviews yet
0 installs
33 views
0.0% view→install

Install

$ agentstack add skill-atypical-consulting-githubskills-ghs-repos-pull

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-atypical-consulting-githubskills-ghs-repos-pull)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Ghs Repos Pull? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

References:

  • ../shared/references/gh-cli-patterns.md
  • ../shared/references/output-conventions.md
  • ../shared/references/ui-brand.md
  • ../shared/references/argument-parsing.md

Verify repos/ directory exists before iterating.

Purpose

Iterate over every cloned repository under {repoRoot}/repos/ and run git pull on the default branch. This keeps local clones fresh before scanning, fixing, or any other operation that reads repo contents.

Shared References

| Path | Use For | |------|---------| | ../shared/references/output-conventions.md | Status indicators, progress display | | ../shared/references/edge-cases.md | Network errors, auth failures |

Key Definitions

| Term | Meaning | |------|---------| | {repoRoot} | The project root where repos/ lives (auto-detected from working directory) | | Repo clone | A directory under repos/ matching {owner}_{repo} (no --worktrees suffix) | | Worktree dir | A directory under repos/ matching *--worktreesskipped by this skill |

| Do NOT | Do Instead | Why | |--------|-----------|-----| | Pull inside --worktrees directories | Skip anything matching *--worktrees | Worktrees have detached HEADs; pulling corrupts them | | Pull on non-default branches | Checkout default branch first, then pull | Pulling on a feature branch may cause merge conflicts | | Fail hard on a single repo error | Log [FAIL] and continue to next repo | One broken clone shouldn't block all updates | | Run pulls sequentially with no progress | Show a counter [3/14] per repo | User needs feedback during long operations | | Use gh repo sync | Use git pull | gh repo sync is for forks; git pull is simpler for local clones |

Goal: Update every cloned repository in repos/ to the latest state of its default branch.

Outputs:

  • Terminal summary table showing each repo's pull result ([PASS], [FAIL], [SKIP])
  • Count of updated / failed / skipped repos

Next: Any skill that reads from repos/ (e.g., ghs-repo-scan, ghs-backlog-fix)

  • Check repos/ directory exists before attempting to list or pull repositories

Phase 1 — Discover Repos

  1. Resolve {repoRoot} — walk up from the current working directory until you find a directory containing repos/. Typically the GitHubSkills project root.
  2. List all directories directly under repos/.
  3. Filter:
  • Include: directories matching {owner}_{repo} (contain a .git directory or file).
  • Exclude: directories ending with --worktrees.
  • Exclude: any non-directory entries.
  1. Sort alphabetically for predictable output order.
  2. Store the list and total count {N}.

Rule: If no repos are found, print [INFO] No cloned repositories found in repos/. Run ghs-repo-scan first. and stop.

Phase 2 — Pull Each Repo

For each repo directory repos/{owner}_{repo} (index {i} of {N}):

  1. Print progress: [{i}/{N}] {owner}/{repo} ...
  2. Detect the default branch:

``bash git -C repos/{owner}_{repo} symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||' ` If that fails, fall back to main, then master`.

  1. Ensure we're on the default branch:

``bash git -C repos/{owner}_{repo} checkout {default_branch} --quiet 2>&1 ``

  1. Pull latest:

``bash git -C repos/{owner}_{repo} pull --ff-only --quiet 2>&1 ``

  1. Record result:
  • Exit 0 → [PASS]
  • Non-zero → [FAIL] with the error message (trimmed to one line)

Rule: Use --ff-only to avoid creating merge commits. If fast-forward fails, record [FAIL] with reason "diverged — needs manual resolution".

Rule: Timeout each pull at 60 seconds. If exceeded, record [FAIL] with reason "timeout".

Phase 3 — Summary

Print a summary table:

## Repos Pull Summary

| # | Repository               | Status  | Detail           |
|---|--------------------------|---------|------------------|
| 1 | phmatray/Formidable      | [PASS]  | Already up to date |
| 2 | phmatray/NewSLN          | [PASS]  | 3 commits pulled |
| 3 | phmatray/BrokenRepo      | [FAIL]  | diverged          |

---
Total: 14 | Updated: 12 | Already current: 1 | Failed: 1

Rule: If all repos passed, end with [PASS] All {N} repositories are up to date. Rule: If any failed, end with [WARN] {F} of {N} repositories failed to update. Check the table above.

Good Output

## Pulling 14 repositories...

[ 1/14] Atypical-Consulting/dotnet-clean-architecture ... [PASS] Already up to date
[ 2/14] Atypical-Consulting/VirtualFileSystem ........... [PASS] 2 commits pulled
[ 3/14] phmatray/Antlr4Library .......................... [PASS] Already up to date
...
[14/14] phmatray/TheAppManager .......................... [PASS] 1 commit pulled

---
Total: 14 | Updated: 8 | Already current: 6 | Failed: 0

[PASS] All 14 repositories are up to date.

Bad Output

Pulling repos...
done

(No per-repo status, no counts, no progress — unacceptable.)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.