Python 将文件推送到 Github 远程仓库,无需本地工作目录

2024-02-28

我正在开发一个基于 Python 的 Web 应用程序,用于协作 xml/文档编辑,客户端的一个要求是用户应该能够将他们创建的文件(并保存在服务器上)直接推送到 Github 远程存储库,而无需需要在服务器上创建本地克隆(即没有本地工作目录或任何类型的跟踪)。在 GUI 术语中,这相当于访问 Github 网站并通过单击“上传文件”或“创建新文件”按钮手动将文件添加到远程存储库,或者只需编辑 Github 网站上远程存储库上的现有文件然后在网络浏览器中提交更改。我想知道这个功能是否可以使用一些 Python Github 模块或使用 Github API 或其他东西从头开始编写一些代码来实现?


因此,您可以通过 API 创建文件,如果用户有自己的 GitHub 帐户,您可以将其上传。

让我们使用 github3.py 作为示例来说明如何执行此操作:

import github3

gh = github3.login(username='foo', password='bar')
repository = gh.repository('organization-name', 'repository-name')
for file_info in files_to_upload:
    with open(file_info, 'rb') as fd:
        contents = fd.read()
    repository.create_file(
        path=file_info,
        message='Start tracking {!r}'.format(file_info),
        content=contents,
    )

您需要检查它是否返回一个您希望验证文件是否已成功上传的对象。您还可以指定committer and author字典,这样您就可以将提交归因于您的服务,这样人们就不会假设该人是在本地 git 设置上创作的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 将文件推送到 Github 远程仓库,无需本地工作目录 的相关文章

随机推荐