git

package
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 20, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package git 提供 Git 仓库拉取功能

Package git 提供 Git 仓库拉取功能

Package git 提供 Git 仓库拉取功能

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsGitHubTreeURL added in v0.10.0

func IsGitHubTreeURL(url string) bool

IsGitHubTreeURL 已废弃,请使用 IsTreeURL Deprecated: Use IsTreeURL instead

func IsTreeURL added in v0.10.0

func IsTreeURL(url string) bool

IsTreeURL 检测 URL 是否为任意支持平台的 Tree URL

Types

type Fetcher

type Fetcher struct {
	// DefaultHost 默认的 Git 托管平台
	DefaultHost string
}

Fetcher 用于拉取 Git 仓库

func NewFetcher

func NewFetcher() *Fetcher

NewFetcher 创建一个新的 Fetcher

func (*Fetcher) Clone

func (f *Fetcher) Clone(source, destDir string) error

Clone 使用系统 git 命令克隆仓库到指定目录 使用系统 git 以继承用户的代理配置 (http.proxy / https.proxy)

func (*Fetcher) CloneToTemp

func (f *Fetcher) CloneToTemp(source string) (string, error)

CloneToTemp 克隆仓库到临时目录,返回临时目录路径

func (*Fetcher) CloneToTempWithBranch added in v0.10.0

func (f *Fetcher) CloneToTempWithBranch(source, branch string) (string, error)

CloneToTempWithBranch 克隆指定分支到临时目录,返回临时目录路径

func (*Fetcher) CloneWithBranch added in v0.10.0

func (f *Fetcher) CloneWithBranch(source, destDir, branch string) error

CloneWithBranch 克隆指定分支的仓库到指定目录 使用 --branch 参数确保克隆正确的分支

func (*Fetcher) NormalizeURL

func (f *Fetcher) NormalizeURL(source string) string

NormalizeURL 将简短格式的仓库地址转换为完整的 Git URL 支持格式:

func (*Fetcher) RepoKey added in v0.10.0

func (f *Fetcher) RepoKey(source string) (string, error)

RepoKey 生成仓库的规范化标识,用于缓存定位。 入参:source(支持短格式、HTTPS/SSH URL、Tree URL)。 返回:host/owner/repo 格式的规范化 key;若无法解析则返回 error。 规则:SSH 与 HTTPS 的同仓库会映射到相同 key。

type GitHubTreeURL added in v0.10.0

type GitHubTreeURL = TreeURLInfo

GitHubTreeURL 已废弃,请使用 TreeURLInfo Deprecated: Use TreeURLInfo instead

type GitHubTreeURLParser added in v0.10.0

type GitHubTreeURLParser struct{}

GitHubTreeURLParser 实现 TreeURLParser 接口,用于解析 GitHub Tree URL

func (*GitHubTreeURLParser) Match added in v0.10.0

func (p *GitHubTreeURLParser) Match(url string) bool

Match 检测 URL 是否为 GitHub tree 格式

func (*GitHubTreeURLParser) Parse added in v0.10.0

func (p *GitHubTreeURLParser) Parse(url string) (*TreeURLInfo, error)

Parse 解析 GitHub tree URL 输入: https://github.com/AlfonsSkills/skills/tree/main/all-money-back-my-home 输出: &TreeURLInfo{Platform: "github", Owner: "AlfonsSkills", ...}

func (*GitHubTreeURLParser) Platform added in v0.10.0

func (p *GitHubTreeURLParser) Platform() string

Platform 返回平台名称

type TreeURLInfo added in v0.10.0

type TreeURLInfo struct {
	Platform string // 平台标识 (e.g., "github", "gitlab")
	Owner    string // 仓库所有者
	Repo     string // 仓库名
	Branch   string // 分支名
	Path     string // 子目录路径,支持多级 (e.g., "category/skill-name")
}

TreeURLInfo 表示仓库子目录 URL 的通用解析结果 用于存储从各平台(GitHub, GitLab 等)解析的 Tree URL 信息

func ParseGitHubTreeURL added in v0.10.0

func ParseGitHubTreeURL(url string) (*TreeURLInfo, error)

ParseGitHubTreeURL 已废弃,请使用 ParseTreeURL Deprecated: Use ParseTreeURL instead

func ParseTreeURL added in v0.10.0

func ParseTreeURL(url string) (*TreeURLInfo, error)

ParseTreeURL 工厂方法,自动选择匹配的解析器解析 URL

func (*TreeURLInfo) CloneURL added in v0.10.0

func (t *TreeURLInfo) CloneURL() string

CloneURL 返回用于 git clone 的标准 URL

func (*TreeURLInfo) RepoSlug added in v0.10.0

func (t *TreeURLInfo) RepoSlug() string

RepoSlug 返回 owner/repo 格式的仓库标识

type TreeURLParser added in v0.10.0

type TreeURLParser interface {
	// Match 检测 URL 是否匹配该解析器的格式
	Match(url string) bool
	// Parse 解析 URL 返回 TreeURLInfo
	Parse(url string) (*TreeURLInfo, error)
	// Platform 返回平台名称标识
	Platform() string
}

TreeURLParser 定义仓库 Tree URL 解析器接口 每个平台(GitHub, GitLab 等)实现此接口以支持其特定的 URL 格式

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL