{
	"issue": {
		"url": "https://api.github.com/repos/laurent22/joplin/issues/14779",
		"repository_url": "https://api.github.com/repos/laurent22/joplin",
		"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14779/labels{/name}",
		"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14779/comments",
		"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14779/events",
		"html_url": "https://github.com/laurent22/joplin/pull/14779",
		"id": 4084628639,
		"node_id": "PR_kwDOBLftOs7LB_Lx",
		"number": 14779,
		"title": "Desktop: Add search field to Config screen to filter settings",
		"user": {
			"login": "Payel-Manna",
			"id": 180408698,
			"node_id": "U_kgDOCsDReg",
			"avatar_url": "https://avatars.githubusercontent.com/u/180408698?v=4",
			"gravatar_id": "",
			"url": "https://api.github.com/users/Payel-Manna",
			"html_url": "https://github.com/Payel-Manna",
			"followers_url": "https://api.github.com/users/Payel-Manna/followers",
			"following_url": "https://api.github.com/users/Payel-Manna/following{/other_user}",
			"gists_url": "https://api.github.com/users/Payel-Manna/gists{/gist_id}",
			"starred_url": "https://api.github.com/users/Payel-Manna/starred{/owner}{/repo}",
			"subscriptions_url": "https://api.github.com/users/Payel-Manna/subscriptions",
			"organizations_url": "https://api.github.com/users/Payel-Manna/orgs",
			"repos_url": "https://api.github.com/users/Payel-Manna/repos",
			"events_url": "https://api.github.com/users/Payel-Manna/events{/privacy}",
			"received_events_url": "https://api.github.com/users/Payel-Manna/received_events",
			"type": "User",
			"user_view_type": "public",
			"site_admin": false
		},
		"labels": [
			{
				"id": 519700743,
				"node_id": "MDU6TGFiZWw1MTk3MDA3NDM=",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/enhancement",
				"name": "enhancement",
				"color": "5ebeff",
				"default": true,
				"description": "Feature requests and code enhancements"
			},
			{
				"id": 1080341216,
				"node_id": "MDU6TGFiZWwxMDgwMzQxMjE2",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/desktop",
				"name": "desktop",
				"color": "ffc274",
				"default": false,
				"description": "All desktop platforms"
			},
			{
				"id": 2394366066,
				"node_id": "MDU6TGFiZWwyMzk0MzY2MDY2",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/search",
				"name": "search",
				"color": "91ca55",
				"default": false,
				"description": ""
			}
		],
		"state": "closed",
		"locked": false,
		"assignees": [],
		"milestone": null,
		"comments": 4,
		"created_at": "2026-03-16T20:27:38Z",
		"updated_at": "2026-04-02T16:00:47Z",
		"closed_at": "2026-04-02T15:15:57Z",
		"assignee": null,
		"author_association": "NONE",
		"active_lock_reason": null,
		"draft": false,
		"pull_request": {
			"url": "https://api.github.com/repos/laurent22/joplin/pulls/14779",
			"html_url": "https://github.com/laurent22/joplin/pull/14779",
			"diff_url": "https://github.com/laurent22/joplin/pull/14779.diff",
			"patch_url": "https://github.com/laurent22/joplin/pull/14779.patch",
			"merged_at": null
		},
		"body": "Closes #14763\r\n\r\n## Problem\r\n\r\nThe desktop Config screen had no way to search for settings by name or\r\ndescription. Users had to manually browse each section to find a setting.\r\nThe mobile app already has this feature but it was missing on desktop.\r\n\r\n## Solution\r\n\r\nAdds a `SearchInput` field at the top of the Config screen. When a query\r\nis typed, settings are filtered across all sections by label and\r\ndescription (case-insensitive). A clear (×) button resets the view.\r\nWhen search is empty, normal section/tab behaviour is fully preserved.\r\n\r\nThe filter logic is extracted into `filterSettingsByQuery.ts` — a\r\nstandalone utility with no UI dependencies, making it fully testable.\r\n\r\n## Test Plan\r\n\r\nUnit tests added in `ConfigScreen.test.tsx` covering:\r\n- Match by label ✅\r\n- Match by description ✅\r\n- No results for unmatched query ✅\r\n- Case insensitivity ✅\r\n- Results across multiple sections ✅\r\n- Function-based label support ✅\r\n\r\nManual testing:\r\n- Typed \"sync\" → sync settings shown from all sections ✅\r\n- Typed \"xyzabc\" → \"No results\" shown ✅\r\n- Clicked × → search cleared, normal view restored ✅\r\n- Normal section navigation unaffected when search is empty ✅\r\n\r\n## Video\r\n![configScreen](https://github.com/user-attachments/assets/7d3b481a-907c-408b-ad48-211426529ddb)\r\n\r\n\r\n\r\n## AI Assistance Disclosure\r\n\r\nI used AI assistance (Claude) to help debug issues during development,\r\nspecifically to identify the correct SearchInput component API and fix\r\nTypeScript type errors. All logic was written and verified by me.\r\n\r\n",
		"closed_by": {
			"login": "laurent22",
			"id": 1285584,
			"node_id": "MDQ6VXNlcjEyODU1ODQ=",
			"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
			"gravatar_id": "",
			"url": "https://api.github.com/users/laurent22",
			"html_url": "https://github.com/laurent22",
			"followers_url": "https://api.github.com/users/laurent22/followers",
			"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
			"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
			"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
			"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
			"organizations_url": "https://api.github.com/users/laurent22/orgs",
			"repos_url": "https://api.github.com/users/laurent22/repos",
			"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
			"received_events_url": "https://api.github.com/users/laurent22/received_events",
			"type": "User",
			"user_view_type": "public",
			"site_admin": false
		},
		"reactions": {
			"url": "https://api.github.com/repos/laurent22/joplin/issues/14779/reactions",
			"total_count": 0,
			"+1": 0,
			"-1": 0,
			"laugh": 0,
			"hooray": 0,
			"confused": 0,
			"heart": 0,
			"rocket": 0,
			"eyes": 0
		},
		"timeline_url": "https://api.github.com/repos/laurent22/joplin/issues/14779/timeline",
		"performed_via_github_app": null,
		"state_reason": null
	},
	"comments": [
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4070403746",
			"html_url": "https://github.com/laurent22/joplin/pull/14779#issuecomment-4070403746",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14779",
			"id": 4070403746,
			"node_id": "IC_kwDOBLftOs7ynW6i",
			"user": {
				"login": "github-actions[bot]",
				"id": 41898282,
				"node_id": "MDM6Qm90NDE4OTgyODI=",
				"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/github-actions%5Bbot%5D",
				"html_url": "https://github.com/apps/github-actions",
				"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
				"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
				"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
				"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
				"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
				"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
				"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
				"type": "Bot",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-16T20:27:53Z",
			"updated_at": "2026-04-02T16:00:47Z",
			"body": "****CLA Assistant Lite bot**** All contributors have signed the CLA  ✍️ ✅",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4070403746/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": {
				"id": 15368,
				"client_id": "Iv1.05c79e9ad1f6bdfa",
				"slug": "github-actions",
				"node_id": "MDM6QXBwMTUzNjg=",
				"owner": {
					"login": "github",
					"id": 9919,
					"node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
					"avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
					"gravatar_id": "",
					"url": "https://api.github.com/users/github",
					"html_url": "https://github.com/github",
					"followers_url": "https://api.github.com/users/github/followers",
					"following_url": "https://api.github.com/users/github/following{/other_user}",
					"gists_url": "https://api.github.com/users/github/gists{/gist_id}",
					"starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
					"subscriptions_url": "https://api.github.com/users/github/subscriptions",
					"organizations_url": "https://api.github.com/users/github/orgs",
					"repos_url": "https://api.github.com/users/github/repos",
					"events_url": "https://api.github.com/users/github/events{/privacy}",
					"received_events_url": "https://api.github.com/users/github/received_events",
					"type": "Organization",
					"user_view_type": "public",
					"site_admin": false
				},
				"name": "GitHub Actions",
				"description": "Automate your workflow from idea to production",
				"external_url": "https://help.github.com/en/actions",
				"html_url": "https://github.com/apps/github-actions",
				"created_at": "2018-07-30T09:30:17Z",
				"updated_at": "2026-05-05T14:51:38Z",
				"permissions": {
					"actions": "write",
					"administration": "read",
					"artifact_metadata": "write",
					"attestations": "write",
					"checks": "write",
					"code_quality": "write",
					"contents": "write",
					"copilot_requests": "write",
					"deployments": "write",
					"discussions": "write",
					"issues": "write",
					"merge_queues": "write",
					"metadata": "read",
					"models": "read",
					"packages": "write",
					"pages": "write",
					"pull_requests": "write",
					"repository_hooks": "write",
					"repository_projects": "write",
					"security_events": "write",
					"statuses": "write",
					"vulnerability_alerts": "read"
				},
				"events": [
					"branch_protection_rule",
					"check_run",
					"check_suite",
					"create",
					"delete",
					"deployment",
					"deployment_status",
					"discussion",
					"discussion_comment",
					"fork",
					"gollum",
					"issues",
					"issue_comment",
					"label",
					"merge_group",
					"milestone",
					"page_build",
					"public",
					"pull_request",
					"pull_request_review",
					"pull_request_review_comment",
					"push",
					"registry_package",
					"release",
					"repository",
					"repository_dispatch",
					"status",
					"watch",
					"workflow_dispatch",
					"workflow_run"
				]
			}
		},
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4070412072",
			"html_url": "https://github.com/laurent22/joplin/pull/14779#issuecomment-4070412072",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14779",
			"id": 4070412072,
			"node_id": "IC_kwDOBLftOs7ynY8o",
			"user": {
				"login": "coderabbitai[bot]",
				"id": 136622811,
				"node_id": "BOT_kgDOCCSy2w",
				"avatar_url": "https://avatars.githubusercontent.com/in/347564?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/coderabbitai%5Bbot%5D",
				"html_url": "https://github.com/apps/coderabbitai",
				"followers_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/followers",
				"following_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/following{/other_user}",
				"gists_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/subscriptions",
				"organizations_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/orgs",
				"repos_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/repos",
				"events_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/events{/privacy}",
				"received_events_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/received_events",
				"type": "Bot",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-16T20:29:37Z",
			"updated_at": "2026-03-18T06:19:37Z",
			"body": "<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- This is an auto-generated comment: review paused by coderabbit.ai -->\n\n> [!NOTE]\n> ## Reviews paused\n> \n> It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the `reviews.auto_review.auto_pause_after_reviewed_commits` setting.\n> \n> Use the following commands to manage reviews:\n> - `@coderabbitai resume` to resume automatic reviews.\n> - `@coderabbitai review` to trigger a single review.\n> \n> Use the checkboxes below for quick actions:\n> - [ ] <!-- {\"checkboxId\": \"7f6cc2e2-2e4e-497a-8c31-c9e4573e93d1\"} --> ▶️ Resume reviews\n> - [ ] <!-- {\"checkboxId\": \"e9bb8d72-00e8-4f67-9cb2-caf3b22574fe\"} --> 🔍 Trigger review\n\n<!-- end of auto-generated comment: review paused by coderabbit.ai -->\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nAdds a search input to the desktop Config screen, a new `filterSettingsByQuery` utility (default export) to match labels/descriptions, UI wiring for search state/handlers, tests for the filter, and updates to ignore and Yarn RC files.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Repo ignores & config** <br> `/.eslintignore`, `/.gitignore`, `/.yarnrc.yml`|Added two ConfigScreen paths to ignore lists; reverted/adjusted Yarn configuration entries (restored hoisting/linker settings and removed prior checksum/log override blocks).|\n|**Config screen UI** <br> `packages/app-desktop/gui/ConfigScreen/ConfigScreen.tsx`|Integrated `SearchInput`, added `searchQuery` state with `onSearchChange`/`onSearchClear`, and conditional rendering to show flat matched setting components or a \"No results\" message when searching.|\n|**Filter util & tests** <br> `packages/app-desktop/gui/ConfigScreen/filterSettingsByQuery.ts`, `packages/app-desktop/gui/ConfigScreen/ConfigScreen.test.tsx`|Added default-exported `filterSettingsByQuery` that returns matching setting keys by case-insensitive label/description matching (supports label as function) and tests covering label/description matches, case-insensitivity, multi-section search, no-match, and function-labels.|\n\n## Sequence Diagram(s)\n\n```mermaid\nsequenceDiagram\n    participant User as User\n    participant UI as ConfigScreen (UI)\n    participant Filter as filterSettingsByQuery\n    participant Meta as Settings Metadata\n\n    User->>UI: Type query / clear search\n    UI->>Filter: filterSettingsByQuery(sections, query, AppType)\n    Filter->>Meta: Read labels/descriptions (string or function)\n    Meta-->>Filter: Return matching keys\n    Filter-->>UI: Matched keys\n    UI->>UI: Render matched setting components or \"No results\"\n```\n\n</details>\n\n<!-- walkthrough_end -->\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 6</summary>\n\n<details>\n<summary>✅ Passed checks (6 passed)</summary>\n\n|               Check name              | Status   | Explanation                                                                                                                                                                                                                                        |\n| :-----------------------------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n|              Title check              | ✅ Passed | The pull request title accurately and clearly summarizes the main change: adding a search field to the Config screen to filter settings.                                                                                                           |\n|           Description check           | ✅ Passed | The pull request description is comprehensive and directly related to the changeset, explaining the problem, solution, test coverage, and manual verification.                                                                                     |\n|          Linked Issues check          | ✅ Passed | The pull request fully addresses all coding requirements from issue `#14763`: search field added, filters by label and description (case-insensitive), and clear button implemented.                                                                 |\n|       Out of Scope Changes check      | ✅ Passed | Changes to .eslintignore, .gitignore, and .yarnrc.yml appear tangential to the core feature but support its implementation and testing infrastructure without introducing unrelated functionality.                                                 |\n|           Docstring Coverage          | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.                                                                                                                                         |\n| Pr Description Must Follow Guidelines | ✅ Passed | The pull request description includes all three required sections: Problem/user-impact (search functionality gap in desktop Config screen), Solution (SearchInput field with filtering), and Test Plan (unit tests and manual verification steps). |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing Touches</summary>\n\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Create PR with unit tests\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- pr_review_plan_action_start -->\n\n<details>\n<summary>📝 Coding Plan</summary>\n\n- [ ] <!-- {\"checkboxId\": \"6ad8a4e1-0b3a-4ea2-9b5b-d82c1f47d1f2\"} --> Generate coding plan for human review comments\n\n</details>\n\n<!-- pr_review_plan_action_end -->\n\n<!-- tips_start -->\n\n---\n\nThanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=laurent22/joplin&utm_content=14779)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.\n\n<details>\n<summary>❤️ Share</summary>\n\n- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)\n- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)\n- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)\n- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)\n\n</details>\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- [encoded data, 9028 characters] -->\n\n<!-- internal state end -->\n<!-- usage_tips_start -->\n\n> [!TIP]\n> <details>\n> <summary>You can get early access to new features in CodeRabbit.</summary>\n> \n> Enable the `early_access` setting to enable early access features such as new models, tools, and more.\n> \n> </details>\n\n<!-- usage_tips_end -->",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4070412072/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": {
				"id": 347564,
				"client_id": "Iv1.6aaafe4fe882736b",
				"slug": "coderabbitai",
				"node_id": "A_kwHOB96YWc4ABU2s",
				"owner": {
					"login": "coderabbitai",
					"id": 132028505,
					"node_id": "O_kgDOB96YWQ",
					"avatar_url": "https://avatars.githubusercontent.com/u/132028505?v=4",
					"gravatar_id": "",
					"url": "https://api.github.com/users/coderabbitai",
					"html_url": "https://github.com/coderabbitai",
					"followers_url": "https://api.github.com/users/coderabbitai/followers",
					"following_url": "https://api.github.com/users/coderabbitai/following{/other_user}",
					"gists_url": "https://api.github.com/users/coderabbitai/gists{/gist_id}",
					"starred_url": "https://api.github.com/users/coderabbitai/starred{/owner}{/repo}",
					"subscriptions_url": "https://api.github.com/users/coderabbitai/subscriptions",
					"organizations_url": "https://api.github.com/users/coderabbitai/orgs",
					"repos_url": "https://api.github.com/users/coderabbitai/repos",
					"events_url": "https://api.github.com/users/coderabbitai/events{/privacy}",
					"received_events_url": "https://api.github.com/users/coderabbitai/received_events",
					"type": "Organization",
					"user_view_type": "public",
					"site_admin": false
				},
				"name": "coderabbitai",
				"description": "# Transforming Code Reviews with AI\r\n\r\n## Features\r\n\r\n**Automated Reviews**: Continuous reviews of the pull requests including incremental commits. \r\n\r\n**Summarization**: Generates high-level summary and a technical walkthrough of the PR changes. \r\n\r\n**Line-by-line review**: Provides line-by-line suggestions committable with one click.\r\n\r\n**Codebase verification**:  Verifies the impact on the overall codebase and identifies missing changes.\r\n\r\n**Insights into your code**:  Ask any questions on your codebase within the pull request \r\n\r\n**Chat about your code** : Chat with the bot around your code. The more you chat, the smarter it gets.\r\n\r\n**Issue Validation**:  Validates the PR against the linked issues and identifies other related issues \r\n\r\n\r\n\r\n",
				"external_url": "https://coderabbit.ai?utm_source=cr_app&utm_medium=github",
				"html_url": "https://github.com/apps/coderabbitai",
				"created_at": "2023-06-14T15:47:27Z",
				"updated_at": "2026-03-14T07:58:44Z",
				"permissions": {
					"actions": "read",
					"checks": "write",
					"contents": "write",
					"discussions": "read",
					"issues": "write",
					"members": "read",
					"metadata": "read",
					"pull_requests": "write",
					"statuses": "write"
				},
				"events": [
					"issues",
					"issue_comment",
					"label",
					"organization",
					"pull_request",
					"pull_request_review",
					"pull_request_review_comment",
					"pull_request_review_thread",
					"release",
					"repository"
				]
			}
		},
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4072275286",
			"html_url": "https://github.com/laurent22/joplin/pull/14779#issuecomment-4072275286",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14779",
			"id": 4072275286,
			"node_id": "IC_kwDOBLftOs7yuf1W",
			"user": {
				"login": "Payel-Manna",
				"id": 180408698,
				"node_id": "U_kgDOCsDReg",
				"avatar_url": "https://avatars.githubusercontent.com/u/180408698?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/Payel-Manna",
				"html_url": "https://github.com/Payel-Manna",
				"followers_url": "https://api.github.com/users/Payel-Manna/followers",
				"following_url": "https://api.github.com/users/Payel-Manna/following{/other_user}",
				"gists_url": "https://api.github.com/users/Payel-Manna/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/Payel-Manna/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/Payel-Manna/subscriptions",
				"organizations_url": "https://api.github.com/users/Payel-Manna/orgs",
				"repos_url": "https://api.github.com/users/Payel-Manna/repos",
				"events_url": "https://api.github.com/users/Payel-Manna/events{/privacy}",
				"received_events_url": "https://api.github.com/users/Payel-Manna/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-17T04:33:54Z",
			"updated_at": "2026-03-17T04:33:54Z",
			"body": "I have read the CLA Document and I hereby sign the CLA",
			"author_association": "NONE",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4072275286/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": null
		},
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4178611789",
			"html_url": "https://github.com/laurent22/joplin/pull/14779#issuecomment-4178611789",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14779",
			"id": 4178611789,
			"node_id": "IC_kwDOBLftOs75EI5N",
			"user": {
				"login": "laurent22",
				"id": 1285584,
				"node_id": "MDQ6VXNlcjEyODU1ODQ=",
				"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/laurent22",
				"html_url": "https://github.com/laurent22",
				"followers_url": "https://api.github.com/users/laurent22/followers",
				"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
				"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
				"organizations_url": "https://api.github.com/users/laurent22/orgs",
				"repos_url": "https://api.github.com/users/laurent22/repos",
				"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
				"received_events_url": "https://api.github.com/users/laurent22/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-04-02T15:15:57Z",
			"updated_at": "2026-04-02T15:15:57Z",
			"body": "Hello, unfortunately we no longer need this pull request as there's a duplicate here, that will probably merge instead: https://github.com/laurent22/joplin/pull/14820",
			"author_association": "OWNER",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4178611789/reactions",
				"total_count": 0,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": null
		}
	]
}