class Fastlane::Actions::SetChangelogAction
def self.run(params)
def self.run(params) require 'spaceship' Spaceship::Tunes.login(params[:username]) app = Spaceship::Application.find(params[:app_identifier]) version_number = params[:version] unless version_number # Automatically fetch the latest version Helper.log.info "Fetching the latest version for this app" if app.edit_version and app.edit_version.version version_number = app.edit_version.version else Helper.log.info "You have to specify a new version number: " version_number = STDIN.gets.strip end end Helper.log.info "Going to update version #{version_number}" changelog = params[:changelog] unless changelog path = "./fastlane/changelog.txt" Helper.log.info "Looking for changelog in '#{path}'..." if File.exist? path changelog = File.read(path) else Helper.log.error "Couldn't find changelog.txt" Helper.log.info "Please enter the changelog here:" changelog = STDIN.gets end end Helper.log.info "Going to update the changelog to:\n\n#{changelog}\n\n" if (v = app.edit_version) if v.version != version_number # Version is already there, make sure it matches the one we want to create Helper.log.info "Changing existing version number from '#{v.version}' to '#{version_number}'" v.version = version_number v.save! else Helper.log.info "Updating changelog for existing version #{v.version}" end else Helper.log.info "Creating the new version: #{version_number}" app.create_version!(version_number) app = Spaceship::Application.find(params[:app_identifier]) # Replace with .reload method once available v = app.edit_version end v.release_notes.languages.each do |lang| v.release_notes[lang] = changelog end Helper.log.info "Uploading changes to iTunes Connect..." v.save! Helper.log.info "👼 Successfully pushed the new changelog to #{v.url}".green end