← 返回
未分类 Key 中文

repo-setup

Fork, clone, and set up a GitHub repository for development or contribution. Handles fork creation, clone with authentication, upstream remote configuration,...
叉取、克隆并设置 GitHub 仓库用于开发或贡献。处理叉取创建、带认证的克隆、上游远程配置等。
sliverp sliverp 来源
未分类 clawhub v1.0.0 1 版本 99723.8 Key: 需要
★ 0
Stars
📥 361
下载
💾 0
安装
1
版本
#latest

概述

Repo Setup — Fork, Clone & Branch Setup

Overview

Automate the setup of a local development environment for contributing to or working on GitHub repositories. Handles the full fork → clone → branch → dependencies pipeline.

Use cases: Open-source contribution, multi-repo development, new project onboarding, codebase exploration.

Prerequisites

gh auth status   # Must show "Logged in"
git --version    # Git installed

If not configured, ask the user to provide:

  1. GitHub username — used for fork URLs and clone paths
  2. GitHub token — run gh auth login or set export GH_TOKEN=

Token is required for: forking repos, cloning private forks, pushing code. Without it, git push and gh repo fork will fail.

Workflow

Step 1: Get Parameters

ParameterRequiredDefaultExample
---------------------------------------
Repositoryowner/repo
GitHub usernamemyusername
Branch name(stay on default)fix/bug-description
Working directory~/prs/{repo}~/dev/{repo}
Auth methodGH_TOKEN env varToken in URL, SSH

Step 2: Fork

gh repo fork {owner}/{repo} --clone=false

If fork already exists, this is a no-op. If the user already owns the repo, skip forking.

Step 3: Clone

WORKDIR="${WORK_BASE:-$HOME/prs}/{repo_name}"

if [ -d "$WORKDIR" ]; then
    cd "$WORKDIR"
    git fetch --all
else
    mkdir -p "$(dirname "$WORKDIR")"

    # With token auth
    git clone "https://${GH_TOKEN}@github.com/${username}/${repo_name}.git" "$WORKDIR"

    # Or with SSH
    # git clone "git@github.com:${username}/${repo_name}.git" "$WORKDIR"

    cd "$WORKDIR"
fi

Step 4: Configure Upstream Remote

if ! git remote get-url upstream &>/dev/null; then
    git remote add upstream "https://github.com/${owner}/${repo_name}.git"
fi
git fetch upstream

Step 5: Create Feature Branch

# Detect default branch
DEFAULT_BRANCH=$(git remote show upstream 2>/dev/null | grep 'HEAD branch' | awk '{print $NF}')
DEFAULT_BRANCH="${DEFAULT_BRANCH:-main}"

# Create branch from latest upstream
git checkout -b {branch_name} upstream/$DEFAULT_BRANCH

Branch Naming Conventions

TypePatternExample
------------------------
Bug fixfix/{short-description}fix/null-pointer-on-empty-list
Featurefeat/{short-description}feat/add-retry-logic
Refactorrefactor/{short-description}refactor/extract-auth-module
Review iterationfix/{description}-v2fix/tool-guards-v2

Step 6: Install Dependencies

Detect the project type and install accordingly:

IndicatorLanguageInstall Command
-------------------------------------
pyproject.toml / setup.pyPythonpip install -e ".[dev]" or pip install -e .
requirements.txtPythonpip install -r requirements.txt
package.jsonNode.jsnpm install
go.modGogo mod download
Cargo.tomlRustcargo build
pom.xmlJavamvn install -DskipTests
build.gradleJava/Kotlin./gradlew build -x test

If full dev install fails (common with native dependencies):

  1. Install core deps individually
  2. Skip optional native/GPU deps
  3. Ensure test framework is installed at minimum

Step 7: Verify

# Check setup
echo "Directory: $(pwd)"
echo "Branch: $(git branch --show-current)"
echo "Upstream: $(git remote get-url upstream)"
echo "Fork: $(git remote get-url origin)"

# Quick build/import test
# Python: python -c "import {package}"
# Node: npm run build (if applicable)
# Go: go build ./...

Automation Script

A helper script is available if this Skill is installed alongside oss-pr-campaign:

# One-liner setup
scripts/setup_repo.sh owner/repo username fix/branch-name

Or implement the same logic step-by-step using the SOP above.

Output

  • Local repo at ~/prs/{repo}/ (or custom directory) on feature branch
  • Upstream remote configured
  • Dependencies installed
  • Ready for development

Tips

  • When used as part of a development pipeline, this follows issue-hunter and feeds into dev-test.
  • For exploring a codebase without contributing, skip the fork step and clone the original directly.
  • Store GH_TOKEN in your shell profile for persistent auth across sessions.
  • If working on multiple repos, keep them all under ~/prs/ for easy navigation.

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 09:48 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

pr-pilot

sliverp
提交专业的 Pull Request 并管理其完整生命周期——从代码推送至合并。涵盖使用结构化描述创建 PR、CI 监控、审查等。
★ 0 📥 334
dev-programming

issue-hunter

sliverp
{ "answer": "分析、筛选 GitHub 仓库中的最佳议题。依据可复现性、范围、复杂度和社区信号评分。" }
★ 0 📥 412
dev-programming

dev-test

sliverp
结构化开发与测试标准操作流程,涵盖代码库学习、最小化聚焦实现、测试编写模式及测试执行等环节。
★ 0 📥 429