Travis加密var无法正确解码乱码= [安全]

时间:2018-08-12 19:12:48

标签: git encryption travis-ci travis-ci-cli

我正尝试在travis-ci.com中使用一些加密的var,当travis从提交执行构建时,它们无法正确解码。您可以看到何时导出只是一个乱码。

设置:

  1. 在Ubuntu上运行:buster / sid
  2. 我已经安装了ruby-full
  3. 我已经安装了travis gem:1.8.8
  4. 我已经撤回了我的仓库,并且正在使用.travis.yml在文件夹中执行加密命令
  5. 它在我第一次运行加密命令时要求我验证它是否具有正确的存储库。
  6. 我希望我得到了正确的公钥,但是肯定看起来不像这样。
  7. 这一切都在docker容器中发生。
  8. 我要掌握。没有拉取请求。

我已经尝试过或搞砸的其他事情:

  1. 变量周围的单引号。
  2. 多个var或缺少破折号。拥有多个var会稍微改变格式,因为它们在安全码前面有一个“-”。该行将如下所示:- secure INXfNQealZn84xzQ6M0g...
  3. 在错误的repo文件夹中运行加密。

用于生成MYVAR的命令:

root@31ee1eba15d3:~/tigelane/stuff# travis encrypt MYVAR="somestuff" --add env.global
root@31ee1eba15d3:~/tigelane/stuff# tail -3 .travis.yml
env:
  global:
    secure: INXfNQealZn84xzQ6M0gyhqPOeF1GhOZ8g7V6bqqqZbbgPsW1eOUntJOMo/uilvG8j6BbV3SW8kiDjmH4TjrTCKJ4hevzunoKumXXGpiYQNj74LsCPgyiohebyWgf4cP/F71ay6vHzghfGYAnu2svBMHKIFTj8s8aOCVDIo/ntsmkeeRVfOMMMNFbNQEHTqSw0981xYdrMVrISFw/BgEHia0PQn7Ll9YUN0/lQ9AFamyrflfp8dS3toP0fZiPnfgxIaENXS1wsQkCheday6quyAG8j6LE9YUHLq4Yzv5ZyRp/aOivugc8MKA+qAcFGpwhrcAGz5Rbo9lNXFnrcF93mqBs2FO0OLOWExjBryPH5shO/YWGNYWDX8cykOC4+AXmlUMcsgIHihKXSHB0E5Qo+dFyVKKSeLfpLOVHg+utf1thm9pxhW2DGynqCktHS26Bnfhr5Hay2CCYrv+eI8E5sv8ZzqRPDNdtuCsIxO1+UCVfavp9BDW3YxtZg44TNR+fA258SFa7KZtJtG95kOPNwWnBJQiITuu85OjY36pCwsJX0vq883RAOA/jIdNn+eYsyvyHi5cfQGUPD3HGLh9+zN+LQURXHrYu6tfjPjcIk83c37MtGEfmYcwgLzAxYL61SXJbr0IIEVc1x3+sqI72mUtHwsyUxmgpoGVoyZcJrg=

我在Travis作业日志中得到的输出:

Setting environment variables from .travis.yml
$ export sqI72mUtHwsyUxmgpoGVoyZcJrg=[secure]

我在Travis作业日志中期望的输出:

Setting environment variables from .travis.yml
$ export MYVAR=[secure]

2 个答案:

答案 0 :(得分:0)

您忘记了一个破折号:

<form  class="message-editable" on:submit="save(event)">
    <label><span >text</span><input  type="text"  bind:value=message.text required></label>
    <label><span>id</span><input  type="text" bind:value=message.id required></label>
    <div><button type="submit">Save</button></div>
</form>

<script>
    export default {
        methods: {
            save(event){
                event.preventDefault();
                this.set({isEditing: false});
            },
        },
    };
</script>

请参见https://docs.travis-ci.com/user/environment-variables/#defining-encrypted-variables-in-travisyml

答案 1 :(得分:0)

至少在我看来,我知道解决方案。使用travis加密时。您应该指定是否在travis-ci.com域上运行。如果您在使用,并且像链接到travis集成的公共github一样使用。您需要使用--com参数

示例:

travis encrypt --com "MYVAR='something'"

这将提供正确的输出。在手册中,它并没有赋予该标志足够的状态,因此我一开始就掩盖了它的含义,但并不确定其作用。显然是因为它具有不同的加密密钥。