1

我确信这是一个简单的错误,但我有兴趣编写一个程序来收集我所有 github 存储库的信息。虽然这对 Octokit 来说似乎很简单,但我遇到了与验证会话相关的问题。

client = Octokit::Client.new \
  :login    => 'MY_USER_NAME',
  :password => 'MY_PASSWORD'

puts client
user = client.user("MY_USER_NAME", :headers => { "PERSONAL_ACCESS_TOKEN_NAME" => "TOKEN" })

puts user

不幸的是,这会导致以下结果:

GET https://api.github.com/users/mccoleman75225: 401 - Must specify two-factor authentication OTP code. // See: https://developer.github.com/v3/auth#working-with-two-factor-authentication (Octokit::OneTimePasswordRequired)

有人如何验证他们的会话?

4

2 回答 2

1

自 2022 年 1 月起,您可以在 GitHub 开发人员设置中创建 PAT(个人访问令牌),并使用它通过 Octokit 客户端进行连接,如下所示:

client = Octokit::Client.new(:access_token => "<Your Personal Access Token>")

user = client.user
user.login
# => "monacat"

这是有关如何创建 PAT的分步指南。在创建令牌时尝试选择正确的权限,否则您将返回 403 错误并显示一条解释缺失范围的消息。不过,您以后可以随时返回并编辑您的范围。

资料来源:

于 2022-01-04T18:38:45.547 回答
0

看起来您的帐户启用了 2 因素身份验证,因此您需要添加 2FA 令牌:

client = Octokit::Client.new \
  :login    => 'defunkt',
  :password => 'c0d3b4ssssss!'

client.create_authorization(:scopes => ["user"], :note => "Name of token",
                            :headers => { "X-GitHub-OTP" => "<your 2FA token>" })
# => <your new oauth token>

查看文档

于 2020-01-30T16:11:42.557 回答