icyleaf / hpr

镜像任意 git 仓库到 gitlab 的同步工具,具有定时更新的功能
https://hpr.ews.im
MIT License
93 stars 23 forks source link

是否可以支持通过Hook来触发同步 #6

Closed Gourds closed 5 years ago

icyleaf commented 5 years ago

提供 rest http api 你可以用来干任何事 https://hpr.ews.im/#/api

你打算要做什么事情?

-- /**

Gourds commented 5 years ago

需求是,有一个内网仓库,当有新提交时镜像同步到外网的一个仓库

Gourds commented 5 years ago

是否可以支持将 定时触发 修改为 条件触发

icyleaf commented 5 years ago

你可以利用 git hook 的 post-update 钩子 + hpr update repository api 写你需要更新触发的脚本即可

-- /**

Gourds commented 5 years ago

@icyleaf 直接使用Hook调用你项目提供API接口就行了是吧,以下这个接口就是这个作用吧,

PUT /repositores/:name

多谢,我先试试

Gourds commented 5 years ago

@icyleaf 不好意思再问一下

docker run -d --restart=unless-stopped --name hpr \
  -v /data/Docker_build/Git_Hpr/hpr-data:/app \
  -v /data/Docker_build/Git_Hpr/hpr-redis-data:/data \
  -e HPR_SSH_HOST=bitbucket.taiyouxi.net \
  -e HPR_SSH_PORT=7999 \
  -p 8848:8848 \
  icyleafcn/hpr:0.10.0-ubuntu

这个启动命令,是说将HPR_SSH_HOST上的仓库,同步到hpr.json中定义的gitlab上去,是这样么? 如果是的话,怎么才能让docker连接上HPR_SSH_HOST这个主机呢,我看好像没有相关的配置

icyleaf commented 5 years ago

HPR_SSH_HOSTHPR_SSH_PORT 是 ssh 到目标 gitlab 服务的配置,这个是为了让 hpr 可以生成 ssh key 并由用户添加到 gitlab 服务后允许 hpr 可以 push 等操作。

Gourds commented 5 years ago

那就是说hpr.json这个文件里配置的是源GIt的信息

[root@server_jira Git_Hpr]# cat hpr.example.json
{
  "schedule_in": "1.day",
  "basic_auth": {
    "enable": false,
    "user": "hpr",
    "password": "p@ssw0rd"
  },
  "gitlab": {
    "ssh_port": 22,
    "endpoint": "http://gitlab.example.com/api/v3",
    "private_token": "<change-me>",

    "group_name": "mirrors",

    "project_public": false,
    "project_issue": false,
    "project_wiki": false,
    "project_merge_request": false,
    "project_snippet": false
  },
  "sentry" : {
    "report": false,
    "dns": "http://<key>@<host>:<port>/<project>"
  }
}

然后启动配置的HPR_SSH_HOST这些是目标git的信息,是这样么

icyleaf commented 5 years ago

你上面发的是 sample 啊

icyleaf commented 5 years ago

请仔细看我整理好的范例 https://hpr.ews.im/#/examples,如果再有疑问重开本 issue

Gourds commented 5 years ago

好的,谢谢