我想使CI系统中使用的git push命令的输出静音,这可能会泄漏敏感信息。
命令是:
git --quiet push > /dev/null 2>&1
,因此它不应在屏幕上打印任何内容。但是当身份验证失败时,它仍会打印Password for 'https://xxxx@github.com':
。
这怎么会发生以及如何使其静音?
更新:
尽管我不确定,但我猜git会调用getpass()
或类似的东西直接写入/dev/tty
。
答案 0 :(得分:1)
为防止按键记录并解决重定向问题,请通过/dev/tty
完成密码提示。在Python的getpass中了解其操作方法。
答案 1 :(得分:1)
Git显式打开/dev/tty
来读取和读取和文字,用于密码提示。
/dev/tty
是在1979年左右添加到Unix的,它允许程序获取到控制终端的文件描述符,因此,在占用stdin以及重定向stdout和stderr时,都可以进行用户输入。
请参见How does less
take data from stdin while still be able to read commands from user?