我对窑炉一无所知,但我刚刚开始为VSoft工作,并正在为下一版FinalBuilder的Mercurial操作工作。希望这会有所帮助。
您是通过SSH还是SSL进行身份验证?你能从命令行拉出/推送到存储库吗?在FinalBuilder中,您可以从命令行使用的任何东西都是可能的。
要通过SSH进行身份验证到位桶,我做了以下内容:
- 下载的puttygen和选美
- 创建的puttygen一个新的SSH密钥
- 添加私钥选美
- 添加BitBucket的公钥
从那里,我可以成功地
hg push ssh://[email protected]/user/repo
注意,我也安装了TortoiseHG,Mercurial使用的是TortoisePlink作为ssh客户端。
如果您使用的是SSL,您可以将用户名/密码组合存储在FinalBuilder操作中。要将文本编辑框变为密码字段,请将PasswordChar
属性从#0
更改为*
。然后在ReadData
事件中,添加类似
Page.tbPassword.Text = DecryptString(Properties.PropertyAsString("Token"));
,并在WriteData
事件中,添加
Properties.PropertyAsString("Token") = EncryptString(Page.tbPassword.Text);
当你Token
属性添加到你的动作,勾选Property is Hidden from Action Inspector
和Property is Read Only in Action Inspector
选项。
要生成库的字符串,你会想要做这样的事情在行动的事件:
var repo = Context.Properties.PropertyAsString("Repository");
var username = Context.Properties.PropertyAsString("Username");
var password = DecryptString(Context.Properties.PropertyAsString("Token"));
var repo = "ssh://" + username + ":" + password + "@" + repo;
CommandLine.AddArgument("push", repo, qtNone);
NB,我没有测试的代码,但希望它给你的想法。
我们无法使用TeamCity工作,但遵循http://www.jetbrains.net/devnet/thread/286891的建议似乎解决了这个问题... – 2010-04-27 10:58:51