首页 > 解决方案 > devpi 索引中的 toxresult_upload 权限

问题描述

我正在使用 Python devpi服务器,当我创建索引时,它会添加一个默认设置acl_toxresult_upload=:ANONYMOUS:,但我无法找出它的含义。

当我在 Web 界面中查看索引时,它显示:

permissions

toxresult_upload
    Special: ANONYMOUS 

upload
    Users: my-user 

我用谷歌搜索了它,但找不到任何解释它的含义。我唯一能找到的是一个python 测试,表明它与上传测试有关,但我不确定这对 Pypi 索引意味着什么。

    # anonymous may upload tests
    assert with_user(permissionrequest, None).has_permission(
        'toxresult_upload', StageACL(stage, False))

标签: pythondevpi

解决方案


devpi支持tox在客户端对上传的包运行测试。流程大致如下:

  1. 创建 dist(例如python setup.py sdist)。为了使测试工作,分发必须包含测试脚本和tox.ini配置。
  2. 将 dist 上传到devpi,例如

    devpi upload --index hoefling/dev dist/mypkg-0.1.tar.gz
    
  3. 通过运行测试

    devpi test --index hoefling/dev mypkg
    

    这将从指定的索引下载 dist 并按照配置开始测试运行tox.ini

  4. 测试完成后,devpi-client会将测试结果上传到服务器,以便随时通过 Web UI 查看: 在此处输入图像描述 单击tests链接时,您将进入显示测试运行概览的页面:

在此处输入图像描述 通过单击引用单独测试运行的链接,您可以详细检查测试运行日志。

现在,acl_toxresult_upload类似于acl_upload,是允许将测试结果上传到该索引的用户列表。acl_toxresult_upload=:ANONYMOUS:意味着任何人都可以运行devpi test --index your_index yourpkg和上传测试结果。如果要限制访问,请按照限制包上传访问的方式进行:

$ devpi index your_index acl_toxresult_upload=me,admin,ci-bot

文档:devpi test:测试上传的包


推荐阅读