我github3.py
用来访问我组织的 Github 帐户,并且我们启用了双因素身份验证。我首先列出存储库。这是代码:
import os
import github3
USER = os.environ['GITHUB_USERNAME']
PASS = os.environ['GITHUB_PASSWORD']
try:
# Python 2
prompt = raw_input
except NameError:
# Python 3
prompt = input
def get_second_factor():
print("Authenticator called")
code = ''
while not code:
# The user could accidentally press Enter before being ready
code = prompt('Enter 2FA code: ')
print("Received code:", code)
return code
gh = github3.login(USER, PASS, two_factor_callback=get_second_factor)
org = gh.organization("<ORGNAME>")
for repo in org.iter_repos(type="all"):
print(repo.ssh_url)
不幸的是,似乎不仅调用github3.login
触发第二个因素的请求,调用org.iter_repos
触发第二个请求。
这是预期的行为吗?如何确保程序仅在第一次需要时尝试 2FA?