newsman 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0ec4c08d224982a75fc3ae533368cdeff2c4d7cab0072441fcfbd604f194b42
4
- data.tar.gz: 8633c4f4dc84b0f6a285e06b67b0cb9dd3f9e7a18d6dc032589237652181d36f
3
+ metadata.gz: 4b217b1d0fee448151ff8a04b2099a6e311275e781112144a87f62a4e2a49e03
4
+ data.tar.gz: 78de209a3631b3e1589caab3b1bb336925009bcd52861e570e53b589d3ed8a65
5
5
  SHA512:
6
- metadata.gz: 85df6a743456154cdfcd2999a2f3a1977347cf9b101c8f2e35bd0b13024e6e1d66e8cf699bc7a11feac586f5b7bb6a2bdc08b75936bf967b011afdc2f1963716
7
- data.tar.gz: e4aa02defb4c4a02dee05fe334fb799f0f10b825110e194e0f3d7e5da79ce54144e5a77d1543c57acbdc56ca444fa4be625f4e16a9c83487abc917711d0e771c
6
+ metadata.gz: 317b520b605b309c9ce5aeed0ac3ba385afb6865a8469a3547189232f248011920a67c3a3cc9bb40470e1f0f0ec0b7014f667f106275e56e9df48469d810f757
7
+ data.tar.gz: 65eacb6e1debdcb1581af1d40c0b043d641825fc70780b01471f496c0bf5a336fbc8d13a43eab89ea0dacd39890b7ec38f684c842472d9be970508de20a46f70
data/README.md CHANGED
@@ -38,18 +38,19 @@ Usage: newsman [options]
38
38
  -p, --position POSITION Reporter position in a company. Default value is a 'Software Developer'.
39
39
  -o, --output OUTPUT Output type. Newsman prints a report to a stdout by default. You can choose another options like '-o html', '-o txt' or even '-o html'
40
40
  -t, --title TITLE Project Title. Empty by default
41
+ -m, --model MODEL AI model to use. gpt-3.5-turbo by default
41
42
  ```
42
43
 
43
44
  ### Example
44
45
  To run `newsman` use the following command:
45
46
  ```shell
46
- newsman --name "Vladimir Zakharov" --username "volodya-lombrozo" --repository objectionary/jeo-maven-plugin,objectionary/opeo-maven-plugin
47
+ newsman --name "Vladimir Lombrozo" --username "volodya-lombrozo" --repository objectionary/jeo-maven-plugin,objectionary/opeo-maven-plugin
47
48
  ```
48
49
 
49
50
  Don't forget to set your own values for `name`, `username` and `repository` parameters.
50
51
  Also you can download this repository and run the newsman script directly using the following command:
51
52
  ```shell
52
- ./bin/newsman --name "Vladimir Zakharov" --username "volodya-lombrozo" --repository objectionary/jeo-maven-plugin,objectionary/opeo-maven-plugin
53
+ ./bin/newsman --name "Vladimir Lombrozo" --username "volodya-lombrozo" --repository objectionary/jeo-maven-plugin,objectionary/opeo-maven-plugin
53
54
  ```
54
55
 
55
56
  ## How to build a gem from sources
@@ -39,9 +39,9 @@ class Github
39
39
  end
40
40
 
41
41
  def issues(username, repositories)
42
- one_month_ago = Date.today.prev_month.strftime('%Y-%m-%d')
42
+ one_year_ago = Date.today.prev_year.strftime('%Y-%m-%d')
43
43
  query = "is:issue is:open author:#{username}"\
44
- " author:0pdd created:>=#{one_month_ago} #{repositories}"
44
+ " author:0pdd created:>=#{one_year_ago} #{repositories}"
45
45
  puts "Searching issues using the following query: '#{query}'"
46
46
  @client.search_issues(query).items.map do |issue|
47
47
  parse_issue(issue)
@@ -41,11 +41,11 @@ class Htmlout
41
41
  end
42
42
 
43
43
  # rubocop:disable Metrics/AbcSize
44
- def print(report, reporter)
44
+ def print(report, reporter, model)
45
45
  title = title(reporter)
46
46
  body = to_html(report)
47
47
  puts "Create a html file in a directory #{@root}"
48
- file = File.new(File.join(@root, filename(reporter)), 'w')
48
+ file = File.new(File.join(@root, filename(reporter, model)), 'w')
49
49
  puts "File #{file.path} was successfully created"
50
50
  file.puts Nokogiri::HTML(ERB.new(TEMPLATE).result(binding), &:noblanks).to_xhtml(indent: 2)
51
51
  puts "Report was successfully printed to a #{file.path}"
@@ -58,9 +58,10 @@ class Htmlout
58
58
  "#{reporter} #{date}"
59
59
  end
60
60
 
61
- def filename(reporter)
61
+ def filename(reporter, model)
62
62
  date = Time.new.strftime('%d.%m.%Y')
63
- "#{date}.#{reporter}.html"
63
+ model = model.gsub('.', '-')
64
+ "#{date}.#{reporter}.#{model}.html"
64
65
  end
65
66
 
66
67
  def to_html(report)
data/lib/newsman.rb CHANGED
@@ -63,9 +63,8 @@ def generate
63
63
  "You can choose another options like '-o html', '-o txt' or even '-o html'") do |o|
64
64
  options[:output] = o
65
65
  end
66
- opts.on('-t', '--title TITLE', 'Project Title. Empty by default') do |t|
67
- options[:title] = t
68
- end
66
+ opts.on('-t', '--title TITLE', 'Project Title. Empty by default') { |t| options[:title] = t }
67
+ opts.on('-m', '--model MODEL', 'AI model to use. gpt-3.5-turbo by default') { |m| options[:model] = m }
69
68
  end.parse!
70
69
  # Custom method to raise exception with a human-readable message
71
70
  def options.require_option(key, message)
@@ -80,6 +79,7 @@ def generate
80
79
  options[:position] ||= 'Software Developer'
81
80
  options[:output] ||= 'stdout'
82
81
  options[:title] ||= ''
82
+ options[:model] ||= 'gpt-3.5-turbo'
83
83
  all_params = options.map { |key, value| "#{key}: #{value}" }.join(', ')
84
84
  puts "Parsed parameters: #{all_params}"
85
85
  load_environment_variables
@@ -99,7 +99,7 @@ def generate
99
99
  prs = github.pull_requests(github_username, github_repositories)
100
100
  issues = github.issues(github_username, github_repositories)
101
101
  puts "\nNow lets test some aggregation using OpenAI\n\n"
102
- assistant = Assistant.new(openai_token)
102
+ assistant = Assistant.new(openai_token, model: options[:model])
103
103
  # Build previous results
104
104
  answer = ''
105
105
  prs.group_by(&:repository).each do |repository, rprs|
@@ -135,7 +135,7 @@ def generate
135
135
  elsif output_mode.eql? 'html'
136
136
  puts 'Print result to html file'
137
137
  output = Htmlout.new('.')
138
- output.print(full_answer, github_username)
138
+ output.print(full_answer, github_username, options[:model])
139
139
  else
140
140
  puts 'Print result to stdout'
141
141
  output = Stdout.new
data/test/test_htmlout.rb CHANGED
@@ -48,9 +48,10 @@ List is here:<br/>
48
48
  Dir.mktmpdir do |temp_dir|
49
49
  output = Htmlout.new(temp_dir)
50
50
  today = Date.today.strftime('%d.%m.%Y')
51
- expected = "#{today}.volodya-lombrozo.html"
51
+ expected = "#{today}.volodya-lombrozo.gpt-3-5-turbo.html"
52
52
  output.print("Issue description\n\nHere is a new paragraph\nList is here:\n - one\n - two\n - three",
53
- 'volodya-lombrozo')
53
+ 'volodya-lombrozo',
54
+ 'gpt-3.5-turbo')
54
55
  assert(File.exist?(File.join(temp_dir, expected)))
55
56
  assert_equal(EXPECTED, File.read(File.join(temp_dir, expected)))
56
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newsman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Volodya Lombrozo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-03 00:00:00.000000000 Z
11
+ date: 2024-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
216
  requirements: []
217
- rubygems_version: 3.5.9
217
+ rubygems_version: 3.5.18
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: GitHub user weekly news