一些检查失败了
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
526 行
32 KiB
JSON
526 行
32 KiB
JSON
{
|
||
"issue": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/14728",
|
||
"repository_url": "https://api.github.com/repos/laurent22/joplin",
|
||
"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14728/labels{/name}",
|
||
"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14728/comments",
|
||
"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14728/events",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14728",
|
||
"id": 4072734047,
|
||
"node_id": "PR_kwDOBLftOs7KcqTp",
|
||
"number": 14728,
|
||
"title": "Fixes #12507: Allow renaming a tag to the title of an orphaned tag",
|
||
"user": {
|
||
"login": "windsnow1025",
|
||
"id": 67703501,
|
||
"node_id": "MDQ6VXNlcjY3NzAzNTAx",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/67703501?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/windsnow1025",
|
||
"html_url": "https://github.com/windsnow1025",
|
||
"followers_url": "https://api.github.com/users/windsnow1025/followers",
|
||
"following_url": "https://api.github.com/users/windsnow1025/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/windsnow1025/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/windsnow1025/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/windsnow1025/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/windsnow1025/orgs",
|
||
"repos_url": "https://api.github.com/users/windsnow1025/repos",
|
||
"events_url": "https://api.github.com/users/windsnow1025/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/windsnow1025/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"labels": [
|
||
{
|
||
"id": 519700741,
|
||
"node_id": "MDU6TGFiZWw1MTk3MDA3NDE=",
|
||
"url": "https://api.github.com/repos/laurent22/joplin/labels/bug",
|
||
"name": "bug",
|
||
"color": "cf353b",
|
||
"default": true,
|
||
"description": "It's a bug"
|
||
},
|
||
{
|
||
"id": 1367396396,
|
||
"node_id": "MDU6TGFiZWwxMzY3Mzk2Mzk2",
|
||
"url": "https://api.github.com/repos/laurent22/joplin/labels/tags",
|
||
"name": "tags",
|
||
"color": "91ca55",
|
||
"default": false,
|
||
"description": "tag related issue"
|
||
}
|
||
],
|
||
"state": "closed",
|
||
"locked": false,
|
||
"assignees": [],
|
||
"milestone": null,
|
||
"comments": 6,
|
||
"created_at": "2026-03-13T18:25:27Z",
|
||
"updated_at": "2026-03-18T10:42:50Z",
|
||
"closed_at": "2026-03-18T10:12:06Z",
|
||
"assignee": null,
|
||
"author_association": "NONE",
|
||
"active_lock_reason": null,
|
||
"draft": false,
|
||
"pull_request": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/pulls/14728",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14728",
|
||
"diff_url": "https://github.com/laurent22/joplin/pull/14728.diff",
|
||
"patch_url": "https://github.com/laurent22/joplin/pull/14728.patch",
|
||
"merged_at": null
|
||
},
|
||
"body": "When a note with an exclusive tag is permanently deleted, the tag record remains in the database but becomes invisible in the UI (no active notes reference it). Attempting to rename another tag to this orphaned tag's name fails with \"The tag already exists\", even though the user cannot see or interact with the orphaned tag.\r\n\r\nThis fix checks whether the conflicting tag is an orphan (has no associated active notes) during rename validation. If so, it removes the orphaned tag and its stale note_tags records, allowing the rename to proceed. If the conflicting tag is still in use, the existing error is thrown as before.\r\n\r\nPrevious PRs (#13628, #14616) were closed due to concerns about sync complexity. #13628 cleaned up note_tags during permanent deletion; #14616 both cleaned up orphaned tags during deletion and handled rename conflicts. This PR takes a narrower approach — it only handles the rename conflict case without modifying the deletion flow, minimizing the impact on sync behavior.\r\n\r\nA test case has been added to verify that renaming to an orphaned tag name succeeds.\r\n",
|
||
"closed_by": {
|
||
"login": "windsnow1025",
|
||
"id": 67703501,
|
||
"node_id": "MDQ6VXNlcjY3NzAzNTAx",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/67703501?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/windsnow1025",
|
||
"html_url": "https://github.com/windsnow1025",
|
||
"followers_url": "https://api.github.com/users/windsnow1025/followers",
|
||
"following_url": "https://api.github.com/users/windsnow1025/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/windsnow1025/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/windsnow1025/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/windsnow1025/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/windsnow1025/orgs",
|
||
"repos_url": "https://api.github.com/users/windsnow1025/repos",
|
||
"events_url": "https://api.github.com/users/windsnow1025/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/windsnow1025/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/14728/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/14728/timeline",
|
||
"performed_via_github_app": null,
|
||
"state_reason": null
|
||
},
|
||
"comments": [
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4057160927",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14728#issuecomment-4057160927",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14728",
|
||
"id": 4057160927,
|
||
"node_id": "IC_kwDOBLftOs7x01zf",
|
||
"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-13T18:25:41Z",
|
||
"updated_at": "2026-03-18T10:42:50Z",
|
||
"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/4057160927/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/4057163432",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14728#issuecomment-4057163432",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14728",
|
||
"id": 4057163432,
|
||
"node_id": "IC_kwDOBLftOs7x02ao",
|
||
"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-13T18:26:04Z",
|
||
"updated_at": "2026-03-13T18:32:09Z",
|
||
"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\nThe changes modify the Tag model to permit renaming a tag to match an orphaned tag's name by first deleting the unused tag. A test case is added to validate this renaming scenario without throwing an error.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Test Coverage** <br> `packages/lib/models/Tag.test.ts`|Added test case validating tag renaming to an orphaned tag's name, confirming no exception is thrown and the tag title is updated correctly.|\n|**Tag Rename Logic** <br> `packages/lib/models/Tag.ts`|Modified `Tag.save` method to check if a conflicting tag has associated notes; if the existing tag is orphaned (no notes), it is untagged and deleted to allow name reuse; otherwise, an error is thrown as before.|\n\n## Suggested labels\n\n`bug`, `tags`\n\n</details>\n\n<!-- walkthrough_end -->\n\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 4</summary>\n\n<details>\n<summary>✅ Passed checks (4 passed)</summary>\n\n| Check name | Status | Explanation |\n| :-----------------------------------: | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Title check | ✅ Passed | The pull request title clearly and specifically describes the main change: allowing tag renaming to orphaned tag titles, which directly matches the changeset modifications. |\n| Description check | ✅ Passed | The pull request description comprehensively explains the problem, the solution approach, and how it differs from previous attempts, which directly relates to the changeset. |\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 is well-scoped to address orphaned tag handling during rename operations with appropriate test coverage added. |\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<!-- 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=14728)! 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 -->\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/4057163432/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/4057183445",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14728#issuecomment-4057183445",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14728",
|
||
"id": 4057183445,
|
||
"node_id": "IC_kwDOBLftOs7x07TV",
|
||
"user": {
|
||
"login": "windsnow1025",
|
||
"id": 67703501,
|
||
"node_id": "MDQ6VXNlcjY3NzAzNTAx",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/67703501?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/windsnow1025",
|
||
"html_url": "https://github.com/windsnow1025",
|
||
"followers_url": "https://api.github.com/users/windsnow1025/followers",
|
||
"following_url": "https://api.github.com/users/windsnow1025/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/windsnow1025/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/windsnow1025/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/windsnow1025/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/windsnow1025/orgs",
|
||
"repos_url": "https://api.github.com/users/windsnow1025/repos",
|
||
"events_url": "https://api.github.com/users/windsnow1025/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/windsnow1025/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-13T18:30:22Z",
|
||
"updated_at": "2026-03-13T18:30:22Z",
|
||
"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/4057183445/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/4057258837",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14728#issuecomment-4057258837",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14728",
|
||
"id": 4057258837,
|
||
"node_id": "IC_kwDOBLftOs7x1NtV",
|
||
"user": {
|
||
"login": "mrjo118",
|
||
"id": 6963004,
|
||
"node_id": "MDQ6VXNlcjY5NjMwMDQ=",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/6963004?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/mrjo118",
|
||
"html_url": "https://github.com/mrjo118",
|
||
"followers_url": "https://api.github.com/users/mrjo118/followers",
|
||
"following_url": "https://api.github.com/users/mrjo118/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/mrjo118/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/mrjo118/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/mrjo118/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/mrjo118/orgs",
|
||
"repos_url": "https://api.github.com/users/mrjo118/repos",
|
||
"events_url": "https://api.github.com/users/mrjo118/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/mrjo118/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-13T18:46:04Z",
|
||
"updated_at": "2026-03-13T18:46:42Z",
|
||
"body": "> This PR takes a narrower approach — it only handles the rename conflict case without modifying the deletion flow, minimizing the impact on sync behavior\r\n\r\nThere's an important point which was made on one of the comments on my closed PR: https://github.com/laurent22/joplin/pull/13628#discussion_r2529718085\r\n\r\nIt's no good checking if a tag has been orphaned locally, because you can't guarantee that it's not still in use by another client which is not in sync. So your approach still has the same fundamental problem that the original change on my PR did",
|
||
"author_association": "COLLABORATOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4057258837/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/4081238299",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14728#issuecomment-4081238299",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14728",
|
||
"id": 4081238299,
|
||
"node_id": "IC_kwDOBLftOs7zQsEb",
|
||
"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-18T10:03:58Z",
|
||
"updated_at": "2026-03-18T10:03:58Z",
|
||
"body": "Please confirm you'd like to complete this PR",
|
||
"author_association": "OWNER",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4081238299/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/4081286516",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14728#issuecomment-4081286516",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14728",
|
||
"id": 4081286516,
|
||
"node_id": "IC_kwDOBLftOs7zQ310",
|
||
"user": {
|
||
"login": "windsnow1025",
|
||
"id": 67703501,
|
||
"node_id": "MDQ6VXNlcjY3NzAzNTAx",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/67703501?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/windsnow1025",
|
||
"html_url": "https://github.com/windsnow1025",
|
||
"followers_url": "https://api.github.com/users/windsnow1025/followers",
|
||
"following_url": "https://api.github.com/users/windsnow1025/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/windsnow1025/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/windsnow1025/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/windsnow1025/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/windsnow1025/orgs",
|
||
"repos_url": "https://api.github.com/users/windsnow1025/repos",
|
||
"events_url": "https://api.github.com/users/windsnow1025/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/windsnow1025/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-18T10:12:06Z",
|
||
"updated_at": "2026-03-18T10:12:06Z",
|
||
"body": "> Please confirm you'd like to complete this PR\r\n\r\nI think I don't have a clean solution for the sync problem at this point.",
|
||
"author_association": "NONE",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4081286516/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
|
||
}
|
||
]
|
||
} |