[JIRA] (JENKINS-60062) MR Trigger by Comment not working.

4 views
Skip to first unread message

albeldas@gmail.com (JIRA)

unread,
Nov 5, 2019, 10:20:05 AM11/5/19
to jenkinsc...@googlegroups.com
Liran Albeldas created an issue
 
Jenkins / Bug JENKINS-60062
MR Trigger by Comment not working.
Issue Type: Bug Bug
Assignee: Parichay Barpanda
Components: gitlab-branch-source-plugin
Created: 2019-11-05 15:19
Environment: Jenkins 2.176.2 core and libraries
GitLab Enterprise Edition 11.8.0-ee
GitLab Branch Source Plugin 1.4.0
Labels: plugin jenkins
Priority: Major Major
Reporter: Liran Albeldas

Hi,

I'm using your plugin for a few months now and it works great.
I have one problem with MR note/comment, it does not trigger the MR job.
I added the field "Trigger build on merge request comment" but it's not doing anything.

I can see on GitLab that webhook has been sent to Jenkins with "note hook" and on Jenkins i can see that webhook recevied. 

 

Log from job with exaple hooks:

 

                    1. Job Log ################

Nov 05, 2019 5:12:00 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource retrieve
c, o, e, l..Executor #-1 for master : executing BranchIndexing[Auto-discovery/company-example%2Fservices%2Fservices%2Fexample-company.services.claims-abroad-backend]
Nov 05, 2019 5:12:01 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource createProbe
Creating a probe: k8s
Nov 05, 2019 5:12:01 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource$4 stat
Path of file: Jenkinsfile
Nov 05, 2019 5:12:01 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource retrieveActions
h, e, l..Executor #-1 for master : executing BranchIndexing[Auto-discovery/company-example%2Fservices%2Fservices%2Fexample-company.services.claims-abroad-backend]
Nov 05, 2019 5:12:17 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabWebHookListener onMergeRequestEvent
MR EVENT
Nov 05, 2019 5:12:17 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabWebHookListener onMergeRequestEvent
{
"object_kind" : "merge_request",
"user" :

{ "avatarUrl" : null, "createdAt" : null, "email" : null, "id" : null, "name" : "UserName", "state" : null, "username" : "UserName", "webUrl" : null, "bio" : null, "canCreateGroup" : null, "canCreateProject" : null, "colorSchemeId" : null, "confirmedAt" : null, "currentSignInAt" : null, "customAttributes" : null, "external" : null, "externUid" : null, "extraSharedRunnersMinutesLimit" : null, "identities" : null, "isAdmin" : null, "lastActivityOn" : null, "lastSignInAt" : null, "linkedin" : null, "location" : null, "organization" : null, "privateProfile" : null, "projectsLimit" : null, "provider" : null, "publicEmail" : null, "sharedRunnersMinutesLimit" : null, "skype" : null, "themeId" : null, "twitter" : null, "twoFactorEnabled" : null, "websiteUrl" : null, "skipConfirmation" : null }

,
"project" :

{ "id" : 138, "name" : "example-company.services.state-employees", "description" : "", "webUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "avatarUrl" : "http://gitlab.example-company-office.com/uploads/-/system/project/avatar/138/image_eldvFyaT.png", "gitSshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "gitHttpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git", "namespace" : "services", "visibilityLevel" : 0, "pathWithNamespace" : "company-example/services/services/example-company.services.state-employees", "defaultBranch" : "develop", "ciConfigPath" : null, "homepage" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "url" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "sshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "httpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git" }

,
"repository" :

{ "name" : "example-company.services.state-employees", "url" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "description" : "", "homepage" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "git_http_url" : null, "git_ssh_url" : null, "visibility_level" : null }

,
"objectAttributes" : {
"assigneeId" : null,
"authorId" : 202,
"branchName" : null,
"createdAt" : "2019-11-05T12:58:06Z",
"description" : "",
"id" : 7956,
"iid" : 349,
"mergeCommitSha" : null,
"mergeStatus" : "can_be_merged",
"milestoneId" : null,
"position" : null,
"lockedAt" : null,
"projectId" : null,
"sourceBranch" : "feature/move_to_aws",
"sourceProjectId" : 138,
"stCommits" : null,
"stDiffs" : null,
"state" : "opened",
"targetBranch" : "develop",
"targetProjectId" : 138,
"title" : "Feature/move to aws",
"updatedAt" : "2019-11-05T15:12:16Z",
"source" :

{ "id" : 138, "name" : "example-company.services.state-employees", "description" : "", "webUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "avatarUrl" : "http://gitlab.example-company-office.com/uploads/-/system/project/avatar/138/image_eldvFyaT.png", "gitSshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "gitHttpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git", "namespace" : "services", "visibilityLevel" : 0, "pathWithNamespace" : "company-example/services/services/example-company.services.state-employees", "defaultBranch" : "develop", "ciConfigPath" : null, "homepage" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "url" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "sshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "httpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git" }

,
"target" :

{ "id" : 138, "name" : "example-company.services.state-employees", "description" : "", "webUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "avatarUrl" : "http://gitlab.example-company-office.com/uploads/-/system/project/avatar/138/image_eldvFyaT.png", "gitSshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "gitHttpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git", "namespace" : "services", "visibilityLevel" : 0, "pathWithNamespace" : "company-example/services/services/example-company.services.state-employees", "defaultBranch" : "develop", "ciConfigPath" : null, "homepage" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "url" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "sshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "httpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git" }

,
"lastCommit" : {
"id" : "66e1b79ed3b48571e5604606da208e52d5630ef6",
"message" : "Update manifest.yaml",
"timestamp" : "2019-11-05T12:53:33Z",
"url" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees/commit/66e1b79ed3b48571e5604606da208e52d5630ef6",
"author" :

{ "avatarUrl" : null, "createdAt" : null, "email" : "User...@example-company-int.co.il", "id" : null, "name" : "UserName", "state" : null, "username" : null, "webUrl" : null }

,
"added" : null,
"modified" : null,
"removed" : null
},
"workInProgress" : false,
"url" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees/merge_requests/349",
"action" : "reopen",
"assignee" : null,
"updatedById" : null,
"mergeError" : null,
"mergeParams" :

{ "force_remove_source_branch" : "1" }

,
"mergeWhenPipelineSucceeds" : false,
"mergeUserId" : null,
"deletedAt" : null,
"inProgressMergeCommitSha" : null,
"lockVersion" : null,
"last_editedAt" : null,
"lastEditedById" : null,
"headPipelineId" : 648,
"refFetched" : null,
"mergeIid" : null,
"totalTimeSpent" : 0,
"humanTotalTimeSpent" : null,
"timeEstimate" : 0,
"humanTimeEstimate" : null
},
"labels" : [ ],
"changes" : {
"authorId" : null,
"createdAt" : null,
"updatedAt" :

{ "previous" : "2019-11-05T14:57:09Z", "current" : "2019-11-05T15:12:16Z" }

,
"updatedById" : null,
"title" : null,
"description" : null,
"state" :

{ "previous" : "closed", "current" : "opened" }

,
"milestoneId" : null,
"labels" : null,
"assignees" : null,
"totalTimeSpent" :

{ "previous" : null, "current" : 0 }

,
"mergeStatus" : null
},
"objectKind" : "merge_request"
}
Nov 05, 2019 5:12:17 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource retrieve
c, o, e, l..class io.jenkins.plugins.gitlabbranchsource.GitLabMergeRequestSCMEvent Tue Nov 05 17:12:17 IST 2019 / SCMEvent 5
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource retrieve
UserName -> TRUE
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource createProbe
Creating a probe: MR-349-merge
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource$4 stat
Path of file: Jenkinsfile-gitflow
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource retrieveActions
h, e, l..class io.jenkins.plugins.gitlabbranchsource.GitLabMergeRequestSCMEvent Tue Nov 05 17:12:17 IST 2019 / SCMEvent 5
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobScheduledListener onEnterWaiting
QueueListener: WaitingGitFlow multi test » MR-349-merge
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource retrieve
h, l..Computer.threadPoolForRemoting 1440
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobScheduledListener lambda$onEnterWaiting$0
Querying the current revision of merge request #349...
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobCompletedListener onStarted
RunListener: StartedGitFlow multi test » MR-349-merge #2
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier sendNotifications
Result: null
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource retrieve
h, l..Executor #-1 for master : executing git-flow-multi/MR-349-merge #2
Nov 05, 2019 5:12:19 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMNavigator visitSources
visiting sources..
Nov 05, 2019 5:12:20 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobScheduledListener lambda$onEnterWaiting$0
Current revision of merge request #349 is 66e1b79ed3b48571e5604606da208e52d5630ef6
Nov 05, 2019 5:12:20 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobScheduledListener lambda$onEnterWaiting$0
Notifying merge request pending build git-flow-multi/MR-349-merge
Nov 05, 2019 5:12:20 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobScheduledListener lambda$onEnterWaiting$0
git-flow-multi/MR-349-merge Notified
Nov 05, 2019 5:12:20 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabSCMSource getTrustedRevision
Trusted Revision: UserName -> true
Nov 05, 2019 5:12:22 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobCheckOutListener onCheckout
SCMListener: CheckoutGitFlow multi test » MR-349-merge #2
Nov 05, 2019 5:12:22 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier sendNotifications
Result: null
Nov 05, 2019 5:12:22 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier sendNotifications
COMMIT: 66e1b79ed3b48571e5604606da208e52d5630ef6
Nov 05, 2019 5:12:26 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobCheckOutListener onCheckout
SCMListener: CheckoutGitFlow multi test » MR-349-merge #2
Nov 05, 2019 5:12:26 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier sendNotifications
Result: null
Nov 05, 2019 5:12:26 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier sendNotifications
COMMIT: 66e1b79ed3b48571e5604606da208e52d5630ef6
Nov 05, 2019 5:12:35 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobCheckOutListener onCheckout
SCMListener: CheckoutGitFlow multi test » MR-349-merge #2
Nov 05, 2019 5:12:35 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier sendNotifications
Result: null
Nov 05, 2019 5:12:35 PM INFO io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier sendNotifications
COMMIT: 66e1b79ed3b48571e5604606da208e52d5630ef6
Nov 05, 2019 5:12:40 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabWebHookListener onNoteEvent
NOTE EVENT
Nov 05, 2019 5:12:40 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabWebHookListener onNoteEvent
{
"object_kind" : "note",
"user" :

{ "avatarUrl" : null, "createdAt" : null, "email" : null, "id" : null, "name" : "UserName", "state" : null, "username" : "UserName", "webUrl" : null, "bio" : null, "canCreateGroup" : null, "canCreateProject" : null, "colorSchemeId" : null, "confirmedAt" : null, "currentSignInAt" : null, "customAttributes" : null, "external" : null, "externUid" : null, "extraSharedRunnersMinutesLimit" : null, "identities" : null, "isAdmin" : null, "lastActivityOn" : null, "lastSignInAt" : null, "linkedin" : null, "location" : null, "organization" : null, "privateProfile" : null, "projectsLimit" : null, "provider" : null, "publicEmail" : null, "sharedRunnersMinutesLimit" : null, "skype" : null, "themeId" : null, "twitter" : null, "twoFactorEnabled" : null, "websiteUrl" : null, "skipConfirmation" : null }

,
"projectId" : 138,
"project" :

{ "id" : 138, "name" : "example-company.services.state-employees", "description" : "", "webUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "avatarUrl" : "http://gitlab.example-company-office.com/uploads/-/system/project/avatar/138/image_eldvFyaT.png", "gitSshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "gitHttpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git", "namespace" : "services", "visibilityLevel" : 0, "pathWithNamespace" : "company-example/services/services/example-company.services.state-employees", "defaultBranch" : "develop", "ciConfigPath" : null, "homepage" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "url" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "sshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "httpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git" }

,
"repository" :

{ "name" : "example-company.services.state-employees", "url" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "description" : "", "homepage" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "git_http_url" : null, "git_ssh_url" : null, "visibility_level" : null }

,
"objectAttributes" :

{ "id" : 19769, "note" : "rebuild", "noteableType" : "MergeRequest", "authorId" : 202, "createdAt" : "2019-11-05T15:12:39Z", "updatedAt" : "2019-11-05T15:12:39Z", "projectId" : 138, "attachment" : null, "lineCode" : null, "commitId" : null, "noteableId" : 7956, "system" : false, "stDiff" : null, "url" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees/merge_requests/349#note_19769" }

,
"commit" : null,
"issue" : null,
"mergeRequest" : {
"assigneeId" : null,
"authorId" : 202,
"branchName" : null,
"createdAt" : "2019-11-05T12:58:06Z",
"description" : "",
"id" : 7956,
"iid" : 349,
"mergeCommitSha" : null,
"mergeStatus" : "can_be_merged",
"milestoneId" : null,
"position" : null,
"lockedAt" : null,
"projectId" : null,
"sourceBranch" : "feature/move_to_aws",
"sourceProjectId" : 138,
"stCommits" : null,
"stDiffs" : null,
"state" : "opened",
"targetBranch" : "develop",
"targetProjectId" : 138,
"title" : "Feature/move to aws",
"updatedAt" : "2019-11-05T15:12:16Z",
"source" :

{ "id" : 138, "name" : "example-company.services.state-employees", "description" : "", "webUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "avatarUrl" : "http://gitlab.example-company-office.com/uploads/-/system/project/avatar/138/image_eldvFyaT.png", "gitSshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "gitHttpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git", "namespace" : "services", "visibilityLevel" : 0, "pathWithNamespace" : "company-example/services/services/example-company.services.state-employees", "defaultBranch" : "develop", "ciConfigPath" : null, "homepage" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "url" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "sshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "httpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git" }

,
"target" :

{ "id" : 138, "name" : "example-company.services.state-employees", "description" : "", "webUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "avatarUrl" : "http://gitlab.example-company-office.com/uploads/-/system/project/avatar/138/image_eldvFyaT.png", "gitSshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "gitHttpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git", "namespace" : "services", "visibilityLevel" : 0, "pathWithNamespace" : "company-example/services/services/example-company.services.state-employees", "defaultBranch" : "develop", "ciConfigPath" : null, "homepage" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees", "url" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "sshUrl" : "g...@gitlab.example-company-office.com:company-example/services/services/example-company.services.state-employees.git", "httpUrl" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees.git" }

,
"lastCommit" : {
"id" : "66e1b79ed3b48571e5604606da208e52d5630ef6",
"message" : "Update manifest.yaml",
"timestamp" : "2019-11-05T12:53:33Z",
"url" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees/commit/66e1b79ed3b48571e5604606da208e52d5630ef6",
"author" :

{ "avatarUrl" : null, "createdAt" : null, "email" : "User...@example-company-int.co.il", "id" : null, "name" : "UserName", "state" : null, "username" : null, "webUrl" : null }

,
"added" : null,
"modified" : null,
"removed" : null
},
"workInProgress" : false,
"url" : "http://gitlab.example-company-office.com/company-example/services/services/example-company.services.state-employees/merge_requests/349",
"action" : null,
"assignee" : null,
"updatedById" : null,
"mergeError" : null,
"mergeParams" :

{ "force_remove_source_branch" : "1" }

,
"mergeWhenPipelineSucceeds" : false,
"mergeUserId" : null,
"deletedAt" : null,
"inProgressMergeCommitSha" : null,
"lockVersion" : null,
"last_editedAt" : null,
"lastEditedById" : null,
"headPipelineId" : 648,
"refFetched" : null,
"mergeIid" : null,
"totalTimeSpent" : 0,
"humanTotalTimeSpent" : null,
"timeEstimate" : 0,
"humanTimeEstimate" : null
},
"snippet" : null,
"objectKind" : "note"
}
Nov 05, 2019 5:12:40 PM INFO io.jenkins.plugins.gitlabbranchsource.GitLabMergeRequestCommentTrigger isMatch
Source Owner: company-example-Services

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

szuberskidamian@gmail.com (JIRA)

unread,
Mar 9, 2020, 6:29:03 AM3/9/20
to jenkinsc...@googlegroups.com
Damian Szuberski commented on Bug JENKINS-60062
 
Re: MR Trigger by Comment not working.

Same here. The plugin completely ignores Note events despite receiving them.

This message was sent by Atlassian Jira (v7.13.12#713012-sha1:6e07c38)
Atlassian logo

jenkinsci@kundrik.com (JIRA)

unread,
Mar 13, 2020, 11:09:04 AM3/13/20
to jenkinsc...@googlegroups.com

I found the same problem but for me it seems to break when using folders in Jenkins

  1. Create a job at top level
  2. Make MR comment

Result: job triggers fine

Now with folder

  1. Create a folder (cloudbees-folder plugin)
  2. Move job into the new folder
  3. Make MR comment

Result: MR comment on XXX did not match any job

Looking at the code it seems the problem is in this change https://github.com/jenkinsci/gitlab-branch-source-plugin/commit/2bb3f613abd09f5bbc2406898eb719f9a35b6d45 which skips any jobs inside folders because their full display name contains "»" as a folder name separator.

Reply all
Reply to author
Forward
0 new messages