This is an automated email from the ASF dual-hosted git repository.

zhangliang2022 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new b8698826d feat: github multiple labels match the same regex (#5258)
b8698826d is described below

commit b8698826d8bc848ef9c4ed1e21cf0a46c2229a65
Author: abeizn <[email protected]>
AuthorDate: Tue May 23 12:00:59 2023 +0800

    feat: github multiple labels match the same regex (#5258)
    
    * feat: github multiple labels match the same regex
    
    * feat: github multiple labels match the same regex
    
    * feat: github multiple labels match the same regex
---
 .../e2e/snapshot_tables/_tool_github_issues.csv    | 32 ++++++++++-----------
 .../plugins/github/e2e/snapshot_tables/issues.csv  | 28 +++++++++---------
 backend/plugins/github/tasks/issue_extractor.go    | 33 ++++++++++------------
 .../github_graphql/tasks/issue_collector.go        | 29 ++++++++-----------
 4 files changed, 57 insertions(+), 65 deletions(-)

diff --git a/backend/plugins/github/e2e/snapshot_tables/_tool_github_issues.csv 
b/backend/plugins/github/e2e/snapshot_tables/_tool_github_issues.csv
index e789da5d1..933af4374 100644
--- a/backend/plugins/github/e2e/snapshot_tables/_tool_github_issues.csv
+++ b/backend/plugins/github/e2e/snapshot_tables/_tool_github_issues.csv
@@ -1,27 +1,27 @@
 
connection_id,github_id,repo_id,number,state,title,body,priority,type,author_id,author_name,assignee_id,assignee_name,milestone_id,lead_time_minutes,url,closed_at,github_created_at,github_updated_at,severity,component,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-1,346842831,134018330,5,closed, chinese  <-p.freeSignal  chinese ,"""Hi,\r\n   
  chinese , chinese  `<-p.freeSignal`  chinese 。  chinese ,freeSignal  chinese 
, chinese  `putWorker`  chinese  `p.freeSignal <- sig{}`\r\n\r\n chinese 
\r\n```\r\nfunc (p *Pool) getWorker() *Worker {\r\n\tvar w *Worker\r\n\twaiting 
:= false\r\n\r\n\tp.lock.Lock()\r\n\tidleWorkers := p.workers\r\n\tn := 
len(idleWorkers) - 1\r\n\tif n < 0 { //  chinese  pool chinese worker chinese 
\r\n\t\twaiting = p.Running() > [...]
-1,347255859,134018330,6,closed, chinese bug,"""func (p *Pool) getWorker() 
*Worker   chinese  199 chinese  \r\n chinese ,  chinese 
\r\n\r\n\tp.lock.Unlock()\r\n\t\t<-p.freeSignal\r\n\t\tp.lock.Lock()""",,bug,13118848,lovelly,0,,7856149,1786,https://github.com/panjf2000/ants/issues/6,2018-08-04T10:18:41.000+00:00,2018-08-03T04:32:28.000+00:00,2018-08-04T10:18:41.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,12,
-1,348630179,134018330,7,closed, chinese ,""" chinese , chinese 。 chinese ants 
chinese , chinese 。 chinese 
\r\n![image](https://user-images.githubusercontent.com/4555057/43823431-98384444-9b21-11e8-880c-7458b931734a.png)\r\n
 chinese periodicallyPurge chinese 
\r\n![image](https://user-images.githubusercontent.com/4555057/43823534-e3c624a8-9b21-11e8-96c6-512e3e08db22.png)\r\n\r\n###
  chinese \r\n\r\n chinese n==0 chinese \r\n```\r\nif n > 0 
{\r\n\tn++\r\n\tp.workers = idleWorkers[n:]\r\n}\r [...]
-1,356703393,134018330,10,closed, chinese worker chinese ,""" chinese cpu 
chinese 
?""",,,11763614,Moonlight-Zhao,0,,7856149,36198,https://github.com/panjf2000/ants/issues/10,2018-09-29T11:45:00.000+00:00,2018-09-04T08:26:55.000+00:00,2018-09-29T11:45:00.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,16,
-1,364361014,134018330,12,closed, chinese , chinese tag chinese ,""" chinese 
dep chinese , chinese ants chinese , chinese tag chinese 。 chinese tag 3.6 
chinese ed55924 chinese ,git chinese af376f1b chinese , chinese 5 chinese , 
chinese , chinese tag chinese 。( chinese 
)""",,,29452204,edcismybrother,0,,7856149,1293,https://github.com/panjf2000/ants/issues/12,2018-09-28T06:05:58.000+00:00,2018-09-27T08:32:25.000+00:00,2019-04-21T08:19:58.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000
 [...]
-1,381941219,134018330,17,closed, chinese ,""" chinese package chinese , 
chinese Release chinese :\r\n\r\n`\r\n\t// Release Closed this pool.\r\n\tfunc 
(p *PoolWithFunc) Release() error {\r\n\t\tp.once.Do(func() 
{\r\n\t\t\tp.release <- sig{}\r\n\t\t\tp.lock.Lock()\r\n\t\t\tidleWorkers := 
p.workers\r\n\t\t\tfor i, w := range idleWorkers {\r\n\t\t\t\tw.args <- 
nil\r\n\t\t\t\tidleWorkers[i] = nil\r\n\t\t\t}\r\n\t\t\tp.workers = 
nil\r\n\t\t\tp.lock.Unlock()\r\n\t\t})\r\n\t\treturn nil\r\n\t}\ [...]
-1,382039050,134018330,18,closed,go chinese ,""" chinese , chinese , chinese go 
chinese , chinese , chinese 。\"" chinese : GOMAXPROCS sets the maximum number 
of CPUs that can be executing simultaneously。 chinese cpu chinese , chinese , 
chinese ?, chinese ?, chinese ?, chinese 
?\""""",,,13944100,LinuxForYQH,0,,7856149,20213,https://github.com/panjf2000/ants/issues/18,2018-12-03T03:53:50.000+00:00,2018-11-19T02:59:53.000+00:00,2018-12-03T03:53:50.000+00:00,,,"{""ConnectionId"":1,""Name"":"";
 [...]
-1,382574800,134018330,20,closed, chinese 
,"""#""",,,5668717,kklinan,0,,7856149,95398,https://github.com/panjf2000/ants/issues/20,2019-01-25T15:34:03.000+00:00,2018-11-20T09:36:02.000+00:00,2019-01-25T15:34:03.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,26,
+1,346842831,134018330,5,closed," chinese  <-p.freeSignal  chinese ","""Hi,\r\n 
    chinese , chinese  `<-p.freeSignal`  chinese 。  chinese ,freeSignal  
chinese , chinese  `putWorker`  chinese  `p.freeSignal <- sig{}`\r\n\r\n 
chinese \r\n```\r\nfunc (p *Pool) getWorker() *Worker {\r\n\tvar w 
*Worker\r\n\twaiting := false\r\n\r\n\tp.lock.Lock()\r\n\tidleWorkers := 
p.workers\r\n\tn := len(idleWorkers) - 1\r\n\tif n < 0 { //  chinese  pool 
chinese worker chinese \r\n\t\twaiting = p.Running() [...]
+1,347255859,134018330,6,closed," chinese bug","""func (p *Pool) getWorker() 
*Worker   chinese  199 chinese  \r\n chinese ,  chinese 
\r\n\r\n\tp.lock.Unlock()\r\n\t\t<-p.freeSignal\r\n\t\tp.lock.Lock()""",,bug,13118848,lovelly,0,,7856149,1786,https://github.com/panjf2000/ants/issues/6,2018-08-04T10:18:41.000+00:00,2018-08-03T04:32:28.000+00:00,2018-08-04T10:18:41.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,12,
+1,348630179,134018330,7,closed," chinese ",""" chinese , chinese 。 chinese 
ants chinese , chinese 。 chinese 
\r\n![image](https://user-images.githubusercontent.com/4555057/43823431-98384444-9b21-11e8-880c-7458b931734a.png)\r\n
 chinese periodicallyPurge chinese 
\r\n![image](https://user-images.githubusercontent.com/4555057/43823534-e3c624a8-9b21-11e8-96c6-512e3e08db22.png)\r\n\r\n###
  chinese \r\n\r\n chinese n==0 chinese \r\n```\r\nif n > 0 
{\r\n\tn++\r\n\tp.workers = idleWorkers[n:]\r\n} [...]
+1,356703393,134018330,10,closed," chinese worker chinese ",""" chinese cpu 
chinese 
?""",,question,11763614,Moonlight-Zhao,0,,7856149,36198,https://github.com/panjf2000/ants/issues/10,2018-09-29T11:45:00.000+00:00,2018-09-04T08:26:55.000+00:00,2018-09-29T11:45:00.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,16,
+1,364361014,134018330,12,closed," chinese , chinese tag chinese ",""" chinese 
dep chinese , chinese ants chinese , chinese tag chinese 。 chinese tag 3.6 
chinese ed55924 chinese ,git chinese af376f1b chinese , chinese 5 chinese , 
chinese , chinese tag chinese 。( chinese 
)""",,,29452204,edcismybrother,0,,7856149,1293,https://github.com/panjf2000/ants/issues/12,2018-09-28T06:05:58.000+00:00,2018-09-27T08:32:25.000+00:00,2019-04-21T08:19:58.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf20
 [...]
+1,381941219,134018330,17,closed," chinese ",""" chinese package chinese , 
chinese Release chinese :\r\n\r\n`\r\n\t// Release Closed this pool.\r\n\tfunc 
(p *PoolWithFunc) Release() error {\r\n\t\tp.once.Do(func() 
{\r\n\t\t\tp.release <- sig{}\r\n\t\t\tp.lock.Lock()\r\n\t\t\tidleWorkers := 
p.workers\r\n\t\t\tfor i, w := range idleWorkers {\r\n\t\t\t\tw.args <- 
nil\r\n\t\t\t\tidleWorkers[i] = nil\r\n\t\t\t}\r\n\t\t\tp.workers = 
nil\r\n\t\t\tp.lock.Unlock()\r\n\t\t})\r\n\t\treturn nil\r\n\t [...]
+1,382039050,134018330,18,closed,go chinese ,""" chinese , chinese , chinese go 
chinese , chinese , chinese 。\"" chinese : GOMAXPROCS sets the maximum number 
of CPUs that can be executing simultaneously。 chinese cpu chinese , chinese , 
chinese ?, chinese ?, chinese ?, chinese 
?\""""",,question,13944100,LinuxForYQH,0,,7856149,20213,https://github.com/panjf2000/ants/issues/18,2018-12-03T03:53:50.000+00:00,2018-11-19T02:59:53.000+00:00,2018-12-03T03:53:50.000+00:00,,,"{""ConnectionId"":1,""N
 [...]
+1,382574800,134018330,20,closed," chinese 
","""#""",,enhancement,5668717,kklinan,0,,7856149,95398,https://github.com/panjf2000/ants/issues/20,2019-01-25T15:34:03.000+00:00,2018-11-20T09:36:02.000+00:00,2019-01-25T15:34:03.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,26,
 1,388907811,134018330,21,closed,Benchmark  chinese  Semaphore  chinese ?,""" 
chinese  benchmark,Semaphore  chinese \r\n\r\n```bash\r\n$ go test -bench 
.\r\ngoos: darwin\r\ngoarch: amd64\r\npkg: 
github.com/panjf2000/ants\r\nBenchmarkGoroutineWithFunc-4   \t       
1\t3445631705 ns/op\r\nBenchmarkSemaphoreWithFunc-4   \t       1\t1037219073 
ns/op\r\nBenchmarkAntsPoolWithFunc-4    \t       1\t1138053222 
ns/op\r\nBenchmarkGoroutine-4           \t       2\t 731850771 
ns/op\r\nBenchmarkSemaphor [...]
-1,401277739,134018330,22,closed, chinese  worker  chinese   PanicHandler ?,""" 
chinese  Pool  chinese  PanicHandler, chinese  worker  chinese  recover  
chinese  PanicHandler   chinese 。 chinese  panic  chinese 
。""",,,8923413,choleraehyq,0,,7856149,1174,https://github.com/panjf2000/ants/issues/22,2019-01-22T05:41:34.000+00:00,2019-01-21T10:06:56.000+00:00,2019-01-22T05:41:34.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,28,
-1,402513849,134018330,24,closed, chinese ,"""`Pool.Submit` chinese 
`PoolWithFunc.Server` chinese , chinese worker, chinese 。 chinese , chinese 
。""",,,5044825,tenfyzhong,0,,7856149,300032,https://github.com/panjf2000/ants/issues/24,2019-08-20T10:56:30.000+00:00,2019-01-24T02:24:13.000+00:00,2019-08-20T10:56:30.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,30,
+1,401277739,134018330,22,closed," chinese  worker  chinese   PanicHandler 
?",""" chinese  Pool  chinese  PanicHandler, chinese  worker  chinese  recover  
chinese  PanicHandler   chinese 。 chinese  panic  chinese 
。""",,enhancement,8923413,choleraehyq,0,,7856149,1174,https://github.com/panjf2000/ants/issues/22,2019-01-22T05:41:34.000+00:00,2019-01-21T10:06:56.000+00:00,2019-01-22T05:41:34.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,28,
+1,402513849,134018330,24,closed," chinese ","""`Pool.Submit` chinese 
`PoolWithFunc.Server` chinese , chinese worker, chinese 。 chinese , chinese 
。""",,enhancement,5044825,tenfyzhong,0,,7856149,300032,https://github.com/panjf2000/ants/issues/24,2019-08-20T10:56:30.000+00:00,2019-01-24T02:24:13.000+00:00,2019-08-20T10:56:30.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,30,
 1,405951301,134018330,25,closed,use example errors,"""./antstest.go:37:14: 
cannot use syncCalculateSum (type func()) as type ants.f in argument to 
ants.Submit\r\n./antstest.go:45:35: cannot use func literal (type 
func(interface {})) as type ants.pf in argument to 
ants.NewPoolWithFunc\r\n""",,,5244267,jiashiwen,0,,7856149,3088,https://github.com/panjf2000/ants/issues/25,2019-02-04T09:11:52.000+00:00,2019-02-02T05:43:38.000+00:00,2019-02-04T09:11:52.000+00:00,,,"{""ConnectionId"":1,""Name";
 [...]
 1,413968505,134018330,26,closed,running chinese cap chinese ,"""running 
chinese cap chinese incRuning chinese ,  chinese running chinese cap chinese 
?\r\n`func (p *Pool) retrieveWorker() *Worker {\r\n\tvar w 
*Worker\r\n\r\n\tp.lock.Lock()\r\n\tidleWorkers := p.workers\r\n\tn := 
len(idleWorkers) - 1\r\n\tif n >= 0 {\r\n\t\tw = 
idleWorkers[n]\r\n\t\tidleWorkers[n] = nil\r\n\t\tp.workers = 
idleWorkers[:n]\r\n\t\tp.lock.Unlock()\r\n\t} else if p.Running() < p.Cap() 
{\r\n\t\tp.lock.Unlock()\r [...]
-1,419183961,134018330,27,closed, chinese goroutine chinese , chinese ,""" 
chinese goroutine chinese , chinese \r\n chinese ?\r\n\r\nwebsocket 
server\r\nhttps://github.com/im-ai/pushm/blob/master/learn/goroutine/goroutinepoolwebsocket.go\r\n\r\nwebsocket
 
cient\r\nhttps://github.com/im-ai/pushm/blob/master/learn/goroutine/goroutinepoolwebsocketclient.go\r\n""",,,38367404,liliang8858,0,,7856149,37496,https://github.com/panjf2000/ants/issues/27,2019-04-05T14:05:20.000+00:00,2019-03-10T13:08:
 [...]
+1,419183961,134018330,27,closed," chinese goroutine chinese , chinese ",""" 
chinese goroutine chinese , chinese \r\n chinese ?\r\n\r\nwebsocket 
server\r\nhttps://github.com/im-ai/pushm/blob/master/learn/goroutine/goroutinepoolwebsocket.go\r\n\r\nwebsocket
 
cient\r\nhttps://github.com/im-ai/pushm/blob/master/learn/goroutine/goroutinepoolwebsocketclient.go\r\n""",,,38367404,liliang8858,0,,7856149,37496,https://github.com/panjf2000/ants/issues/27,2019-04-05T14:05:20.000+00:00,2019-03-10T13:0
 [...]
 1,419268851,134018330,28,closed,cap  chinese  running  chinese ,""" chinese  
Playground  chinese  https://play.golang.org/p/D94YUU3FnX6\r\natomic  chinese , 
chinese , chinese   chinese , chinese   chinese , chinese   chinese , chinese 
\r\n chinese  #26  chinese 
""",,,29243953,naiba,0,,7856149,237002,https://github.com/panjf2000/ants/issues/28,2019-08-22T16:27:37.000+00:00,2019-03-11T02:24:41.000+00:00,2019-08-22T16:27:37.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw
 [...]
-1,424634533,134018330,29,closed, chinese ,""" chinese , chinese 
👍\r\n\r\nhttps://github.com/panjf2000/ants/blob/master/pool.go#L124  chinese ,  
chinese 
?\r\n""",,,8509898,prprprus,0,,7856149,999,https://github.com/panjf2000/ants/issues/29,2019-03-25T09:32:11.000+00:00,2019-03-24T16:52:21.000+00:00,2019-03-25T09:45:05.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,35,
+1,424634533,134018330,29,closed," chinese ",""" chinese , chinese 
👍\r\n\r\nhttps://github.com/panjf2000/ants/blob/master/pool.go#L124  chinese ,  
chinese 
?\r\n""",,,8509898,prprprus,0,,7856149,999,https://github.com/panjf2000/ants/issues/29,2019-03-25T09:32:11.000+00:00,2019-03-24T16:52:21.000+00:00,2019-03-25T09:45:05.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,35,
 1,429972115,134018330,31,closed,Add 
go.mod,"""""",,,48135919,tsatke,0,,7856149,3474,https://github.com/panjf2000/ants/issues/31,2019-04-08T09:45:31.000+00:00,2019-04-05T23:50:36.000+00:00,2019-10-17T03:12:19.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,37,
-1,433564955,134018330,32,closed, chinese , chinese (0.0.x) chinese ?,""" 
chinese , chinese 。\r\n\r\n chinese \r\n\r\n chinese , chinese 
。""",,,7931755,zplzpl,0,,7856149,7440,https://github.com/panjf2000/ants/issues/32,2019-04-21T07:16:26.000+00:00,2019-04-16T03:16:02.000+00:00,2019-04-21T07:16:26.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,38,
-1,434069015,134018330,33,closed,support semantic versioning.,""" chinese tag 
chinese semantic versioning,vX.Y.Z。go modules chinese 
。\r\nhttps://semver.org/\r\nhttps://research.swtch.com/vgo-import""",,,1284892,jjeffcaii,0,,7856149,6090,https://github.com/panjf2000/ants/issues/33,2019-04-21T08:25:20.000+00:00,2019-04-17T02:55:11.000+00:00,2019-04-21T08:25:20.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,39,
+1,433564955,134018330,32,closed," chinese , chinese (0.0.x) chinese ?",""" 
chinese , chinese 。\r\n\r\n chinese \r\n\r\n chinese , chinese 
。""",,enhancement,7931755,zplzpl,0,,7856149,7440,https://github.com/panjf2000/ants/issues/32,2019-04-21T07:16:26.000+00:00,2019-04-16T03:16:02.000+00:00,2019-04-21T07:16:26.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,38,
+1,434069015,134018330,33,closed,support semantic versioning.,""" chinese tag 
chinese semantic versioning,vX.Y.Z。go modules chinese 
。\r\nhttps://semver.org/\r\nhttps://research.swtch.com/vgo-import""",,enhancement,1284892,jjeffcaii,0,,7856149,6090,https://github.com/panjf2000/ants/issues/33,2019-04-21T08:25:20.000+00:00,2019-04-17T02:55:11.000+00:00,2019-04-21T08:25:20.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,39,
 1,435486645,134018330,34,closed,Important announcement about <ants> from 
author !!!,"""**Dear users of `ants`:**\r\nI am apologetically telling you that 
I have to dump all tags which already presents in `ants` repository.\r\n\r\nThe 
reason why I'm doing so is to standardize the version management with `Semantic 
Versioning`, which will make a formal and clear dependency management in go, 
for go modules, godep, or glide, etc. So I decide to start over the tag 
sequence, you could find more  [...]
 1,461280653,134018330,35,closed,worker exit on panic,""" chinese PanicHandler 
chinese 。\r\n1. chinese PanicHandler chinese , chinese panic, chinese 。\r\n2. 
chinese PanicHandler, chinese worker chinese , chinese pool chinese 
。""",,,38849208,king526,0,,7856149,74481,https://github.com/panjf2000/ants/issues/35,2019-08-17T20:33:10.000+00:00,2019-06-27T03:11:49.000+00:00,2019-08-17T20:33:10.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,41,
-1,462631417,134018330,37,closed, chinese 。。。,""" chinese  3.9.9, chinese , 
chinese , chinese  1.0.0。 chinese 。 chinese 
""",,,8923413,choleraehyq,0,,7856149,140,https://github.com/panjf2000/ants/issues/37,2019-07-01T12:37:55.000+00:00,2019-07-01T10:17:15.000+00:00,2019-07-02T10:17:31.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,43,
+1,462631417,134018330,37,closed," chinese 。。。",""" chinese  3.9.9, chinese , 
chinese , chinese  1.0.0。 chinese 。 chinese 
""",,,8923413,choleraehyq,0,,7856149,140,https://github.com/panjf2000/ants/issues/37,2019-07-01T12:37:55.000+00:00,2019-07-01T10:17:15.000+00:00,2019-07-02T10:17:31.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,43,
 1,472125082,134018330,38,closed,retrieveWorker chinese revertWorker chinese 
,"""func (p *Pool) retrieveWorker() *Worker {\r\n\tvar w 
*Worker\r\n\r\n\t**p.lock.Lock()**\r\n\tidleWorkers := p.workers\r\n\tn := 
len(idleWorkers) - 1\r\n\tif n >= 0 {\r\n\t\tw = 
idleWorkers[n]\r\n\t\tidleWorkers[n] = nil\r\n\t\tp.workers = 
idleWorkers[:n]\r\n\t\tp.lock.Unlock()\r\n\t} else if p.Running() < p.Cap() 
{\r\n\t\tp.lock.Unlock()\r\n\t\tif cacheWorker := p.workerCache.Get(); 
cacheWorker != nil {\r\n\t [...]
-1,483164833,134018330,42,closed, chinese , chinese  functional options  
chinese ,""" chinese \r\n chinese  functional options, chinese 
\r\n```\r\nants.NewPool(10)\r\n```\r\n chinese , chinese  option, chinese , 
chinese  options  chinese 。 chinese  option, chinese 
\r\n```\r\nants.NewPool(10, ants.WithNonblocking(true))\r\n```\r\n chinese 
。\r\n\r\n chinese  Option  chinese , chinese , chinese 。\r\n chinese  
functional options  chinese  rob pike  chinese  
https://commandcenter.blogspot.com/ [...]
+1,483164833,134018330,42,closed," chinese , chinese  functional options  
chinese ",""" chinese \r\n chinese  functional options, chinese 
\r\n```\r\nants.NewPool(10)\r\n```\r\n chinese , chinese  option, chinese , 
chinese  options  chinese 。 chinese  option, chinese 
\r\n```\r\nants.NewPool(10, ants.WithNonblocking(true))\r\n```\r\n chinese 
。\r\n\r\n chinese  Option  chinese , chinese , chinese 。\r\n chinese  
functional options  chinese  rob pike  chinese  
https://commandcenter.blogspot.co [...]
 1,483736247,134018330,43,closed,1.3.0  chinese ,"""Pool  chinese (PanicHandler 
 chinese ) chinese , chinese , chinese 
。""",,,8923413,choleraehyq,0,,7856149,652,https://github.com/panjf2000/ants/issues/43,2019-08-22T13:22:10.000+00:00,2019-08-22T02:29:34.000+00:00,2019-08-22T13:22:10.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,49,
 1,484311063,134018330,44,closed,1.1.1 -> 1.2.0  chinese ,"""Pool.Release  
chinese 
""",,,8923413,choleraehyq,0,,7856149,3068,https://github.com/panjf2000/ants/issues/44,2019-08-25T06:36:14.000+00:00,2019-08-23T03:27:38.000+00:00,2019-08-25T06:36:14.000+00:00,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,50,
diff --git a/backend/plugins/github/e2e/snapshot_tables/issues.csv 
b/backend/plugins/github/e2e/snapshot_tables/issues.csv
index 51b22723c..0fbdb0184 100644
--- a/backend/plugins/github/e2e/snapshot_tables/issues.csv
+++ b/backend/plugins/github/e2e/snapshot_tables/issues.csv
@@ -1,27 +1,27 @@
 
id,url,icon_url,issue_key,title,description,epic_key,type,status,original_status,story_point,resolution_date,created_date,updated_date,lead_time_minutes,parent_issue_id,priority,original_estimate_minutes,time_spent_minutes,time_remaining_minutes,creator_id,creator_name,assignee_id,assignee_name,severity,component,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-github:GithubIssue:1:346842831,https://github.com/panjf2000/ants/issues/5,,5, 
chinese  <-p.freeSignal  chinese ,"""Hi,\r\n     chinese , chinese  
`<-p.freeSignal`  chinese 。  chinese ,freeSignal  chinese , chinese  
`putWorker`  chinese  `p.freeSignal <- sig{}`\r\n\r\n chinese \r\n```\r\nfunc 
(p *Pool) getWorker() *Worker {\r\n\tvar w *Worker\r\n\twaiting := 
false\r\n\r\n\tp.lock.Lock()\r\n\tidleWorkers := p.workers\r\n\tn := 
len(idleWorkers) - 1\r\n\tif n < 0 { //  chinese  pool chinese  [...]
-github:GithubIssue:1:347255859,https://github.com/panjf2000/ants/issues/6,,6, 
chinese bug,"""func (p *Pool) getWorker() *Worker   chinese  199 chinese  \r\n 
chinese ,  chinese 
\r\n\r\n\tp.lock.Unlock()\r\n\t\t<-p.freeSignal\r\n\t\tp.lock.Lock()""",,BUG,DONE,closed,0,2018-08-04T10:18:41.000+00:00,2018-08-03T04:32:28.000+00:00,2018-08-04T10:18:41.000+00:00,1786,,,0,0,0,github:GithubAccount:1:13118848,lovelly,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_ra
 [...]
-github:GithubIssue:1:348630179,https://github.com/panjf2000/ants/issues/7,,7, 
chinese ,""" chinese , chinese 。 chinese ants chinese , chinese 。 chinese 
\r\n![image](https://user-images.githubusercontent.com/4555057/43823431-98384444-9b21-11e8-880c-7458b931734a.png)\r\n
 chinese periodicallyPurge chinese 
\r\n![image](https://user-images.githubusercontent.com/4555057/43823534-e3c624a8-9b21-11e8-96c6-512e3e08db22.png)\r\n\r\n###
  chinese \r\n\r\n chinese n==0 chinese \r\n```\r\nif n > 0 {\r\ [...]
-github:GithubIssue:1:356703393,https://github.com/panjf2000/ants/issues/10,,10,
 chinese worker chinese ,""" chinese cpu chinese 
?""",,,DONE,closed,0,2018-09-29T11:45:00.000+00:00,2018-09-04T08:26:55.000+00:00,2018-09-29T11:45:00.000+00:00,36198,,,0,0,0,github:GithubAccount:1:11763614,Moonlight-Zhao,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,16,
-github:GithubIssue:1:364361014,https://github.com/panjf2000/ants/issues/12,,12,
 chinese , chinese tag chinese ,""" chinese dep chinese , chinese ants chinese 
, chinese tag chinese 。 chinese tag 3.6 chinese ed55924 chinese ,git chinese 
af376f1b chinese , chinese 5 chinese , chinese , chinese tag chinese 。( chinese 
)""",,,DONE,closed,0,2018-09-28T06:05:58.000+00:00,2018-09-27T08:32:25.000+00:00,2019-04-21T08:19:58.000+00:00,1293,,,0,0,0,github:GithubAccount:1:29452204,edcismybrother,github
 [...]
-github:GithubIssue:1:381941219,https://github.com/panjf2000/ants/issues/17,,17,
 chinese ,""" chinese package chinese , chinese Release chinese 
:\r\n\r\n`\r\n\t// Release Closed this pool.\r\n\tfunc (p *PoolWithFunc) 
Release() error {\r\n\t\tp.once.Do(func() {\r\n\t\t\tp.release <- 
sig{}\r\n\t\t\tp.lock.Lock()\r\n\t\t\tidleWorkers := p.workers\r\n\t\t\tfor i, 
w := range idleWorkers {\r\n\t\t\t\tw.args <- nil\r\n\t\t\t\tidleWorkers[i] = 
nil\r\n\t\t\t}\r\n\t\t\tp.workers = nil\r\n\t\t\tp.lo [...]
+github:GithubIssue:1:346842831,https://github.com/panjf2000/ants/issues/5,,5,"; 
chinese  <-p.freeSignal  chinese ","""Hi,\r\n     chinese , chinese  
`<-p.freeSignal`  chinese 。  chinese ,freeSignal  chinese , chinese  
`putWorker`  chinese  `p.freeSignal <- sig{}`\r\n\r\n chinese \r\n```\r\nfunc 
(p *Pool) getWorker() *Worker {\r\n\tvar w *Worker\r\n\twaiting := 
false\r\n\r\n\tp.lock.Lock()\r\n\tidleWorkers := p.workers\r\n\tn := 
len(idleWorkers) - 1\r\n\tif n < 0 { //  chinese  pool chines [...]
+github:GithubIssue:1:347255859,https://github.com/panjf2000/ants/issues/6,,6,"; 
chinese bug","""func (p *Pool) getWorker() *Worker   chinese  199 chinese  \r\n 
chinese ,  chinese 
\r\n\r\n\tp.lock.Unlock()\r\n\t\t<-p.freeSignal\r\n\t\tp.lock.Lock()""",,BUG,DONE,closed,0,2018-08-04T10:18:41.000+00:00,2018-08-03T04:32:28.000+00:00,2018-08-04T10:18:41.000+00:00,1786,,,0,0,0,github:GithubAccount:1:13118848,lovelly,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_
 [...]
+github:GithubIssue:1:348630179,https://github.com/panjf2000/ants/issues/7,,7,"; 
chinese ",""" chinese , chinese 。 chinese ants chinese , chinese 。 chinese 
\r\n![image](https://user-images.githubusercontent.com/4555057/43823431-98384444-9b21-11e8-880c-7458b931734a.png)\r\n
 chinese periodicallyPurge chinese 
\r\n![image](https://user-images.githubusercontent.com/4555057/43823534-e3c624a8-9b21-11e8-96c6-512e3e08db22.png)\r\n\r\n###
  chinese \r\n\r\n chinese n==0 chinese \r\n```\r\nif n > 0 {\ [...]
+github:GithubIssue:1:356703393,https://github.com/panjf2000/ants/issues/10,,10,";
 chinese worker chinese ",""" chinese cpu chinese 
?""",,,DONE,closed,0,2018-09-29T11:45:00.000+00:00,2018-09-04T08:26:55.000+00:00,2018-09-29T11:45:00.000+00:00,36198,,,0,0,0,github:GithubAccount:1:11763614,Moonlight-Zhao,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,16,
+github:GithubIssue:1:364361014,https://github.com/panjf2000/ants/issues/12,,12,";
 chinese , chinese tag chinese ",""" chinese dep chinese , chinese ants chinese 
, chinese tag chinese 。 chinese tag 3.6 chinese ed55924 chinese ,git chinese 
af376f1b chinese , chinese 5 chinese , chinese , chinese tag chinese 。( chinese 
)""",,,DONE,closed,0,2018-09-28T06:05:58.000+00:00,2018-09-27T08:32:25.000+00:00,2019-04-21T08:19:58.000+00:00,1293,,,0,0,0,github:GithubAccount:1:29452204,edcismybrother,gith
 [...]
+github:GithubIssue:1:381941219,https://github.com/panjf2000/ants/issues/17,,17,";
 chinese ",""" chinese package chinese , chinese Release chinese 
:\r\n\r\n`\r\n\t// Release Closed this pool.\r\n\tfunc (p *PoolWithFunc) 
Release() error {\r\n\t\tp.once.Do(func() {\r\n\t\t\tp.release <- 
sig{}\r\n\t\t\tp.lock.Lock()\r\n\t\t\tidleWorkers := p.workers\r\n\t\t\tfor i, 
w := range idleWorkers {\r\n\t\t\t\tw.args <- nil\r\n\t\t\t\tidleWorkers[i] = 
nil\r\n\t\t\t}\r\n\t\t\tp.workers = nil\r\n\t\t\tp. [...]
 
github:GithubIssue:1:382039050,https://github.com/panjf2000/ants/issues/18,,18,go
 chinese ,""" chinese , chinese , chinese go chinese , chinese , chinese 。\"" 
chinese : GOMAXPROCS sets the maximum number of CPUs that can be executing 
simultaneously。 chinese cpu chinese , chinese , chinese ?, chinese ?, chinese 
?, chinese 
?\""""",,,DONE,closed,0,2018-12-03T03:53:50.000+00:00,2018-11-19T02:59:53.000+00:00,2018-12-03T03:53:50.000+00:00,20213,,,0,0,0,github:GithubAccount:1:13944100,LinuxForY
 [...]
-github:GithubIssue:1:382574800,https://github.com/panjf2000/ants/issues/20,,20,
 chinese 
,"""#""",,,DONE,closed,0,2019-01-25T15:34:03.000+00:00,2018-11-20T09:36:02.000+00:00,2019-01-25T15:34:03.000+00:00,95398,,,0,0,0,github:GithubAccount:1:5668717,kklinan,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,26,
+github:GithubIssue:1:382574800,https://github.com/panjf2000/ants/issues/20,,20,";
 chinese 
","""#""",,,DONE,closed,0,2019-01-25T15:34:03.000+00:00,2018-11-20T09:36:02.000+00:00,2019-01-25T15:34:03.000+00:00,95398,,,0,0,0,github:GithubAccount:1:5668717,kklinan,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,26,
 
github:GithubIssue:1:388907811,https://github.com/panjf2000/ants/issues/21,,21,Benchmark
  chinese  Semaphore  chinese ?,""" chinese  benchmark,Semaphore  chinese 
\r\n\r\n```bash\r\n$ go test -bench .\r\ngoos: darwin\r\ngoarch: amd64\r\npkg: 
github.com/panjf2000/ants\r\nBenchmarkGoroutineWithFunc-4   \t       
1\t3445631705 ns/op\r\nBenchmarkSemaphoreWithFunc-4   \t       1\t1037219073 
ns/op\r\nBenchmarkAntsPoolWithFunc-4    \t       1\t1138053222 
ns/op\r\nBenchmarkGoroutine-4           \t [...]
-github:GithubIssue:1:401277739,https://github.com/panjf2000/ants/issues/22,,22,
 chinese  worker  chinese   PanicHandler ?,""" chinese  Pool  chinese  
PanicHandler, chinese  worker  chinese  recover  chinese  PanicHandler   
chinese 。 chinese  panic  chinese 
。""",,,DONE,closed,0,2019-01-22T05:41:34.000+00:00,2019-01-21T10:06:56.000+00:00,2019-01-22T05:41:34.000+00:00,1174,,,0,0,0,github:GithubAccount:1:8923413,choleraehyq,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf200
 [...]
-github:GithubIssue:1:402513849,https://github.com/panjf2000/ants/issues/24,,24,
 chinese ,"""`Pool.Submit` chinese `PoolWithFunc.Server` chinese , chinese 
worker, chinese 。 chinese , chinese 
。""",,,DONE,closed,0,2019-08-20T10:56:30.000+00:00,2019-01-24T02:24:13.000+00:00,2019-08-20T10:56:30.000+00:00,300032,,,0,0,0,github:GithubAccount:1:5044825,tenfyzhong,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,30,
+github:GithubIssue:1:401277739,https://github.com/panjf2000/ants/issues/22,,22,";
 chinese  worker  chinese   PanicHandler ?",""" chinese  Pool  chinese  
PanicHandler, chinese  worker  chinese  recover  chinese  PanicHandler   
chinese 。 chinese  panic  chinese 
。""",,,DONE,closed,0,2019-01-22T05:41:34.000+00:00,2019-01-21T10:06:56.000+00:00,2019-01-22T05:41:34.000+00:00,1174,,,0,0,0,github:GithubAccount:1:8923413,choleraehyq,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2
 [...]
+github:GithubIssue:1:402513849,https://github.com/panjf2000/ants/issues/24,,24,";
 chinese ","""`Pool.Submit` chinese `PoolWithFunc.Server` chinese , chinese 
worker, chinese 。 chinese , chinese 
。""",,,DONE,closed,0,2019-08-20T10:56:30.000+00:00,2019-01-24T02:24:13.000+00:00,2019-08-20T10:56:30.000+00:00,300032,,,0,0,0,github:GithubAccount:1:5044825,tenfyzhong,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,30,
 
github:GithubIssue:1:405951301,https://github.com/panjf2000/ants/issues/25,,25,use
 example errors,"""./antstest.go:37:14: cannot use syncCalculateSum (type 
func()) as type ants.f in argument to ants.Submit\r\n./antstest.go:45:35: 
cannot use func literal (type func(interface {})) as type ants.pf in argument 
to 
ants.NewPoolWithFunc\r\n""",,,DONE,closed,0,2019-02-04T09:11:52.000+00:00,2019-02-02T05:43:38.000+00:00,2019-02-04T09:11:52.000+00:00,3088,,,0,0,0,github:GithubAccount:1:5244267,jia
 [...]
 
github:GithubIssue:1:413968505,https://github.com/panjf2000/ants/issues/26,,26,running
 chinese cap chinese ,"""running chinese cap chinese incRuning chinese ,  
chinese running chinese cap chinese ?\r\n`func (p *Pool) retrieveWorker() 
*Worker {\r\n\tvar w *Worker\r\n\r\n\tp.lock.Lock()\r\n\tidleWorkers := 
p.workers\r\n\tn := len(idleWorkers) - 1\r\n\tif n >= 0 {\r\n\t\tw = 
idleWorkers[n]\r\n\t\tidleWorkers[n] = nil\r\n\t\tp.workers = 
idleWorkers[:n]\r\n\t\tp.lock.Unlock()\r\n\t} else if p [...]
-github:GithubIssue:1:419183961,https://github.com/panjf2000/ants/issues/27,,27,
 chinese goroutine chinese , chinese ,""" chinese goroutine chinese , chinese 
\r\n chinese ?\r\n\r\nwebsocket 
server\r\nhttps://github.com/im-ai/pushm/blob/master/learn/goroutine/goroutinepoolwebsocket.go\r\n\r\nwebsocket
 
cient\r\nhttps://github.com/im-ai/pushm/blob/master/learn/goroutine/goroutinepoolwebsocketclient.go\r\n""",,,DONE,closed,0,2019-04-05T14:05:20.000+00:00,2019-03-10T13:08:52.000+00:00,2019-04-
 [...]
+github:GithubIssue:1:419183961,https://github.com/panjf2000/ants/issues/27,,27,";
 chinese goroutine chinese , chinese ",""" chinese goroutine chinese , chinese 
\r\n chinese ?\r\n\r\nwebsocket 
server\r\nhttps://github.com/im-ai/pushm/blob/master/learn/goroutine/goroutinepoolwebsocket.go\r\n\r\nwebsocket
 
cient\r\nhttps://github.com/im-ai/pushm/blob/master/learn/goroutine/goroutinepoolwebsocketclient.go\r\n""",,,DONE,closed,0,2019-04-05T14:05:20.000+00:00,2019-03-10T13:08:52.000+00:00,2019-0
 [...]
 
github:GithubIssue:1:419268851,https://github.com/panjf2000/ants/issues/28,,28,cap
  chinese  running  chinese ,""" chinese  Playground  chinese  
https://play.golang.org/p/D94YUU3FnX6\r\natomic  chinese , chinese , chinese   
chinese , chinese   chinese , chinese   chinese , chinese \r\n chinese  #26  
chinese 
""",,,DONE,closed,0,2019-08-22T16:27:37.000+00:00,2019-03-11T02:24:41.000+00:00,2019-08-22T16:27:37.000+00:00,237002,,,0,0,0,github:GithubAccount:1:29243953,naiba,github:GithubAccount
 [...]
-github:GithubIssue:1:424634533,https://github.com/panjf2000/ants/issues/29,,29,
 chinese ,""" chinese , chinese 
👍\r\n\r\nhttps://github.com/panjf2000/ants/blob/master/pool.go#L124  chinese ,  
chinese 
?\r\n""",,,DONE,closed,0,2019-03-25T09:32:11.000+00:00,2019-03-24T16:52:21.000+00:00,2019-03-25T09:45:05.000+00:00,999,,,0,0,0,github:GithubAccount:1:8509898,prprprus,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,35,
+github:GithubIssue:1:424634533,https://github.com/panjf2000/ants/issues/29,,29,";
 chinese ",""" chinese , chinese 
👍\r\n\r\nhttps://github.com/panjf2000/ants/blob/master/pool.go#L124  chinese ,  
chinese 
?\r\n""",,,DONE,closed,0,2019-03-25T09:32:11.000+00:00,2019-03-24T16:52:21.000+00:00,2019-03-25T09:45:05.000+00:00,999,,,0,0,0,github:GithubAccount:1:8509898,prprprus,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,35,
 
github:GithubIssue:1:429972115,https://github.com/panjf2000/ants/issues/31,,31,Add
 
go.mod,"""""",,,DONE,closed,0,2019-04-08T09:45:31.000+00:00,2019-04-05T23:50:36.000+00:00,2019-10-17T03:12:19.000+00:00,3474,,,0,0,0,github:GithubAccount:1:48135919,tsatke,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,37,
-github:GithubIssue:1:433564955,https://github.com/panjf2000/ants/issues/32,,32,
 chinese , chinese (0.0.x) chinese ?,""" chinese , chinese 。\r\n\r\n chinese 
\r\n\r\n chinese , chinese 
。""",,,DONE,closed,0,2019-04-21T07:16:26.000+00:00,2019-04-16T03:16:02.000+00:00,2019-04-21T07:16:26.000+00:00,7440,,,0,0,0,github:GithubAccount:1:7931755,zplzpl,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,38,
+github:GithubIssue:1:433564955,https://github.com/panjf2000/ants/issues/32,,32,";
 chinese , chinese (0.0.x) chinese ?",""" chinese , chinese 。\r\n\r\n chinese 
\r\n\r\n chinese , chinese 
。""",,,DONE,closed,0,2019-04-21T07:16:26.000+00:00,2019-04-16T03:16:02.000+00:00,2019-04-21T07:16:26.000+00:00,7440,,,0,0,0,github:GithubAccount:1:7931755,zplzpl,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,38,
 
github:GithubIssue:1:434069015,https://github.com/panjf2000/ants/issues/33,,33,support
 semantic versioning.,""" chinese tag chinese semantic versioning,vX.Y.Z。go 
modules chinese 
。\r\nhttps://semver.org/\r\nhttps://research.swtch.com/vgo-import""",,,DONE,closed,0,2019-04-21T08:25:20.000+00:00,2019-04-17T02:55:11.000+00:00,2019-04-21T08:25:20.000+00:00,6090,,,0,0,0,github:GithubAccount:1:1284892,jjeffcaii,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_g
 [...]
 
github:GithubIssue:1:435486645,https://github.com/panjf2000/ants/issues/34,,34,Important
 announcement about <ants> from author !!!,"""**Dear users of `ants`:**\r\nI am 
apologetically telling you that I have to dump all tags which already presents 
in `ants` repository.\r\n\r\nThe reason why I'm doing so is to standardize the 
version management with `Semantic Versioning`, which will make a formal and 
clear dependency management in go, for go modules, godep, or glide, etc. So I 
decide to st [...]
 
github:GithubIssue:1:461280653,https://github.com/panjf2000/ants/issues/35,,35,worker
 exit on panic,""" chinese PanicHandler chinese 。\r\n1. chinese PanicHandler 
chinese , chinese panic, chinese 。\r\n2. chinese PanicHandler, chinese worker 
chinese , chinese pool chinese 
。""",,,DONE,closed,0,2019-08-17T20:33:10.000+00:00,2019-06-27T03:11:49.000+00:00,2019-08-17T20:33:10.000+00:00,74481,,,0,0,0,github:GithubAccount:1:38849208,king526,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"
 [...]
-github:GithubIssue:1:462631417,https://github.com/panjf2000/ants/issues/37,,37,
 chinese 。。。,""" chinese  3.9.9, chinese , chinese , chinese  1.0.0。 chinese 。 
chinese 
""",,,DONE,closed,0,2019-07-01T12:37:55.000+00:00,2019-07-01T10:17:15.000+00:00,2019-07-02T10:17:31.000+00:00,140,,,0,0,0,github:GithubAccount:1:8923413,choleraehyq,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,43,
+github:GithubIssue:1:462631417,https://github.com/panjf2000/ants/issues/37,,37,";
 chinese 。。。",""" chinese  3.9.9, chinese , chinese , chinese  1.0.0。 chinese 。 
chinese 
""",,,DONE,closed,0,2019-07-01T12:37:55.000+00:00,2019-07-01T10:17:15.000+00:00,2019-07-02T10:17:31.000+00:00,140,,,0,0,0,github:GithubAccount:1:8923413,choleraehyq,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,43,
 
github:GithubIssue:1:472125082,https://github.com/panjf2000/ants/issues/38,,38,retrieveWorker
 chinese revertWorker chinese ,"""func (p *Pool) retrieveWorker() *Worker 
{\r\n\tvar w *Worker\r\n\r\n\t**p.lock.Lock()**\r\n\tidleWorkers := 
p.workers\r\n\tn := len(idleWorkers) - 1\r\n\tif n >= 0 {\r\n\t\tw = 
idleWorkers[n]\r\n\t\tidleWorkers[n] = nil\r\n\t\tp.workers = 
idleWorkers[:n]\r\n\t\tp.lock.Unlock()\r\n\t} else if p.Running() < p.Cap() 
{\r\n\t\tp.lock.Unlock()\r\n\t\tif cacheWorker :=  [...]
-github:GithubIssue:1:483164833,https://github.com/panjf2000/ants/issues/42,,42,
 chinese , chinese  functional options  chinese ,""" chinese \r\n chinese  
functional options, chinese \r\n```\r\nants.NewPool(10)\r\n```\r\n chinese , 
chinese  option, chinese , chinese  options  chinese 。 chinese  option, chinese 
\r\n```\r\nants.NewPool(10, ants.WithNonblocking(true))\r\n```\r\n chinese 
。\r\n\r\n chinese  Option  chinese , chinese , chinese 。\r\n chinese  
functional options  chinese  rob pik [...]
+github:GithubIssue:1:483164833,https://github.com/panjf2000/ants/issues/42,,42,";
 chinese , chinese  functional options  chinese ",""" chinese \r\n chinese  
functional options, chinese \r\n```\r\nants.NewPool(10)\r\n```\r\n chinese , 
chinese  option, chinese , chinese  options  chinese 。 chinese  option, chinese 
\r\n```\r\nants.NewPool(10, ants.WithNonblocking(true))\r\n```\r\n chinese 
。\r\n\r\n chinese  Option  chinese , chinese , chinese 。\r\n chinese  
functional options  chinese  rob p [...]
 
github:GithubIssue:1:483736247,https://github.com/panjf2000/ants/issues/43,,43,1.3.0
  chinese ,"""Pool  chinese (PanicHandler  chinese ) chinese , chinese , 
chinese 
。""",,,DONE,closed,0,2019-08-22T13:22:10.000+00:00,2019-08-22T02:29:34.000+00:00,2019-08-22T13:22:10.000+00:00,652,,,0,0,0,github:GithubAccount:1:8923413,choleraehyq,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,49,
 
github:GithubIssue:1:484311063,https://github.com/panjf2000/ants/issues/44,,44,1.1.1
 -> 1.2.0  chinese ,"""Pool.Release  chinese 
""",,,DONE,closed,0,2019-08-25T06:36:14.000+00:00,2019-08-23T03:27:38.000+00:00,2019-08-25T06:36:14.000+00:00,3068,,,0,0,0,github:GithubAccount:1:8923413,choleraehyq,github:GithubAccount:1:0,,,,"{""ConnectionId"":1,""Name"":""panjf2000/ants""}",_raw_github_api_issues,50,
diff --git a/backend/plugins/github/tasks/issue_extractor.go 
b/backend/plugins/github/tasks/issue_extractor.go
index b1a01bdac..45963d52c 100644
--- a/backend/plugins/github/tasks/issue_extractor.go
+++ b/backend/plugins/github/tasks/issue_extractor.go
@@ -19,12 +19,14 @@ package tasks
 
 import (
        "encoding/json"
+       "regexp"
+       "strings"
+
        "github.com/apache/incubator-devlake/core/errors"
        "github.com/apache/incubator-devlake/core/models/domainlayer/ticket"
        "github.com/apache/incubator-devlake/core/plugin"
        "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
        "github.com/apache/incubator-devlake/plugins/github/models"
-       "regexp"
 )
 
 var ExtractApiIssuesMeta = plugin.SubTaskMeta{
@@ -179,12 +181,15 @@ func convertGithubIssue(issue *IssuesResponse, 
connectionId uint64, repositoryId
 
 func convertGithubLabels(issueRegexes *IssueRegexes, issue *IssuesResponse, 
githubIssue *models.GithubIssue) ([]interface{}, errors.Error) {
        var results []interface{}
+       var joinedLabels []string
        for _, label := range issue.Labels {
                results = append(results, &models.GithubIssueLabel{
                        ConnectionId: githubIssue.ConnectionId,
                        IssueId:      githubIssue.GithubId,
                        LabelName:    label.Name,
                })
+               joinedLabels = append(joinedLabels, label.Name)
+
                if issueRegexes.SeverityRegex != nil {
                        groups := 
issueRegexes.SeverityRegex.FindStringSubmatch(label.Name)
                        if len(groups) > 1 {
@@ -203,25 +208,17 @@ func convertGithubLabels(issueRegexes *IssueRegexes, 
issue *IssuesResponse, gith
                                githubIssue.Priority = groups[1]
                        }
                }
-               if issueRegexes.TypeBugRegex != nil {
-                       if ok := 
issueRegexes.TypeBugRegex.MatchString(label.Name); ok {
-                               githubIssue.StdType = ticket.BUG
-                               githubIssue.Type = label.Name
-                       }
-               }
-               if issueRegexes.TypeRequirementRegex != nil {
-                       if ok := 
issueRegexes.TypeRequirementRegex.MatchString(label.Name); ok {
-                               githubIssue.StdType = ticket.REQUIREMENT
-                               githubIssue.Type = label.Name
-                       }
-               }
-               if issueRegexes.TypeIncidentRegex != nil {
-                       if ok := 
issueRegexes.TypeIncidentRegex.MatchString(label.Name); ok {
-                               githubIssue.StdType = ticket.INCIDENT
-                               githubIssue.Type = label.Name
-                       }
+               if issueRegexes.TypeRequirementRegex != nil && 
issueRegexes.TypeRequirementRegex.MatchString(label.Name) {
+                       githubIssue.StdType = ticket.REQUIREMENT
+               } else if issueRegexes.TypeBugRegex != nil && 
issueRegexes.TypeBugRegex.MatchString(label.Name) {
+                       githubIssue.StdType = ticket.BUG
+               } else if issueRegexes.TypeIncidentRegex != nil && 
issueRegexes.TypeIncidentRegex.MatchString(label.Name) {
+                       githubIssue.StdType = ticket.INCIDENT
                }
        }
+       if len(joinedLabels) > 0 {
+               githubIssue.Type = strings.Join(joinedLabels, ",")
+       }
        return results, nil
 }
 
diff --git a/backend/plugins/github_graphql/tasks/issue_collector.go 
b/backend/plugins/github_graphql/tasks/issue_collector.go
index 87928c421..468a6b0e3 100644
--- a/backend/plugins/github_graphql/tasks/issue_collector.go
+++ b/backend/plugins/github_graphql/tasks/issue_collector.go
@@ -243,12 +243,15 @@ func convertGithubIssue(milestoneMap map[int]int, issue 
GraphqlQueryIssue, conne
 
 func convertGithubLabels(issueRegexes *githubTasks.IssueRegexes, issue 
GraphqlQueryIssue, githubIssue *models.GithubIssue) ([]interface{}, 
errors.Error) {
        var results []interface{}
+       var joinedLabels []string
        for _, label := range issue.Labels.Nodes {
                results = append(results, &models.GithubIssueLabel{
                        ConnectionId: githubIssue.ConnectionId,
                        IssueId:      githubIssue.GithubId,
                        LabelName:    label.Name,
                })
+               joinedLabels = append(joinedLabels, label.Name)
+
                if issueRegexes.SeverityRegex != nil {
                        groups := 
issueRegexes.SeverityRegex.FindStringSubmatch(label.Name)
                        if len(groups) > 1 {
@@ -267,24 +270,16 @@ func convertGithubLabels(issueRegexes 
*githubTasks.IssueRegexes, issue GraphqlQu
                                githubIssue.Priority = groups[1]
                        }
                }
-               if issueRegexes.TypeBugRegex != nil {
-                       if ok := 
issueRegexes.TypeBugRegex.MatchString(label.Name); ok {
-                               githubIssue.StdType = ticket.BUG
-                               githubIssue.Type = label.Name
-                       }
-               }
-               if issueRegexes.TypeRequirementRegex != nil {
-                       if ok := 
issueRegexes.TypeRequirementRegex.MatchString(label.Name); ok {
-                               githubIssue.StdType = ticket.REQUIREMENT
-                               githubIssue.Type = label.Name
-                       }
-               }
-               if issueRegexes.TypeIncidentRegex != nil {
-                       if ok := 
issueRegexes.TypeIncidentRegex.MatchString(label.Name); ok {
-                               githubIssue.StdType = ticket.INCIDENT
-                               githubIssue.Type = label.Name
-                       }
+               if issueRegexes.TypeRequirementRegex != nil && 
issueRegexes.TypeRequirementRegex.MatchString(label.Name) {
+                       githubIssue.StdType = ticket.REQUIREMENT
+               } else if issueRegexes.TypeBugRegex != nil && 
issueRegexes.TypeBugRegex.MatchString(label.Name) {
+                       githubIssue.StdType = ticket.BUG
+               } else if issueRegexes.TypeIncidentRegex != nil && 
issueRegexes.TypeIncidentRegex.MatchString(label.Name) {
+                       githubIssue.StdType = ticket.INCIDENT
                }
        }
+       if len(joinedLabels) > 0 {
+               githubIssue.Type = strings.Join(joinedLabels, ",")
+       }
        return results, nil
 }


Reply via email to