【问题标题】:Why is #regex used in task.json in Azure DevOps extension? What does it check for?为什么在 Azure DevOps 扩展的 task.json 中使用 #regex?它检查什么?
【发布时间】:2020-10-16 06:29:39
【问题描述】:

我遇到了这个问题,想知道这意味着什么以及它是如何工作的? 在这里使用#regex有什么意义,它是如何扩展的?

https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DownloadPackageV0/task.json

 "endpointUrl": "{{endpoint.url}}/{{ **#regex ([a-fA-F0-9\\-]+/)[a-fA-F0-9\\-]+ feed }}_apis**/Packaging/Feeds/{{ **#regex [a-fA-F0-9\\-]*/([a-fA-F0-9\\-]+) feed** }}{{#if view}}@{{{view}}}{{/if}}/Packages?includeUrls=false"

我还想知道如果提要中有数千个包,它将返回并显示在任务输入 UI 下拉列表中。是否有已知的限制,例如前 100 名之类的?

【问题讨论】:

    标签: azure-devops azure-devops-rest-api azure-artifacts azure-devops-extensions


    【解决方案1】:

    #regex 似乎实际上并没有在任何地方记录,但它需要两个以空格分隔的参数。第一个是正则表达式,第二个是“路径表达式”,标识要匹配的值,在本例中是 feed 输入参数的值。如果正则表达式匹配该值,则返回第一个捕获子表达式,否则返回空字符串。

    在此特定上下文中,feed 参数的格式设置为“projectId/feedId”,其中 projectId 和 feedId 是 GUID,并且 projectId 和 / 被删除用于组织范围的提要(即不是 的提要在一个项目中)。因此,第一个正则表达式提取项目 ID 并将其插入 URL,第二个正则表达式提取提要 ID 并将其插入 URL。

    在撰写本文时,它调用的 API 的默认限制为 1000。

    【讨论】:

    • 谢谢@Jonathan。限制是否也适用于任务输入 U 作为pickList 的一部分?或者由于任何其他已知限制,UI 会填充更少数量的包?
    • 我提到的限制是调用 API 将 返回 的条目数的默认限制。我不知道UI方面是否有进一步的限制。
    • 也许您也知道如何回答这个问题? stackoverflow.com/questions/70834090/…
    【解决方案2】:

    Regex 代表正则表达式,它允许您匹配任何模式,而不是精确的字符串。您可以在 Azure Devops here 中找到有关如何使用它的更多信息

    这个正则表达式非常具体。在这种情况下,正则表达式 ([a-fA-F0-9\\-]+/)[a-fA-F0-9\\-]+\ 匹配以下 一个或多个 1) 字母 a-f(小或大写)或 2) \ 或 3) - 后跟 @ 987654328@ 然后再次一个或多个这些字符。

    您可以将正则表达式[a-fA-F0-9\\-]+/)[a-fA-F0-9\\-]+ 复制到https://regexr.com/ 中进行操作,看看哪些与模式匹配。
    例子:

    • 匹配a/a a/b abcdef-\/dcba
    • 不匹配/aabcdefthis-doesn't-match

    请注意,完整的端点由正则表达式和硬编码字符串的串联组成!

    【讨论】:

    • 感谢卡斯帕的回复!我应该更具体。我知道 Regex 一般是什么,但想知道它在这个特定的上下文中是如何工作的,以及它实际上在检查什么。更新了我的问题以更好地反映这一点
    • 好吧,那我误解你的问题了哈哈。我不确定您是否可以事先告知它将返回多少个包裹,但据我所知没有。
    • 也许您也知道如何回答这个问题? stackoverflow.com/questions/70834090/…
    猜你喜欢
    • 1970-01-01
    • 2015-11-04
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多