Sha256: 40fcc03434868b0e5bee8c0e6a21c2d9f3da662f6a26e829761524ffead19928

Contents?: true

Size: 1.37 KB

Versions: 91

Compression:

Stored size: 1.37 KB

Contents

Dir[File.join(Dir.pwd, 'tasks', '**', '*.rb')].each { |f| require f }

require 'digest'
require 'erb'
require 'octokit'

module Distribution
  class ReleaseNotes
    attr_reader :version, :content, :github

    def initialize
      @version = `git tag | tail -1`.strip
      @github = Octokit::Client.new access_token: ENV['OCTODOWN_TOKEN']
      @content = render_template
    end

    private

    def render_template
      template_text = File.read 'tasks/distribution/release_notes.erb'
      erb_template = ERB.new template_text
      erb_template.result binding
    end

    # Show our committers
    def committers
      committer_logins_for(contributor_emails)
        .map { |str| "- @#{str}" }
        .join "\n"
    end

    def contributor_emails
      `git log #{prev_release}.. --format="%aE"`
        .split("\n")
        .uniq
    end

    def committer_logins_for(emails)
      emails.map do |email|
        github.search_users("#{email} in:email")
          .items
          .first
          .login
      end
    end

    def prev_release
      `git tag | tail -2 | head -1`.strip
    end

    def shasums
      Dir['distro/*'].reduce '' do |a, e|
        [].tap do |arr|
          arr << a
          arr << "#{File.basename e}: "
          arr << ' ' * (36 - arr[1].size)
          arr << "#{Digest::SHA256.hexdigest File.read(e)}\n"
        end.join
      end
    end
  end
end

Version data entries

91 entries across 91 versions & 3 rubygems

Version Path
brief-1.17.14 tasks/distribution/release_notes.rb
brief-1.17.13 tasks/distribution/release_notes.rb
brief-1.17.12 tasks/distribution/release_notes.rb
brief-1.17.11 tasks/distribution/release_notes.rb
brief-1.17.10 tasks/distribution/release_notes.rb
brief-1.17.9 tasks/distribution/release_notes.rb
brief-1.17.8 tasks/distribution/release_notes.rb
brief-1.17.7 tasks/distribution/release_notes.rb
brief-1.17.5 tasks/distribution/release_notes.rb
brief-1.17.4 tasks/distribution/release_notes.rb
brief-1.17.3 tasks/distribution/release_notes.rb
brief-1.17.2 tasks/distribution/release_notes.rb
brief-1.17.1 tasks/distribution/release_notes.rb
brief-1.17.0 tasks/distribution/release_notes.rb
brief-1.16.2 tasks/distribution/release_notes.rb
brief-1.16.1 tasks/distribution/release_notes.rb
brief-1.16.0 tasks/distribution/release_notes.rb
brief-1.15.5 tasks/distribution/release_notes.rb
brief-1.15.4 tasks/distribution/release_notes.rb
brief-1.15.3 tasks/distribution/release_notes.rb