Azure DevOps Server本地部署用pr-inspection-assistant遇http协议错误
问题分析与解决方案
错误原因
你遇到的Protocol "http:" not supported. Expected "https:"错误,本质是**pr-inspection-assistant扩展仅支持HTTPS协议的Azure DevOps端点**,但你的本地Azure DevOps Server当前运行在HTTP模式下,导致流水线变量System.TeamFoundationCollectionUri返回HTTP格式的链接,触发了扩展的协议校验逻辑。
为什么Azure DevOps Server返回HTTP链接?
- 本地部署的Azure DevOps Server的访问协议(HTTP/HTTPS)由管理员在部署或后续配置阶段决定,云端Azure DevOps Services是微软托管服务,默认强制使用HTTPS;而本地服务器如果未配置有效的SSL证书(包括自签名证书或CA签发证书),就只能运行在HTTP模式。
- 部分企业出于内网环境的信任策略(比如仅允许内部员工访问,无需公网暴露),会选择暂不配置HTTPS,直接使用HTTP作为访问协议。
可行解决方案
方案1:为本地Azure DevOps Server配置HTTPS
这是最规范的解决方式,步骤如下:
- 为Azure DevOps Server所在服务器申请并安装SSL证书(可使用企业内部CA签发的证书,或自签名证书用于测试)。
- 打开Azure DevOps Server配置工具,找到集合的访问设置,将绑定协议从HTTP修改为HTTPS,并指定对应的SSL证书。
- 更新所有相关的访问配置(包括团队项目集合的URL、流水线变量等),确保
System.TeamFoundationCollectionUri返回HTTPS格式的链接。
方案2:修改扩展代码兼容HTTP协议(若有自定义权限)
如果无法修改服务器的HTTPS配置,可尝试调整pr-inspection-assistant扩展的代码:
- 找到扩展中校验请求协议的逻辑部分,移除仅允许HTTPS的限制,或添加对HTTP协议的兼容处理。
- 例如,在扩展使用的HTTP客户端配置中,取消对HTTP协议的禁用(部分Node.js客户端默认会限制HTTP,需显式允许)。
内容的提问来源于stack exchange,提问作者Hassaan Faruq
相关产品推荐
相关产品推荐

