如何为工作空间内的http_archive指定凭据?

问题描述

我想使用工作区中包含的netrc文件为http_archive中的单个URL指定凭据。我尝试了以下方法但没有成功:

  1. 我试图指定URL的“ userinfo”部分(如http://<user>:<password>@host/path只是为了获得身份验证错误。
  2. 我已经修改了netrc的{​​{1}}属性,但是我只能看到如何在此处使用绝对路径名;我希望将netrc包含在我的工作区中。

我是否必须编写自己的存储库规则,或者还有另一种方法?

解决方法

看看这个PR,名称为“ Readed support for authentication and .netrc”。它似乎包含支持http_archive文件的.netrc的改进版本。

def _http_archive_impl(ctx):
    ...
    "netrc": attr.string(
        doc = "Location of the .netrc file to use for authentication",),...

我不知道此功能的当前状态-也许它已经是最新Bazel版本的一部分(在撰写本文3.4.1时)

,

同时,由于找不到简单的替代方法,因此创建了自己的存储库规则。这样做很好,但是缺少 @ProcessElement public void processElement( ProcessContext context,@StateId("index") ValueState<Integer> index) { int current = firstNonNull(index.read(),0); context.output(KV.of(current,context.element())); index.write(current+1); } 的全面文档,因此证明是反复试验的;-)。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...