get_issues 0.1.4 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c41b74b883f3fa6e01474a91c75dd9f3c2ace38b9eeac046c5550b410f8a770
4
- data.tar.gz: 85b0058de525d90c15e187a2ae920f57d55d75ee17e2922759a18de5edb546cc
3
+ metadata.gz: 4ff4965ee2a15026e76da7f53e59e46bb417ced215e9c57ddbaf34018a1937ba
4
+ data.tar.gz: 201ee4186126b26971162573f57f7bcb6c9d06621bfc055be406ddbe90dfc8f9
5
5
  SHA512:
6
- metadata.gz: fd60c37b8b36f65c26fe1f2b53c564d3d34e3edaf41d0524d8a1af4253a8e211b8263dab36bc7ce4ac6b7735b917ffb84283cb10aaab62de2d5cc78e93aff85b
7
- data.tar.gz: a3c2ac9aeb6c2f476dbcb2a720185faa353b39e2718ef8d2f0d1ca6eea82539fb2e341500be6e2985384536b64b4795b2c1410598ac080597f3a542c00e5f1ad
6
+ metadata.gz: e77dff0c2e04b0f5c41fe03372b6fb284cd5d9071b1bfb9a1b557a0bd2a2078f70addb5b5afcdfe33e3539100b7afe134cc4f80f9c95d74e227cd94ce879b472
7
+ data.tar.gz: 1275e869fdd8999bb68d5aa5be2a7c771cb0df273d3bcd88951e9540b3d1515e7031effcd4cfe017d5c39acdddcff21d61f1a93e3a79048999b6dbaafaf2db9f
@@ -1,3 +1,3 @@
1
1
  module GetIssues
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.8"
3
3
  end
data/lib/get_issues.rb CHANGED
@@ -4,24 +4,49 @@ require "spreadsheet_architect"
4
4
  module GetIssues
5
5
  class Error < StandardError; end
6
6
 
7
- def self.start(prefix_url, private_token, project_name, mile_stone_title)
8
- projects_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}"`
9
- projects_json = JSON.parse(projects_string)
10
- project_json = projects_json.filter { |t| t["name"] == project_name }&.first
11
- project_id = project_json["id"]
7
+ def self.start_group(prefix_url,private_token,group_name,mile_stone_title)
8
+ groups_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}/groups?per_page=1000"`
9
+ groups_json = JSON.parse(groups_string)
10
+ group_json = groups_json.filter { |t| t["name"] == group_name }&.first || {}
11
+ group_id = group_json["id"]
12
+ if group_id.nil?
13
+ p "找不到group"
14
+ end
12
15
 
13
- milestones_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}/#{project_id}/milestones"`
16
+ milestones_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}/groups/#{group_id}/milestones?per_page=1000"`
14
17
  milestones_json = JSON.parse(milestones_string)
15
18
  mile_stone_json = milestones_json.filter { |t| t["title"] == mile_stone_title }&.first
16
19
  mile_stone_id = mile_stone_json["id"]
20
+ if mile_stone_id.nil?
21
+ p "找不到mile_stone"
22
+ end
23
+
24
+ issues_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}/groups/#{group_id}/milestones/#{mile_stone_id}/issues?per_page=10000"`
25
+ issues_json = JSON.parse(issues_string)
26
+ issues_json
27
+ end
17
28
 
18
- issues_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}/#{project_id}/milestones/#{mile_stone_id}/issues?per_page=10000"`
29
+ def self.start_project(prefix_url, private_token, project_name, mile_stone_title)
30
+ projects_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}/projects?sort=asc&&order_by=name&&simple=true&&per_page=1000"`
31
+ projects_json = JSON.parse(projects_string)
32
+ project_json = projects_json.filter { |t| t["name"] == project_name }&.first || {}
33
+ project_id = project_json["id"]
34
+ if project_id.nil?
35
+ p "找不到project"
36
+ end
37
+ milestones_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}/projects/#{project_id}/milestones?per_page=1000"`
38
+ milestones_json = JSON.parse(milestones_string)
39
+ mile_stone_json = milestones_json.filter { |t| t["title"] == mile_stone_title }&.first || {}
40
+ mile_stone_id = mile_stone_json["id"]
41
+ if mile_stone_id.nil?
42
+ p "找不到mile_stone"
43
+ end
44
+ issues_string = `curl --header "PRIVATE-TOKEN: #{private_token}" "#{prefix_url}/projects/#{project_id}/milestones/#{mile_stone_id}/issues?per_page=10000"`
19
45
  issues_json = JSON.parse(issues_string)
20
46
  issues_json
21
47
  end
22
48
 
23
- def self.to_xlsx(prefix_url, private_token, project_name, mile_stone_title)
24
- issues_json = start(prefix_url, private_token, project_name, mile_stone_title)
49
+ def self.to_xlsx(issues_json,mile_stone_title)
25
50
  data = []
26
51
  issues_json.each do |issue|
27
52
  assignes_names = issue["assignees"]&.map { |t| t["name"]&.split(" ")&.reverse&.join("") }&.join(",")
@@ -35,6 +60,14 @@ module GetIssues
35
60
  f.write file_data
36
61
  end
37
62
  end
63
+ def self.to_xlsx_group(prefix_url,private_token,group_name,mile_stone_title)
64
+ issues_json = start_group(prefix_url,private_token,group_name,mile_stone_title)
65
+ to_xlsx(issues_json,mile_stone_title)
66
+ end
67
+ def self.to_xlsx_project(prefix_url, private_token, project_name, mile_stone_title)
68
+ issues_json = start_project(prefix_url, private_token, project_name, mile_stone_title)
69
+ to_xlsx(issues_json,mile_stone_title)
70
+ end
38
71
  # 定义xlsx文件格式的头样式
39
72
  def self.init_header_style
40
73
  { height: 75, background_color: "458B00", color: "FFFFFF", align: :center, font_name: "Arial", font_size: 14, bold: false, italic: false, underline: false }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: get_issues
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - '807715333'
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-23 00:00:00.000000000 Z
11
+ date: 2021-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler