Module: Octokit::Client::Releases
- Included in:
- Octokit::Client
- Defined in:
- lib/octokit/client/releases.rb
Overview
Methods for the Releases API
Constant Summary collapse
- PREVIEW_MEDIA_TYPE =
"application/vnd.github.manifold-preview".freeze
Instance Method Summary collapse
-
#create_release(repo, tag_name, options = {}) ⇒ Sawyer::Resource
Create a release.
-
#delete_release(url, options = {}) ⇒ Boolean
Delete a release.
-
#delete_release_asset(asset_url, options = {}) ⇒ Boolean
Delete a release asset.
-
#release(url, options = {}) ⇒ Sawyer::Resource
Get a release.
-
#release_asset(asset_url, options = {}) ⇒ Sawyer::Resource
Get a single release asset.
-
#release_assets(release_url, options = {}) ⇒ Array<Sawyer::Resource>
List release assets.
-
#releases(repo, options = {}) ⇒ Array<Sawyer::Resource>
(also: #list_releases)
List releases for a repository.
-
#update_release(url, options = {}) ⇒ Sawyer::Resource
(also: #edit_release)
Update a release.
-
#update_release_asset(asset_url, options = {}) ⇒ Sawyer::Resource
(also: #edit_release_asset)
Update a release asset.
-
#upload_asset(release_url, path_or_file, options = {}) ⇒ Sawyer::Resource
Upload a release asset.
Instance Method Details
#create_release(repo, tag_name, options = {}) ⇒ Sawyer::Resource
Create a release
33 34 35 36 37 |
# File 'lib/octokit/client/releases.rb', line 33 def create_release(repo, tag_name, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE opts = .merge(:tag_name => tag_name) post "repos/#{Repository.new(repo)}/releases", opts end |
#delete_release(url, options = {}) ⇒ Boolean
Delete a release
71 72 73 74 |
# File 'lib/octokit/client/releases.rb', line 71 def delete_release(url, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE boolean_from_response(:delete, url, ) end |
#delete_release_asset(asset_url, options = {}) ⇒ Boolean
Delete a release asset
138 139 140 141 |
# File 'lib/octokit/client/releases.rb', line 138 def delete_release_asset(asset_url, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE boolean_from_response(:delete, asset_url, ) end |
#release(url, options = {}) ⇒ Sawyer::Resource
Get a release
44 45 46 47 |
# File 'lib/octokit/client/releases.rb', line 44 def release(url, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE get url, end |
#release_asset(asset_url, options = {}) ⇒ Sawyer::Resource
Get a single release asset
115 116 117 118 |
# File 'lib/octokit/client/releases.rb', line 115 def release_asset(asset_url, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE get(asset_url, ) end |
#release_assets(release_url, options = {}) ⇒ Array<Sawyer::Resource>
List release assets
81 82 83 84 |
# File 'lib/octokit/client/releases.rb', line 81 def release_assets(release_url, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE paginate release(release_url).rels[:assets].href, end |
#releases(repo, options = {}) ⇒ Array<Sawyer::Resource> Also known as: list_releases
List releases for a repository
16 17 18 19 |
# File 'lib/octokit/client/releases.rb', line 16 def releases(repo, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE paginate "repos/#{Repository.new(repo)}/releases", end |
#update_release(url, options = {}) ⇒ Sawyer::Resource Also known as: edit_release
Update a release
60 61 62 63 |
# File 'lib/octokit/client/releases.rb', line 60 def update_release(url, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE patch url, end |
#update_release_asset(asset_url, options = {}) ⇒ Sawyer::Resource Also known as: edit_release_asset
Update a release asset
127 128 129 130 |
# File 'lib/octokit/client/releases.rb', line 127 def update_release_asset(asset_url, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE patch(asset_url, ) end |
#upload_asset(release_url, path_or_file, options = {}) ⇒ Sawyer::Resource
Upload a release asset
94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/octokit/client/releases.rb', line 94 def upload_asset(release_url, path_or_file, = {}) [:accept] ||= PREVIEW_MEDIA_TYPE file = path_or_file.respond_to?(:read) ? path_or_file : File.new(path_or_file, "r+b") [:content_type] ||= content_type_from_file(file) raise Octokit::MissingContentType.new if [:content_type].nil? unless name = [:name] name = File.basename(file.path) end upload_url = release(release_url).rels[:upload].href_template.(:name => name) request :post, upload_url, file.read, parse_query_and_convenience_headers() ensure file.close if file end |