【问题标题】:GitlabParsingError when accessing a project with GitLab API with Python使用 Python 访问带有 GitLab API 的项目时出现 GitlabParsingError
【发布时间】:2021-12-20 01:51:41
【问题描述】:

我尝试使用 python-gitlab 模块访问私有 GitLab 实例上的项目(请查看屏幕截图以获取版本号)。

我创建了一个对 GitLab 存储库的 Web UI 具有所有权限的访问令牌,并将此令牌复制到我的 Python 代码中:

import gitlab

gl = gitlab.Gitlab("https://MyGit.com/.../MyProject", "k1WMD-fE5nY5V-RWFb-G")
print(gl.projects.list())

Python在执行过程中抛出如下错误

Exception: GitlabParsingError       (note: full exception trace is shown but execution is paused at: <module>)
Failed to parse the server message

During handling of the above exception, another exception occurred:


The above exception was the direct cause of the following exception:

  File ".../app.py", line 226, in <module> (Current frame)
    print(gl.projects.list())

【问题讨论】:

    标签: python-3.x gitlab gitlab-api


    【解决方案1】:

    gitlab.Gitlab() 的第一个参数是 实例基本 URL,而不是项目的完整路径。例如https://gitlab.example.com。您还应该使用关键字private_token

    因此,除非您的实例位于相对路径中,否则您应该:

    gl = gitlab.Gitlab('https://MyGit.com', private_token='your API key')
    

    【讨论】:

    • 所以不能通过使用项目特定的 URL 和令牌将 API 的视图限制到一个特定的项目吗?几秒钟前,我通过使用实例 URL 和一个特定项目的私有令牌进行了尝试。但是我可以读出很多ID [&lt;Project id:116&gt;, &lt;Project id:114&gt;, &lt;Project id:112&gt;, &lt;Project id:111&gt;, &lt;Project id:109&gt;, &lt;Project id:108&gt;, &lt;Project id:105&gt;, ...
    • 您可以使用项目范围的令牌,但您将始终以与基本 URL 相同的方式初始化 gl 对象。 Project-scoped tokens 就像任何其他令牌一样,它们只是属于只能被授予对为其创建令牌的特定项目的写入权限的机器人用户。但该令牌也可能有权读取其他公共/内部项目。 @Kampi
    猜你喜欢
    • 2017-02-03
    • 2019-09-20
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多