Class: GithubCLI::API
- Inherits:
-
Object
- Object
- GithubCLI::API
- Defined in:
- lib/github_cli/api.rb
Overview
The API class is the main entry point for creating GithubCLI APIs.
Direct Known Subclasses
Assignee, Authorization, Blob, Collaborator, Commit, Content, Download, Email, Event, Follower, Fork, Gist, Hook, Issue, Key, Label, Member, Merging, Milestone, Notification, Organization, PullRequest, Reference, Repository, Search, Starring, Statistics, Status, Tag, Team, Tree, User, Watching
Class Method Summary collapse
-
.configure(options = {}) ⇒ Object
Configures api options if provided in the configuration file.
-
.github_api(options = {}) ⇒ Object
Access or initialize Github API client.
-
.output(options, &block) ⇒ Object
Procoess response and output to shell.
-
.set_basic_auth(config, options) ⇒ Object
Set user basic authentication.
Class Method Details
.configure(options = {}) ⇒ Object
Configures api options if provided in the configuration file
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/github_cli/api.rb', line 18 def self.configure(={}) api = Github.new config = GithubCLI.config api.basic_auth = set_basic_auth(config, ) api.ssl = config['core.ssl'] if config['core.ssl'] api.adapter = config['core.adapter'] if config['core.adapter'] api.oauth_token = config['user.token'] if config['user.token'] api.site = config['core.site'] if config['core.site'] api.endpoint = config['core.endpoint'] if config['core.endpoint'] api.auto_pagination = ['auto_pagination'] || config['core.auto_pagination'] if (test_env = ENV['TEST_HOST']) api.endpoint = 'http://' + test_env end api end |
.github_api(options = {}) ⇒ Object
Access or initialize Github API client
11 12 13 |
# File 'lib/github_cli/api.rb', line 11 def self.github_api(={}) @github_api ||= configure() end |
.output(options, &block) ⇒ Object
Procoess response and output to shell
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/github_cli/api.rb', line 58 def self.output(, &block) config = GithubCLI.config format = .fetch(:format) { config['core.format'] || :table } quiet = .fetch(:quiet) { config['core.quiet'] } GithubCLI.on_error do response = block.call if response.respond_to?(:body) formatter = Formatter.new response, :format => format, :quiet => quiet formatter.render_output else Terminal.line response end response end end |
.set_basic_auth(config, options) ⇒ Object
Set user basic authentication
39 40 41 42 43 44 45 46 47 |
# File 'lib/github_cli/api.rb', line 39 def self.set_basic_auth(config, ) if (login = ['login']) && (password = ['password']) "#{login}:#{password}" elsif (login = config['user.login']) && (password = config['user.password']) "#{login}:#{password}" else nil end end |