diff --git a/lib/github_changelog_generator/generator/generator_generation.rb b/lib/github_changelog_generator/generator/generator_generation.rb index b22fe40..44df8df 100644 --- a/lib/github_changelog_generator/generator/generator_generation.rb +++ b/lib/github_changelog_generator/generator/generator_generation.rb @@ -160,7 +160,7 @@ module GitHubChangelogGenerator # Parse issue and generate single line formatted issue line. # # Example output: - # - Add coveralls integration [\#223](https://github.com/skywinder/github-changelog-generator/pull/223) ([skywinder](https://github.com/skywinder)) + # - Add coveralls integration [\#223](https://github.com/skywinder/github-changelog-generator/pull/223) (@skywinder) # # @param [Hash] issue Fetched issue from GitHub # @return [String] Markdown-formatted single issue @@ -168,17 +168,22 @@ module GitHubChangelogGenerator encapsulated_title = encapsulate_string issue[:title] title_with_number = "#{encapsulated_title} [\\##{issue[:number]}](#{issue.html_url})" + issue_line_with_user(title_with_number, issue) + end - unless issue.pull_request.nil? - if @options[:author] - title_with_number += if issue.user.nil? - " ({Null user})" - else - " ([#{issue.user.login}](#{issue.user.html_url}))" - end - end + private + + def issue_line_with_user(line, issue) + return line if !@options[:author] || issue.pull_request.nil? + + user = issue.user + return "#{line} ({Null user})" unless user + + if @options[:usernames_as_github_logins] + "#{line} (@#{user.login})" + else + "#{line} ([#{user.login}](#{user.html_url}))" end - title_with_number end end end diff --git a/lib/github_changelog_generator/parser.rb b/lib/github_changelog_generator/parser.rb index 75a846e..cdd673e 100644 --- a/lib/github_changelog_generator/parser.rb +++ b/lib/github_changelog_generator/parser.rb @@ -92,6 +92,9 @@ module GitHubChangelogGenerator opts.on("--[no-]author", "Add author of pull-request in the end. Default is true") do |author| options[:author] = author end + opts.on("--usernames-as-github-logins", "Use GitHub tags instead of Markdown links for the author of an issue or pull-request.") do |v| + options[:usernames_as_github_logins] = v + end opts.on("--unreleased-only", "Generate log from unreleased closed issues only.") do |v| options[:unreleased_only] = v end