@@ -99,17 +99,31 @@ ${changedPackages.map(x => `"${x}": patch`).join('\n')}
99
99
${ title }
100
100
` )
101
101
102
- const getCommentId = ( api : Gitlab , mrIid : number | string ) =>
103
- api . MergeRequestNotes . all ( context . projectId , mrIid ) . then ( comments => {
104
- const changesetBotComment = comments . find (
105
- comment =>
106
- comment . author . username === process . env . GITLAB_CI_USER_NAME &&
107
- // We need to ensure the comment is generated by us but we don't have a app bot like GitHub
108
- // @see https://github.com/apps/changeset-bot
109
- comment . body . includes ( 'Generated By Changesets GitLab Bot' ) ,
110
- )
111
- return changesetBotComment ? changesetBotComment . id : null
112
- } )
102
+ const getNoteInfo = ( api : Gitlab , mrIid : number | string ) =>
103
+ api . MergeRequestDiscussions . all ( context . projectId , mrIid ) . then (
104
+ discussions => {
105
+ for ( const discussion of discussions ) {
106
+ if ( ! discussion . notes ) {
107
+ continue
108
+ }
109
+
110
+ const changesetBotNote = discussion . notes . find (
111
+ note =>
112
+ note . author . username === process . env . GITLAB_CI_USER_NAME &&
113
+ // We need to ensure the note is generated by us but we don't have a app bot like GitHub
114
+ // @see https://github.com/apps/changeset-bot
115
+ note . body . includes ( 'Generated By Changesets GitLab Bot' ) ,
116
+ )
117
+
118
+ if ( changesetBotNote ) {
119
+ return {
120
+ discussionId : discussion . id ,
121
+ noteId : changesetBotNote . id ,
122
+ }
123
+ }
124
+ }
125
+ } ,
126
+ )
113
127
114
128
const hasChangesetBeenAdded = (
115
129
changedFilesPromise : ReturnType < MergeRequests [ 'changes' ] > ,
@@ -154,9 +168,9 @@ export const comment = async () => {
154
168
mrIid ,
155
169
)
156
170
157
- const [ commentId , hasChangeset , { changedPackages, releasePlan } ] =
171
+ const [ noteInfo , hasChangeset , { changedPackages, releasePlan } ] =
158
172
await Promise . all ( [
159
- getCommentId ( api , mrIid ) ,
173
+ getNoteInfo ( api , mrIid ) ,
160
174
hasChangesetBeenAdded ( changedFilesPromise ) ,
161
175
getChangedPackages ( {
162
176
changedFiles : changedFilesPromise . then ( x =>
@@ -193,15 +207,23 @@ export const comment = async () => {
193
207
: getAbsentMessage ( latestCommitSha , addChangesetUrl , releasePlan ) ) +
194
208
errFromFetchingChangedFiles
195
209
196
- if ( commentId != null ) {
197
- return api . MergeRequestNotes . edit (
210
+ if ( noteInfo != null ) {
211
+ return api . MergeRequestDiscussions . editNote (
198
212
context . projectId ,
199
213
mrIid ,
200
- commentId ,
201
- prComment ,
214
+ // @ts -expect-error - https://github.com/jdalrymple/gitbeaker/pull/523#issuecomment-975276068
215
+ noteInfo . discussionId ,
216
+ noteInfo . noteId ,
217
+ {
218
+ body : prComment ,
219
+ } ,
202
220
)
203
221
}
204
- return api . MergeRequestNotes . create ( context . projectId , mrIid , prComment )
222
+ return api . MergeRequestDiscussions . create (
223
+ context . projectId ,
224
+ mrIid ,
225
+ prComment ,
226
+ )
205
227
} catch ( err : unknown ) {
206
228
console . error ( err )
207
229
throw err
0 commit comments