File tree 2 files changed +40
-3
lines changed
2 files changed +40
-3
lines changed Original file line number Diff line number Diff line change @@ -73,7 +73,19 @@ module.exports = () => ({
73
73
config . search = { field : [ 'commit' ] , keyword : `%name":"${ author } %` } ;
74
74
} else if ( creator ) {
75
75
// searches name and username
76
- config . search = { field : [ 'creator' ] , keyword : `%name":"${ creator } %` } ;
76
+ let inverse = false ;
77
+ let creatorName = creator ;
78
+
79
+ if ( creator . startsWith ( 'ne:' ) ) {
80
+ inverse = true ;
81
+ creatorName = creator . substring ( 3 ) ; // Remove 'ne:' prefix
82
+ }
83
+
84
+ config . search = {
85
+ field : [ 'creator' ] ,
86
+ keyword : `%name":"${ creatorName } %` ,
87
+ inverse
88
+ } ;
77
89
}
78
90
79
91
if ( groupEventId ) {
@@ -107,7 +119,12 @@ module.exports = () => ({
107
119
sha : shaSchema ,
108
120
message : joi . string ( ) . label ( 'Commit message' ) . example ( 'fix: Typo' ) ,
109
121
author : joi . string ( ) . label ( 'Author Name' ) . example ( 'Dao Lam' ) ,
110
- creator : joi . string ( ) . label ( 'Creator Name' ) . example ( 'Dao Lam' ) ,
122
+ creator : joi
123
+ . string ( )
124
+ . label ( 'Creator Name' )
125
+ . description ( 'Creator Name; optionally use "ne:" prefix to exclude creator' )
126
+ . example ( 'Dao Lam' )
127
+ . example ( 'ne:Dao Lam' ) ,
111
128
id : queryIdSchema ,
112
129
groupEventId : pipelineIdSchema ,
113
130
search : joi . forbidden ( ) , // we don't support search for Pipeline list events
Original file line number Diff line number Diff line change @@ -1595,7 +1595,27 @@ describe('pipeline plugin test', () => {
1595
1595
params : { type : 'pipeline' } ,
1596
1596
search : {
1597
1597
field : [ 'creator' ] ,
1598
- keyword : '%name":"Dao%'
1598
+ keyword : '%name":"Dao%' ,
1599
+ inverse : false
1600
+ } ,
1601
+ sort : 'descending'
1602
+ } ) ;
1603
+ assert . deepEqual ( reply . result , testEvents ) ;
1604
+ assert . equal ( reply . statusCode , 200 ) ;
1605
+ } ) ;
1606
+ } ) ;
1607
+
1608
+ it ( 'returns 200 for getting events with commit creator not sd:scheduler' , ( ) => {
1609
+ options . url = `/pipelines/${ id } /events?creator=ne:sd:scheduler` ;
1610
+
1611
+ return server . inject ( options ) . then ( reply => {
1612
+ assert . calledOnce ( pipelineMock . getEvents ) ;
1613
+ assert . calledWith ( pipelineMock . getEvents , {
1614
+ params : { type : 'pipeline' } ,
1615
+ search : {
1616
+ field : [ 'creator' ] ,
1617
+ keyword : '%name":"sd:scheduler%' ,
1618
+ inverse : true
1599
1619
} ,
1600
1620
sort : 'descending'
1601
1621
} ) ;
You can’t perform that action at this time.
0 commit comments