Class: UniversalGitClient::Http::Github
- Defined in:
- lib/universal-git-client/http/github.rb
Instance Method Summary collapse
- #branch(owner:, repo:, branch:) ⇒ Object
- #branches(owner:, repo:, page: 1, per_page: nil) ⇒ Object
- #delete_repo_webhook(owner:, repo:, webhook_id:) ⇒ Object
- #download_repo_archive(owner:, repo:, branch: nil) ⇒ Object
- #orga_repos(organization:, page: 1, per_page: nil) ⇒ Object
- #organizations(page: 1, per_page: nil) ⇒ Object
- #repository(owner:, repo:) ⇒ Object
- #setup_repo_webhook(owner:, repo:, webhook_url:, webhook_secret: nil) ⇒ Object
- #user ⇒ Object
- #user_repos(page: 1, per_page: nil) ⇒ Object
Methods inherited from Base
Methods included from ResponseValidation
Constructor Details
This class inherits a constructor from UniversalGitClient::Http::Base
Instance Method Details
#branch(owner:, repo:, branch:) ⇒ Object
76 77 78 79 80 81 82 83 84 |
# File 'lib/universal-git-client/http/github.rb', line 76 def branch(owner:, repo:, branch:) encoded_branch = URI.encode_www_form_component(branch) with_response_validation! do self.class.get( "/repos/#{owner}/#{repo}/branches/#{encoded_branch}", ) end end |
#branches(owner:, repo:, page: 1, per_page: nil) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/universal-git-client/http/github.rb', line 62 def branches(owner:, repo:, page: 1, per_page: nil) with_response_validation! do self.class.get( "/repos/#{owner}/#{repo}/branches", .merge( query: { page: page, per_page: per_page || default_elements_per_page, }, ) ) end end |
#delete_repo_webhook(owner:, repo:, webhook_id:) ⇒ Object
114 115 116 117 118 119 120 121 |
# File 'lib/universal-git-client/http/github.rb', line 114 def delete_repo_webhook(owner:, repo:, webhook_id:) with_response_validation! do self.class.delete( "/repos/#{owner}/#{repo}/hooks/#{webhook_id}", ) end end |
#download_repo_archive(owner:, repo:, branch: nil) ⇒ Object
86 87 88 89 90 |
# File 'lib/universal-git-client/http/github.rb', line 86 def download_repo_archive(owner:, repo:, branch: nil) path = "#{base_url}/repos/#{owner}/#{repo}/zipball" path << "/#{branch}" if branch Down.download(path, ) end |
#orga_repos(organization:, page: 1, per_page: nil) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/universal-git-client/http/github.rb', line 41 def orga_repos(organization:, page: 1, per_page: nil) # TODO: Handle permissions with_response_validation! do self.class.get( "/orgs/#{organization}/repos", .merge( query: { page: page, per_page: per_page || default_elements_per_page, }, ) ) end end |
#organizations(page: 1, per_page: nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/universal-git-client/http/github.rb', line 12 def organizations(page: 1, per_page: nil) with_response_validation! do self.class.get( '/user/orgs', .merge( query: { page: page, per_page: per_page || default_elements_per_page, }, ) ) end end |
#repository(owner:, repo:) ⇒ Object
56 57 58 59 60 |
# File 'lib/universal-git-client/http/github.rb', line 56 def repository(owner:, repo:) with_response_validation! do self.class.get("/repos/#{owner}/#{repo}", ) end end |
#setup_repo_webhook(owner:, repo:, webhook_url:, webhook_secret: nil) ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/universal-git-client/http/github.rb', line 92 def setup_repo_webhook(owner:, repo:, webhook_url:, webhook_secret: nil) with_response_validation! do self.class.post( "/repos/#{owner}/#{repo}/hooks", .merge( body: { name: 'web', active: true, events: [ 'push', ], config: { url: webhook_url, secret: webhook_secret, content_type: 'json', }.compact, }.to_json, ) ) end end |
#user ⇒ Object
6 7 8 9 10 |
# File 'lib/universal-git-client/http/github.rb', line 6 def user with_response_validation! do self.class.get('/user', ) end end |
#user_repos(page: 1, per_page: nil) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/universal-git-client/http/github.rb', line 26 def user_repos(page: 1, per_page: nil) with_response_validation! do self.class.get( '/user/repos', .merge( query: { affiliation: 'owner', page: page, per_page: per_page || default_elements_per_page, }, ) ) end end |