我对Kiln一无所知,但我刚开始为VSoft工作,并正在为FinalBuilder的下一个版本开发Mercurial操作。希望这些内容能够有所帮助。
您是通过SSH或SSL进行身份验证的吗?您能否从命令行中拉取/推送存储库?几乎任何您可以从命令行中使用的功能都可以在FinalBuilder中实现。
要通过SSH对BitBucket进行身份验证,我执行了以下操作:
- 下载puttygen和pageant
- 在puttygen中创建新的SSH密钥
- 将私钥添加到pageant中
- 将公钥添加到BitBucket中
从那里,我可以成功地
hg push ssh://hg@bitbucket.org/user/repo
我还安装了TortoiseHG,Mercurial正在使用TortoisePlink作为ssh客户端。
如果您正在使用SSL,可以在FinalBuilder操作中存储用户名/密码组合。要将TextEdit框转换为密码字段,请将PasswordChar
属性从#0
更改为*
。然后在ReadData
事件中添加类似以下内容:
Page.tbPassword.Text = DecryptString(Properties.PropertyAsString("Token"))
在WriteData
事件中添加以下内容:
Properties.PropertyAsString("Token") = EncryptString(Page.tbPassword.Text)
当您向操作添加
Token
属性时,请选中
从操作检查器中隐藏属性
和
在操作检查器中只读属性
选项。
要生成您的存储库字符串,您需要在操作的
GetCommandLine
事件中执行以下操作:
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);
注意,我没有测试过这段代码,但希望它能给你提供一些想法。