/kratos-gorm-git

基于kratos-gorm-git实现的代码托管平台

Primary LanguageGoMIT LicenseMIT

Kratos gorm git

使用kratos+gorm搭建的Git代码托管平台

kratos 参考文档:https://go-kratos.dev/

gorm 参考文档:https://gorm.io/zh_CN/docs/

B 站视频教程:https://www.bilibili.com/video/BV17Y4y1y7jt/

同类产品

  1. Github 全球最大的代码托管平台
  2. Gitee 国内最大的代码托管平台
  3. Gitea 轻量级的开源的代码托管平台

安装

  1. 安装 cli 工具
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest 
  1. 初始项目
kratos new kratos-gorm-git
  1. 运行
kratos run

相关命令

# 用户模块
# 创建 user.proto
kratos proto add api/git/user.proto
# 创建 PB
kratos proto client api/git/user.proto
# 生成 Service
kratos proto server api/git/user.proto t internal/service

# 仓库模块
# 创建 repo.proto
kratos proto add api/git/repo.proto
# 创建 PB
kratos proto client api/git/repo.proto
# 生成 Service
kratos proto server api/git/repo.proto t internal/service

# config init pb
kratos proto client internal/conf/conf.proto

核心扩展

go get github.com/asim/git-http-backend

系统模块

  • 仓库管理
    • 仓库列表
    • 新增仓库
    • 修改仓库
    • 删除仓库
    • 仓库授权
  • 用户管理
    • 登录
  • GIT服务
    • 新建仓库
    • git-http-backend
    • 鉴权

快速体验GIT远程仓库

  1. 初始化空的存储仓库
git init --bare /root/git-test/hello.git 

2.生成ssh密钥

ssh-keygen -t rsa -C "get@qq.com"
  1. 将客户端生成的公钥复制到服务器端
# 公钥文件地址
cat ~/.ssh/id_rsa.pub
# 服务端的配置文件路径
vi ~/.ssh/authorized_keys
  1. 操作远程仓库
# clone
git clone root@119.27.164.148:/root/git-test/hello.git
# 添加远程仓库
git remote add origin root@119.27.164.148:/root/git-test/hello.git
# 推送本地代码到远程仓库
git push -u origin master

Git 远程仓库的其他实现

  1. 使用git守护进程
git daemon --export-all --verbose --base-path=. --export-all --port=9091 --enable=receive-pack 
  1. 使用http-backend