1

我们使用Puppetlabs VCSRepo来签出存储库。完成后,我们想推送一个包含新版本 SHA 的通知。我不知道如何得到这个。

我们像这样使用 VCS Repo:

vcsrepo { "/opt/ourcompany/distribution":
    ensure   => latest,
    owner    => $owner,
    provider => git,
    require  => [ Package["git"], User["ouruser" ]],
    source   => "git@domain.com:our/repository.git",
    revision => 'master',
    user => $owner,
}

然后我们设置一个这样的通知:

exec { "send-hipchat-message" :
   command => "curl -d \"$body\" $url", #Parameters are set somewhere else
   path => "/usr/bin/",
   subscribe => Vcsrepo["/opt/ourcompany/distribution"],
   refreshonly => true
}

所以问题是:如何获得 vcs repo 刚刚更新到的修订版的 SHA?

4

1 回答 1

1

要获取最新提交的 SHA,您可以使用来自另一个答案的任何命令:如何在 Git 中检索当前提交的哈希?

之后,您只需要修改您的命令以从带有源的目录中exec调用类似的东西。git rev-parse HEAD这里简单的例子:

exec { "send-hipchat-message" :
   command     => "echo \"SHA: $$(git rev-parse HEAD)\"",
   path        => "/usr/bin",
   subscribe   => Vcsrepo["/opt/ourcompany/distribution"],
   require     => Vcsrepo["/opt/ourcompany/distribution"],
   cwd         => '/opt/ourcompany/distribution',
   refreshonly => true
}

注意cwd,requirecommand属性。

于 2013-10-17T12:24:10.547 回答