2

我已经用谷歌搜索了一个小时,但还没有找到解决方案。有没有办法编写一个 GIT 挂钩,将来自提交的 git 消息放入 postreceive 的 SQL Server 数据库中?我想做的是在我的数据库中存储一个包含我所有提交的表,就像 bitbuckets 问题跟踪器一样,如果提交消息类似于“关闭问题 #2”,我想关闭另一个表中的问题。

4

1 回答 1

1

如果您有一个知道如何更新您的 sql server 数据库的脚本,那么只需编写一个 post-receive 钩子来收集每个收到的提交的日志消息。

您可以在以下方面提出想法:

  • git post-receive 钩子,它抓取提交消息并回发到 URL ”。
    提炼:

     for revision in `git rev-parse --not $other_branches | git rev-list --stdin $revspec`; do
       # I don't know if you need to url-escape the content
       # Also you may want to transmit the data in a POST request,
       wget "http://server.com/logthis.asp?msg=$(git log $revision~1..$revision)"
     done
    
  • 营火后收钩
    提炼:

    text = `#{GIT} log --all --since='#{revtime}' --reverse`
    
  • fogbugz-git-integration”,这与您要查找的内容接近,因为它会解析提交消息,查找某些关键字。
    提炼:

    git log $oldrev..$newrev --pretty=format:~~CommitSubject:%s%n~~CommitHash:%H%n~~EOR%n | while read logentry;
      do
        # Parse out the commit subject
        if [ "${logentry:0:15}" == "~~CommitSubject" ]; then
           ...
    
于 2013-11-18T19:40:40.417 回答