TeamCity与BitBucket云提交状态发布者。 404错误

时间:2016-05-31 21:51:37

标签: git bitbucket teamcity-9.0

我在让提交状态发布者工作时遇到问题。

详细说明:

  • TeamCity 9.1提交状态Publisher插件版本: snapshot-20160523141816 Bitbucket Cloud
  • git存储库类型打开 bitbucket.org

VCS设置:

  • 配置为使用私钥身份验证(带上传密钥)
  • 配置了多个分支。
  • 不使用VCS标签
  • 没有指定PUSH URL(应该回到FETCH URL,对吗?)

提交状态发布者设置:

  • 我已尝试过这些设置,既不是电子邮件地址也不是 用户名工作。

Commit Status Publisher Configuration Dialog

但是无论何时应该发布一条提交消息,我都会在TeamCity构建配置列表中弹出这个消息:

  

在构建#730中发布状态错误{build id = 68270,   buildTypeId = Project_BuildConfigurationName}:无法发布状态   Bitbucket Cloud for VCS root rootname:响应代码:404,原因:NOT   发现,消息:'未找到资源'

一个奇怪的设置是我使用ssh://git@altssh.bitbucket.org:443地址来解决一些出站防火墙限制,但我怀疑这会导致问题。

我是否需要使用服务帐户用户而不是SSH部署密钥配置VCS?如果可能的话,我宁愿不这样做。

4 个答案:

答案 0 :(得分:1)

提交状态发布者解析您使用的网址incorrectly。作为解决方法切换到标准ssh url git@bitbucket.org:owner / repo.git。

答案 1 :(得分:0)

未找到表示您的用户找不到指定的存储库。通常这意味着客户端的vcs设置不正确。

似乎问题在于没有专门用于构建本身的用户。 **您无法使用部署密钥写入存储库。任何形状或形式。 **通常的做法是创建一个'build'/'jenkins'/'teamcity'用户,该用户有权将构建输出写入位桶云本身。这与任何其他用户的创建相同。

我的下一个问题是,您是否需要将此信息写回到不受影响的云本身,或者仅在您的teamcity实例外部包含构建状态。假设你有充分的理由这样做,你绝对需要一个构建用户。

答案 2 :(得分:0)

似乎此特定错误消息无法呈现根本身的名称。这表明它不在系统本身。

Publish status error in build #730 {build id=68270,
buildTypeId=Project_BuildConfigurationName}: Cannot publish status to
Bitbucket Cloud for VCS root Rootname:<root_should_be_here> response
code: 404, reason: NOT FOUND, message: 'Resource not found'

参见: Source of the error message, see line 125.

也可能有趣:Source of the Repository Object

这意味着您的bitbucket repo本身没有正确注册,这与您连接到repo本身的能力非常不同, 仍然可以在没有连接本身的情况下注册

有趣的是,这似乎与Teamcity Common Issues上描述的问题相似,如果出现这样的话:

  

ID为“XXX”的VCS根目录不存在   构建配置或模板引用未在系统中定义的VCS根。   补救措施:恢复VCS根目录或创建具有标识的ID的新VCS根目录,或编辑消息中记录的文件以删除对VCS根目录的引用。

答案 3 :(得分:0)

毫无疑问

有关
final VcsRootInstance root = revision.getRoot();

无法找到git存储库的根实例。如果您可以建议在没有防火墙的情况下尝试此操作,因为可能存在与服务器同步的问题this页面说明

  

TeamCity会定期向版本控制系统查询新的更改,并显示已附加根目录的构建配置中的更改

getRoot()是supposed返回

  

版本的VCS root签出了构建版本。

并注意这是来自界面Interface SVcsRoot

  

vcs root的服务器端类。

因此,这肯定是服务器端配置问题,需要使用根reconfiguration进行补救。