【问题标题】:Powershell download file from gitlab using correct path for subdirectory使用正确的子目录路径从 gitlab 下载 Powershell 文件
【发布时间】:2022-01-08 18:18:05
【问题描述】:

我们的工具团队设置 Ansible Tower 以使用托管在内部 gitlab 上的 .ini 文件中包含的清单。我无法改变这一点。随着环境中内容的变化(新版本、停用等),我需要修改这些文件

我觉得我很接近。

我可以使用私有访问令牌连接到 gitlab 并获得结果,但我无法弄清楚下载 README.md 文件以外的文件的路径是什么

Invoke-RestMethod -Uri 'https://git.toolsite.com/api/v4/projects/13001/repository/files/README.md?ref=main' -Headers $Headers -Method GET

file_name : README.md file_path : README.md size : 139 encoding : base64

我也可以递归列出文件:

Invoke-RestMethod -Uri 'https://git.toolsite.com/api/v4/projects/13001/repository/tree?ref=main&per_page=100&recursive=true' -Headers $Headers -Method GET
   
id   : 4cf897a48c777c58b6cfdb1705d9e0fe28602a10
name : Windows_Non-Prod_Servers_Inventory.ini
type : blob
path : Inventory/Windows_Non-Prod_Servers_Inventory.ini
mode : 100644

id   : 0ce79694fb4511b8a90379250ee829cd20b281f3
name : Windows_Prod_Servers_Inventory.ini
type : blob
path : Inventory/Windows_Prod_Servers_Inventory.ini

但我无法为 Inventory/Windows_Prod_Servers_Inventory.ini 找到正确的路径

Invoke-RestMethod -Uri 'https://git.toolsite.com/api/v4/projects/13001/repository/files/Inventory/Windows_Non-Prod_Servers_Inventory.ini?ref=main' -Headers $Headers -Method GET

Invoke-RestMethod : {"error":"404 Not Found"}

另外,在浏览器中,该文件的 URL 是 https://git.toolsite.com/bswh/bswh_windows/-/blob/main/Inventory/Windows_Non-Prod_Servers_Inventory.ini

我需要一点帮助

谢谢

【问题讨论】:

    标签: powershell api gitlab


    【解决方案1】:

    我使用来自https://docs.gitlab.com/ee/api/index.html#namespaced-path-encoding的信息弄清楚了

    您必须在目录名称之后“编码”任何“/”。所以在我的情况下,../files/Inventory 很好,但之后必须编码'/'。

    Invoke-RestMethod -Uri 'https://git.toolsite.com/api/v4/projects/13001/repository/files/Inventory%2FWindows_Non-Prod_Servers_Inventory.ini?ref=main' -Headers $Headers -Method GET
    

    还有任何想知道标题的人。从 gitlab 获得“私人访问令牌”后,标题如下所示:

    $privateAccessToken = "xxxxxxxxxxxxxxx" 
    $Headers = @{
        'PRIVATE-TOKEN' = $privateAccessToken
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 2019-08-29
      • 2017-06-17
      • 2019-04-30
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多