148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
# File 'lib/pdk/module/release.rb', line 148
def run_publish(_opts, tarball_path)
validate_publish_options!
raise PDK::CLI::ExitWithError, _('Module tarball %{tarball_path} does not exist') % { tarball_path: tarball_path } unless PDK::Util::Filesystem.file?(tarball_path)
require 'base64'
file_data = Base64.encode64(PDK::Util::Filesystem.read_file(tarball_path, open_args: 'rb'))
PDK.logger.info _('Uploading tarball to puppet forge...')
uri = URI(forge_upload_url)
require 'net/http'
request = Net::HTTP::Post.new(uri.path)
request['Authorization'] = 'Bearer ' + forge_token
request['Content-Type'] = 'application/json'
data = { file: file_data }
request.body = data.to_json
require 'openssl'
use_ssl = uri.class == URI::HTTPS
response = Net::HTTP.start(uri.host, uri.port, use_ssl: use_ssl) do |http|
http.request(request)
end
raise PDK::CLI::ExitWithError, _('Error uploading to Puppet Forge: %{result}') % { result: response.body } unless response.is_a?(Net::HTTPSuccess)
PDK.logger.info _('Publish to Forge was successful')
end
|