GitHub加速.psd1

# GitHub加速 模块清单
# 通过多个 GitHub 镜像站点自动尝试 git fetch,按历史成功率智能排序。

@{

    # 模块版本
    ModuleVersion     = '1.2.0'

    # 模块 GUID
    GUID              = '120952b7-5ab7-4f8c-bb27-3aa50bf5929f'

    # 作者
    Author            = '埃博拉酱-机器人'

    # 公司名称
    CompanyName       = '一致行动党'

    # 版权声明
    Copyright         = '(c) 2026 一致行动党。MIT 许可证。'

    # 模块描述
    Description       = '通过多个 GitHub 镜像站点自动尝试 git 操作,按历史成功率智能排序,实现国内无障碍访问 GitHub 仓库。
 
命令用法:
 
1. 拉取-GitHub镜像:在现有仓库中通过镜像站 fetch + 快进合并拉取当前分支。
   拉取-GitHub镜像 [-镜像站前缀 <镜像URL列表>] [-远程名 origin]
   例:拉取-GitHub镜像;拉取-GitHub镜像 -远程名 upstream
 
2. 克隆-GitHub镜像:通过镜像站浅克隆仓库(--depth 1 --single-branch),仅取默认分支最新提交;克隆完成后自动将远程 origin 改回原始 GitHub 地址,后续 git 操作不受镜像影响。
   克隆-GitHub镜像 <仓库HTTPS/SSH地址> <本地路径> [-镜像站前缀 <镜像URL列表>]
   例:克隆-GitHub镜像 "git@github.com:用户/仓库.git" "D:\Repo"
 
3. 推送-GitHub:直连推送当前分支,支持可选代理。若当前分支尚无跟踪则自动建立跟踪。
   推送-GitHub [<仓库目录,默认当前目录>] [-代理 <代理地址>] [-远程名 <远程>]
   远程自动解析:有 origin 用 origin;无 origin 且仅一个远程则用该远程;无 origin 且多个远程则报错。
   代理首次指定即永久记住,以后无需再指定;传空字符串可清除。代理仅以 git -c http.proxy/-c https.proxy 本次进程内生效,不影响手动 git。
   启用 LFS 的仓库会自动检测推送范围是否改动 LFS 文件,未改动则自动跳过 LFS 对象上传。
   例:推送-GitHub -代理 "http://127.0.0.1:7890";推送-GitHub
 
4. 查看-镜像统计:查看各镜像站的历史成功率、耗时等统计。
   查看-镜像统计
 
5. 重置-镜像统计:清除镜像统计记录,从头开始。
   重置-镜像统计'


    # PowerShell 最低版本
    PowerShellVersion = '5.1'

    # 模块脚本(.psm1 文件)
    RootModule        = 'GitHub加速.psm1'

    # 导出函数
    FunctionsToExport = @(
        '拉取-GitHub镜像',
        '克隆-GitHub镜像',
        '推送-GitHub',
        '查看-镜像统计',
        '重置-镜像统计'
    )

    # 私有数据
    PrivateData       = @{
        PSData = @{
            Tags         = @('git', 'GitHub', '代理', '提取', '拉取', '镜像', '加速', '中国')
            LicenseUri   = 'https://opensource.org/licenses/MIT'
            ProjectUri   = 'https://github.com/Ebola-Chan-bot/GitHub-Acceleration'
            ReleaseNotes = '推送-GitHub 新增 LFS 自动检测:推送范围内的提交未改动 LFS 文件时自动跳过 LFS 对象上传(避免为上游大体积 LFS 数据白等,如 fork 的大仓库仅推送代码提交的场景)。'
        }
    }
}