【问题标题】:VSTS Continuous Integration with secure filesVSTS 与安全文件的持续集成
【发布时间】:2018-07-28 04:44:09
【问题描述】:

你好 Stackoverflowers,

我最近在 VSTS 和 GIT 上玩了很多 CI-CD。我有一组参考安全文件的构建任务。我使用“下载安全文件”任务在构建时访问这些文件。但是,我想知道是否有办法提交这些文件,或者至少从我的开发环境中自动更新它们。目前,这些文件需要手动上传,这是错误的。 谢谢

【问题讨论】:

    标签: continuous-integration azure-devops continuous-deployment azure-pipelines continuous-delivery


    【解决方案1】:

    您可以使用 API 删除和上传库中的安全文件。

    对于安全文件删除,请使用 PUT API
    https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles/{secureFileID}?api-version=5.0-preview.1

    对于安全的文件上传,请使用 POST API https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles?name={fileName}&api-version=5.0-preview.1

    Content-Type=application/octet-stream

    【讨论】:

    • 使用 PUT 删除时出现错误。 "请求的资源不支持 https 方法 'PUT'。"
    • @spentag 使用 DELETE http 方法删除文件。您还需要发出 GET 请求以获取 secureFileId
    【解决方案2】:

    目前,无法自动更新安全文件。您需要手动上传安全文件。

    当上传已存在的安全文件名时,您需要删除现有的文件名并添加新的同名文件。

    还有用户声音Allow us to update an existing Secure File instead of having to delete and re-upload建议这个功能,你可以投票和跟进。

    【讨论】:

    • 感谢您的回答。但是,我不确定我们是否在谈论同一件事。我说的是“安全文件”:docs.microsoft.com/en-us/vsts/build-release/concepts/library/…。你推荐的我试过了,还是不行
    • 由于安全文件位于$(Agent.WorkFolder)\_temp目录下,您应该先将安全文件移动到$(Build.SourcesDirectory),然后将文件提交到git repo中。
    • 那不是意味着我会放弃整个概念背后的安全功能吗?这意味着任何有权访问存储库的人都可以轻松访问这些文件。这也意味着整个静态加密概念将丢失,对吧?
    • 是的,对于有权访问 git repo 或分支的用户,他们可以看到安全文件。您在手动提交和推送时是否也遇到同样的问题?解决方法是将安全文件提交并推送到某个分支,只有某些用户有权查看该分支。
    • @COR 如果您只想要位于库中的安全文件(而不是提交到 repo),则无法在库中自动更新安全文件,我更新了我的答案,您可以找到更多详细信息在里面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多