Skip to content

Commit 87dfd38

Browse files
authoredFeb 3, 2025··
feat(3274): add not equal filter for pipeline events creator (#3275)
1 parent 90e5504 commit 87dfd38

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed
 

‎plugins/pipelines/listEvents.js

+19-2
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,19 @@ module.exports = () => ({
7373
config.search = { field: ['commit'], keyword: `%name":"${author}%` };
7474
} else if (creator) {
7575
// 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+
};
7789
}
7890

7991
if (groupEventId) {
@@ -107,7 +119,12 @@ module.exports = () => ({
107119
sha: shaSchema,
108120
message: joi.string().label('Commit message').example('fix: Typo'),
109121
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'),
111128
id: queryIdSchema,
112129
groupEventId: pipelineIdSchema,
113130
search: joi.forbidden(), // we don't support search for Pipeline list events

‎test/plugins/pipelines.test.js

+21-1
Original file line numberDiff line numberDiff line change
@@ -1595,7 +1595,27 @@ describe('pipeline plugin test', () => {
15951595
params: { type: 'pipeline' },
15961596
search: {
15971597
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
15991619
},
16001620
sort: 'descending'
16011621
});

0 commit comments

Comments
 (0)
Please sign in to comment.