如何使用Python将文件上传到GitLab的WIKI

问题描述 投票:0回答:2

使用Python模块python-gitlab,可以直接在GitLab服务器上完成项目管理,而无需使用内置的GitLab WEB-GUI。因此,可以通过编程方式操作 git 存储库和 wiki。

现在,我找到了一种使用此代码下载、编辑和上传 wiki 页面的方法:

# connect to GitLab server
gl = gitlab.Gitlab(
    <URL>,
    private_token=<TOKEN>,
    api_version=4,
    ssl_verify=False
)

# get list of owned projects
lstProjects_owned = gl.projects.list(owned=True)

lstProjectNames_owned = []
for i in range(0, len(lstProjects_owned)):
    lstProjectNames_owned.append(lstProjects_owned[i].name)

# get wiki page
idxProject = 0
slgWiki = 'home'
WikiPage = lstProjects_owned[idxProject].wikis.get(slgWiki)

但我还没有找到(在阅读各种文档后)如何上传可以通过 wiki 页面中的超链接访问的文件。

有人知道如何做到这一点(最好使用 Python 和 python-gitlab 模块)吗?

python file-upload gitlab wiki
2个回答
2
投票

这是我发现的:

您应该使用 gitlab api 与项目的 wiki 存储库 进行交互,并以这种方式上传文件。了解如何克隆 wiki 存储库以及如何上传文件。查看此问题的答案,了解有关上传文件位置的更多信息。

然后,只需使用您已在示例中使用的 wiki API 编辑 wiki 页面,其中包含指向上传文件的超链接。

我不使用 gitlab 或此 API,但这些链接应该可以帮助您开始解决问题。


0
投票

尚不支持“上传附件到 Wiki”功能。 但我们可以使用 http_post() 方法作为解决方法

可行的示例是这里

filename = "myfile.png"
with open(filename,"rb") as f:
        filedata = f.read()
   url = "/projects/%d/wikis/attachments"%prj_id 
    file_info = {"file": (filename, filedata)}
    ans = gl.http_post(url, files=file_info)

    if 'link' in ans and 'markdown' in ans['link']:
        daily = daily + "\n" + ans['link']['markdown']

© www.soinside.com 2019 - 2024. All rights reserved.