get_issues 0.1.4 → 0.1.8

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: 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