捕获子进程的输出'子

时间:2014-02-26 03:23:19

标签: python git subprocess

我正在尝试编写一个python脚本来自动删除github中的标记。我的总体目标是拥有一个可以将二进制文件推送到开发版本的脚本。如果版本已经存在,我可以通过github API删除它。但是,发布版本也会生成标记,我需要在创建新版本之前删除该标记。如果在重新发布版本之前未删除该标记,则该版本将在错误的提交下列出,因为它将被分配给现有标记。

我知道我可以通过运行git push --delete origin :tagname作为子进程来删除标记。但是,我需要传递一个用户名+密码或授权密钥才能这样做。这是我尝试这样做的。

    proc = subprocess.Popen(['git','push','--delete','origin',tag_name],
                            stdin=subprocess.PIPE,stdout=subprocess.PIPE,
                            stderr=subprocess.PIPE)
    proc.communicate(access_token()+'\n\n')

但是,这会失败,因为它捕获git的输出时,它不会捕获由git启动的git-remote-https的输出,因此我无法提供访问令牌。有没有办法与子进程的子进程通信,以便我可以向git提供登录详细信息?

0 个答案:

没有答案