代码之家  ›  专栏  ›  技术社区  ›  Vasiliy Stepulo

将变量从Octopus项目导出到json文件

  •  2
  • Vasiliy Stepulo  · 技术社区  · 6 年前

    有没有办法使用Jenkins中的“命令”步骤将八达通变量导出到json文件? 根据八达通官方文档,我只能导出项目和版本。

    是否有任何方法可以从特定项目导出特定变量?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Sampath Dilhan    6 年前

    目前,您无法使用 Octo.exe

    但是您仍然可以使用 Octopus REST API 为了你的目的。

    首先,您必须创建 API Key ,这是访问这些API所必需的。 然后调用下面的API端点来获得您的特定项目。

    https://<your-octopus-installation>/api/projects/<project name>
    

    然后响应JSON包含 VariableSetId 您应该将其用于以下请求。

    https://<your-octopus-installation>/api/variables/<VariableSetId>
    

    对于上述每个请求,您应提供 X-Octopus-ApiKey 以API键为值的HTTP标头。请参考 this 了解更多详细信息。

    请注意,您不会得到敏感变量的值。

    提示: 当您通过浏览器访问八达通时,请观察它执行的HTTP请求。这将帮助您了解需要执行的API调用,以实现您的需求。

    如果您在C#中,可以尝试 Octopus.Client

        2
  •  1
  •   DanW    6 年前

    您还可以使用我刚刚发布的PowerShell*模块将Octopus部署配置导出到JSON文件:

    https://github.com/DTW-DanWard/OctopusDeployUtilities

    您可以使用Octopus部署实用程序(ODU)按REST API类型导出部分或全部数据。它还对导出数据进行后期处理,执行ID->姓名为您查找。它还附带了一系列有用的实用程序,比如一个函数,它将导出中的所有数据收集到一个对象中,这样您就可以通过编程方式解析、报告甚至单元测试您的配置。

    注意:您可能难以导出 只是 变量由Octopus Deploy服务器自行设置。Octopus Deploy在内部存储每个变量集的每个修订版本,当您调用API提取所有变量集数据时,您的API调用可能会因为所有这些修订而超时。ODU通过只获取项目正在使用的最新变量集数据和包含的库变量集来解决这个问题。

    *它是在PowerShell Core中编写和测试的,因此可以在所有操作系统上运行。它在Windows PowerShell 5中也运行良好。