最近实现了github以及内部的gitbucket与redmine的同步。

redmine是内部使用的一套工单系统,用于跟踪bug和需求,由于最近同时开发的版本比较多,在不同分支的提交容易漏掉。现在改为用redmine的工单跟踪需求和bug修复,提交的时候,只要在提交日志里写上单号,机器人就可以将提交信息同步到表单,可以方便的跟踪到提交有没有漏提交到指定分支。

实现上居然很简单,整个过程还是很愉悦的。gitbucket方面比较简单,gitbucket的仓库属主可以添加一个hook,每次提交的时候gitbucket会调一下hook。调用里会包含提交的详细信息,包括分支、提交信息、具体改动的网页版地址。只要用正则搜出单号,然后利用redmine的rest api提交到表单里,就完成任务了。

github的动手前觉得困难一点,因为github在外网,工单系统是内网访问的。没想到github体贴的推荐了ngrok作为安全的内网穿透工具。指定好协议和端口号之后,启动ngrok客户端,会自动随机生成一个https的二级域名。对这个域名的访问,会落到内网的ngrok客户端上。中间的通讯是加密的。这项服务这么优秀,居然还是免费的!比国内的花某壳好多了。

打通内外网之后,剩下的步骤就和gitbucket的相差不多了。github的好处是每个人都可以对仓库设置自己的hook,还不止一个。遇到的小小的梗,是github的时间就是国内时区的,不像gitbucket还要从零时区算时间偏移。调试也很方便,每一次推送都可以在github上查阅到具体的请求内容,还能方便的redeliver,调到合适为止。

以后可以在表单里写明需要提交到哪些分支,然后提交后隔一段时间自动检查,发现有漏提交就提醒程序或者策划,不过目前很懒,没有动力做这个QAQ

git和redmine同步的更多相关文章

  1. 在windows下安装Git并用GitHub同步

    准备环境: 1,注册github账户 2,下载安装git(下载地址:https://git-scm.com/download/win) 注释: git是什么? git是版本管理工具,当然也是分布式的管 ...

  2. GIT实践:同步远程分支

    GIT实践:同步远程分支 克隆远程仓库对应分支 克隆时指定分支,语法为:git clone -b 分支名 远程地址. 同步远程分支 更新远程分支 当Git仓库地址发生变化后,首先更新远程地址 git ...

  3. Idea中通过Git将代码同步到GitHub

    一.Idea中配置Git 点击IntelliJ IDEA->Preferences...->Version Control->Git->Path to Git executab ...

  4. 使用putty与SSHSecureShellClient登录远程服务器完成与本地Git项目的同步

    使用软件远程登录管理服务器 今天给大家介绍两款远程登录管理服务器的软件(Putty和SSHSecureShellClient),这两款也是我在工作中经常的软件. 使用 PuTTY 远程登录管理服务器 ...

  5. Git与GitHub学习笔记(八)git如何同时同步提交到码云和GitHub上

    前言: 今天github push代码一直push不上去,打算就备份一份代码带国内开源码云上. Github容易出现的情况是: 国内访问速度比较慢, 如果被墙掉的话,就直接没发使用了 如果开源个PHP ...

  6. HBuilder git合作-代码同步

    1. 以下场景的操作都是同样的,包括:新建了文件.删除了文件.独占式修改文件(即不存在多人同时修改一个文件的情况) 提交 项目修改完成后,选中项目,右键Team->Commit 一般是选择Com ...

  7. Git与GitHub同步

    如何通过Git Bash实现本地与远端仓库——GitHub的同步 1.下载安装Git:下载网址 2.在自己的github上新建一个repository 例如我这里新建了一个叫test的reposito ...

  8. 将git本地仓库同步到远程仓库

    同步到远程仓库可以使用git bash 也可以使用tortoiseGit 1.使用git bash 在仓库的所在目录,点击右键选择“Git Bash Here”,启动git bash程序. 然后再gi ...

  9. git设置远程同步分支

    git push --set-upstream origin yourBranchName

随机推荐

  1. 调试 kafka manager 源码

    前提:可以上外网. kafka manager 是一款优秀的监控 kafka 的工具,采用 scala 语言编写,如何调试 kafka manager 呢? kafka manager 使用 play ...

  2. python - 列表,元组

    1.列表       定义:能装对象的对象     在python中使用[] 来描述列表,内部元素用逗号隔开,对数据类型没有要求.     列表存在索引和切片,和字符串的操作是一样的   2.列表相关 ...

  3. GuavaCache本地缓存学习总结

    https://my.oschina.net/u/2270476/blog/1805749 http://www.cnblogs.com/parryyang/p/5777019.html https: ...

  4. Mysql生产指定时间段随机日期函数

    UPDATE basicsale_b2b2c.basic_customer SET registerDate = ( from_unixtime( unix_timestamp('2017-01-01 ...

  5. Qt 按名称查找子节点

    TreeItem* TreeModel::GetItem(QStringList& list, TreeItem* parent ,int deep) { ).toString()) { if ...

  6. View事件体系

    View事件体系 文章目录 View事件体系 一.Android View基础知识 1.1 View简介 1.2 View分类 1.3 View的结构 1.4 View的坐标 1.4.1 Androi ...

  7. 第7天:Q Quant库(未完待续)

    一.本文大纲: 1.Python内置函数计算期权的价格 2.numpy加速数值计算 3.SciPy进行仿真模拟 4.SciPy求解器计算隐含波动率 5.matplotlib绘图 二.案例 (看不懂,略 ...

  8. python之路-----python操作 mysql

    ========================pymysql============================ 一.pymysql 基础 安装命令:pip3 install pymysql - ...

  9. 软件151 王楚博 JavaEE的配置

    一.准备以下压缩包 1.JDK1.7 文件:jdk1.7.rar 2. eclipse-jee-mars-2 文件:32位系统准备eclipse-jee-mars-2-win32.zip,64位系统准 ...

  10. Unable to determine the device handle for GPU 0000:01:00.0: GPU is lost.问题排坑

    在运行maskrcnn时,会碰到训练不动的问题,就卡在这儿 UserWarning: Converting sparse IndexedSlices to a dense Tensor of unkn ...