Module: InteractiveSetup::GitHubAccessToken
- Defined in:
- lib/git-ready/interactive_setup.rb
Class Method Summary collapse
- .delete_existing_authorization(session, headers) ⇒ Object
- .generate(login, password, headers = {}, first_attempt = true) ⇒ Object
- .guided_generation ⇒ Object
- .old_auth_tokens(note, session, headers) ⇒ Object
- .setup ⇒ Object
- .works?(token) ⇒ Boolean
Class Method Details
.delete_existing_authorization(session, headers) ⇒ Object
84 85 86 87 |
# File 'lib/git-ready/interactive_setup.rb', line 84 def self.(session, headers) existing = old_auth_tokens('git-ready', session, headers).first[:id] session. existing, headers: headers end |
.generate(login, password, headers = {}, first_attempt = true) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/git-ready/interactive_setup.rb', line 67 def self.generate(login, password, headers = {}, first_attempt = true) github = Octokit::Client.new login: login, password: password github.(note: 'git-ready', scopes: ['repo'], headers: headers) rescue Octokit::Unauthorized Announce.failure 'Invalid Credentials' rescue Octokit::UnprocessableEntity if first_attempt Announce.warning 'Found an old token. Replacing it.' github, headers generate login, password, headers, false else Announce.failure "It looked like you had already issued a token, but deleting it didn't help. You're on your own at this point. You should should use the link at the start to generate a token manually." end end |
.guided_generation ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/git-ready/interactive_setup.rb', line 57 def self.guided_generation login = ask 'Enter your GitHub login:' password = ask('Enter your GitHub password:') { |c| c.echo = '*' } generate login, password rescue Octokit::OneTimePasswordRequired Announce.info 'Your account has 2-Factor Authentication enabled. Awesome!' headers = { 'X-GitHub-OTP' => ask('Enter a valid 2-Factor Auth Token') } generate login, password, headers end |
.old_auth_tokens(note, session, headers) ⇒ Object
89 90 91 92 93 |
# File 'lib/git-ready/interactive_setup.rb', line 89 def self.old_auth_tokens(note, session, headers) session.(headers: headers).select do |auth| auth[:note] == note end end |
.setup ⇒ Object
50 51 52 53 54 55 |
# File 'lib/git-ready/interactive_setup.rb', line 50 def self.setup Announce.info 'If you leave this blank, git-ready will do most of the work for you. As a fallback, you can generate your own at https://github.com/settings/tokens/new' token = ask 'Enter your GitHub Personal Access Token:', String token = guided_generation[:token] if token.empty? token if works? token end |
.works?(token) ⇒ Boolean
95 96 97 98 99 100 101 |
# File 'lib/git-ready/interactive_setup.rb', line 95 def self.works?(token) github = Octokit::Client.new access_token: token true if github.repos rescue Octokit::Unauthorized Announce.failure 'Invalid Credentials' false end |