一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
427 行
35 KiB
JSON
427 行
35 KiB
JSON
{
|
||
"issue": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/14616",
|
||
"repository_url": "https://api.github.com/repos/laurent22/joplin",
|
||
"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14616/labels{/name}",
|
||
"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14616/comments",
|
||
"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14616/events",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14616",
|
||
"id": 4037733521,
|
||
"node_id": "PR_kwDOBLftOs7Irp3e",
|
||
"number": 14616,
|
||
"title": "Fix #12507: Remove orphaned tags after permanent note deletion",
|
||
"user": {
|
||
"login": "calvinc0",
|
||
"id": 184913204,
|
||
"node_id": "U_kgDOCwWNNA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/184913204?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/calvinc0",
|
||
"html_url": "https://github.com/calvinc0",
|
||
"followers_url": "https://api.github.com/users/calvinc0/followers",
|
||
"following_url": "https://api.github.com/users/calvinc0/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/calvinc0/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/calvinc0/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/calvinc0/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/calvinc0/orgs",
|
||
"repos_url": "https://api.github.com/users/calvinc0/repos",
|
||
"events_url": "https://api.github.com/users/calvinc0/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/calvinc0/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"labels": [
|
||
{
|
||
"id": 2115946553,
|
||
"node_id": "MDU6TGFiZWwyMTE1OTQ2NTUz",
|
||
"url": "https://api.github.com/repos/laurent22/joplin/labels/database",
|
||
"name": "database",
|
||
"color": "91ca55",
|
||
"default": false,
|
||
"description": "Database issues"
|
||
}
|
||
],
|
||
"state": "closed",
|
||
"locked": false,
|
||
"assignees": [],
|
||
"milestone": null,
|
||
"comments": 4,
|
||
"created_at": "2026-03-07T07:23:34Z",
|
||
"updated_at": "2026-03-07T10:55:06Z",
|
||
"closed_at": "2026-03-07T10:54:55Z",
|
||
"assignee": null,
|
||
"author_association": "NONE",
|
||
"active_lock_reason": null,
|
||
"draft": false,
|
||
"pull_request": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/pulls/14616",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14616",
|
||
"diff_url": "https://github.com/laurent22/joplin/pull/14616.diff",
|
||
"patch_url": "https://github.com/laurent22/joplin/pull/14616.patch",
|
||
"merged_at": null
|
||
},
|
||
"body": "Fixes #12507\r\n\r\nAI Assistance Disclosure:\r\nI used AI to help with code drafting, wording, and test ideas. I reviewed all output and fully understand the submitted code.\r\n\r\nProblem:\r\nWhen a note with a used tag is deleted and the trash is emptied, the tag remains in the database while disappearing from the UI. As a result, renaming another tag to that hidden tag name fails with \"The tag \"test\" already exists. Please choose a different name.\" From a user perspective, the tag appears to not exist, but its name is still reserved.\r\n\r\nSolution:\r\nThis change removes orphaned tags after the note is deleted and the trash is emptied. That way hidden tag records do not block later tag renames. This fixes the case where a tag no longer appears in the UI but still exists internally and causes a false duplicate-name conflict. Behavioral impact is limited to cleanup of orphaned tags that no longer have note associations.\r\n\r\nTest Plan:\r\nAutomated: \"corepack yarn workspace @joplin/lib test models/Tag.test.js services/trash/emptyTrash.test.js --runInBand\"\r\nResult: 2 suites, 15 tests passed.\r\n<img width=\"1043\" height=\"131\" alt=\"Screenshot 2026-03-06 at 10 31 27 PM\" src=\"https://github.com/user-attachments/assets/22714ef3-6d9a-4639-a51d-185a40232ce9\" />\r\n\r\n\r\nManual:\r\n1. Create note + tag \"test\"\r\n2. Delete note, then empty trash\r\n3. Create note + tag \"test2\"\r\n4. Rename \"test2\" to \"test\"\r\n5. Confirm rename succeeds\r\n\r\nVideo Demo of the Fix:\r\n\r\nhttps://github.com/user-attachments/assets/b961d178-e8c2-4d15-8485-65b2b7a7639f\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/14616/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/14616/timeline",
|
||
"performed_via_github_app": null,
|
||
"state_reason": null
|
||
},
|
||
"comments": [
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4015828162",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14616#issuecomment-4015828162",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14616",
|
||
"id": 4015828162,
|
||
"node_id": "IC_kwDOBLftOs7vXKzC",
|
||
"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-07T07:23:44Z",
|
||
"updated_at": "2026-03-07T10:55:06Z",
|
||
"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/4015828162/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/4015828564",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14616#issuecomment-4015828564",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14616",
|
||
"id": 4015828564,
|
||
"node_id": "IC_kwDOBLftOs7vXK5U",
|
||
"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-07T07:23:59Z",
|
||
"updated_at": "2026-03-07T08:12:34Z",
|
||
"body": "<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nAdds centralized cleanup of note–tag relations: Note.batchDelete now calls a helper to remove NoteTag rows and orphaned Tag rows; Tag.save gains logic to detect and remove dangling note_tag relations during title changes; tests added for orphan/tag reuse scenarios.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Note deletion cleanup** <br> `packages/lib/models/Note.ts`|Added `deleteTagsForDeletedNotes_` and call from `batchDelete` to remove NoteTag associations, purge stale note_tag rows, and delete orphaned Tag rows when notes are permanently deleted.|\n|**Tag validation and cleanup** <br> `packages/lib/models/Tag.ts`|On save with user-side validation + title change, detect existing tag by title and, if it only has dangling note_tag relations, remove those relations and orphan tags so the title can be reused; preserve uniqueness checks otherwise.|\n|**Tests — Tag model** <br> `packages/lib/models/Tag.test.ts`|Added tests verifying tag title reuse after permanent note deletion and cleanup of stale duplicate tags that reference missing notes.|\n|**Tests — Trash emptying** <br> `packages/lib/services/trash/emptyTrash.test.ts`|Added tests ensuring orphaned tags are removed by emptyTrash and that tag titles can be reused after deleting notebooks and emptying trash.|\n\n## Sequence Diagram(s)\n\n```mermaid\nsequenceDiagram\n autonumber\n participant Client as Client\n participant NoteSvc as Note.batchDelete\n participant Cleanup as Note.deleteTagsForDeletedNotes_\n participant DB as Database\n participant TagSvc as Tag.save\n\n Client->>NoteSvc: request permanent delete (noteIds)\n NoteSvc->>Cleanup: deleteTagsForDeletedNotes_(noteIds)\n Cleanup->>DB: SELECT note_tags WHERE note_id IN (noteIds)\n DB-->>Cleanup: note_tag rows\n Cleanup->>DB: DELETE note_tags WHERE note_id IN (noteIds)\n Cleanup->>DB: SELECT orphaned tags (no remaining note_tags)\n DB-->>Cleanup: orphaned tag ids\n Cleanup->>DB: DELETE tags WHERE id IN (orphaned ids)\n NoteSvc->>DB: DELETE notes WHERE id IN (noteIds)\n NoteSvc-->>Client: deletion complete\n NoteSvc->>TagSvc: (later) Tag.save(title change) checks\n TagSvc->>DB: SELECT tag by title\n DB-->>TagSvc: existing tag (maybe dangling)\n TagSvc->>DB: SELECT note_tags WHERE tag_id = existingTag.id\n DB-->>TagSvc: note_tag rows (empty => dangling)\n TagSvc->>DB: DELETE note_tags WHERE tag_id = existingTag.id (cleanup)\n TagSvc->>DB: (if orphan) DELETE tag WHERE id=existingTag.id\n TagSvc-->>Client: save proceeds (title reusable)\n```\n\n## Suggested labels\n\n`database`\n\n</details>\n\n<!-- walkthrough_end -->\n\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 title clearly and directly summarises the primary change: removing orphaned tags after permanent note deletion, which matches the core objective of the PR. |\n| Description check | ✅ Passed | The description is thorough and directly related to the changeset, explaining the problem, solution, and providing automated and manual test evidence. |\n| Linked Issues check | ✅ Passed | The PR successfully addresses issue `#12507` by removing orphaned tags that block tag renaming. Changes in Note.ts, Tag.ts and test files implement the required functionality to prevent hidden tag records from causing false duplicate-name conflicts. |\n| Out of Scope Changes check | ✅ Passed | All changes are directly scoped to orphaned tag cleanup functionality. Modifications to Note.ts add deletion helpers, Tag.ts adds validation cleanup logic, and test files add coverage for the new behaviour without introducing unrelated changes. |\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 PR description includes all three required sections: problem statement, high-level solution, and comprehensive test plans with automated and manual verification. |\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- [ ] <!-- {\"checkboxId\": \"07f1e7d6-8a8e-4e23-9900-8731c2c87f58\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} --> Post copyable unit tests in a comment\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_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=14616)! 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<!-- 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= -->\n\n<!-- internal state end -->",
|
||
"author_association": "CONTRIBUTOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4015828564/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/4015840010",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14616#issuecomment-4015840010",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14616",
|
||
"id": 4015840010,
|
||
"node_id": "IC_kwDOBLftOs7vXNsK",
|
||
"user": {
|
||
"login": "calvinc0",
|
||
"id": 184913204,
|
||
"node_id": "U_kgDOCwWNNA",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/184913204?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/calvinc0",
|
||
"html_url": "https://github.com/calvinc0",
|
||
"followers_url": "https://api.github.com/users/calvinc0/followers",
|
||
"following_url": "https://api.github.com/users/calvinc0/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/calvinc0/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/calvinc0/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/calvinc0/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/calvinc0/orgs",
|
||
"repos_url": "https://api.github.com/users/calvinc0/repos",
|
||
"events_url": "https://api.github.com/users/calvinc0/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/calvinc0/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-07T07:30:26Z",
|
||
"updated_at": "2026-03-07T07:30:26Z",
|
||
"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/4015840010/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/4016248156",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14616#issuecomment-4016248156",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14616",
|
||
"id": 4016248156,
|
||
"node_id": "IC_kwDOBLftOs7vYxVc",
|
||
"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-03-07T10:54:55Z",
|
||
"updated_at": "2026-03-07T10:54:55Z",
|
||
"body": "Hello, sorry we will not address this issue for now. It is a bit complicated and it's unclear what should be done or even if we should do anything at all",
|
||
"author_association": "OWNER",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4016248156/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
|
||
}
|
||
]
|
||
} |