我正在尝试编写一个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提供登录详细信息?