一些检查失败了
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
580 行
35 KiB
JSON
580 行
35 KiB
JSON
{
|
||
"issue": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/14923",
|
||
"repository_url": "https://api.github.com/repos/laurent22/joplin",
|
||
"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14923/labels{/name}",
|
||
"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14923/comments",
|
||
"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14923/events",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923",
|
||
"id": 4153684816,
|
||
"node_id": "PR_kwDOBLftOs7OFbgk",
|
||
"number": 14923,
|
||
"title": "Desktop: Fixes #12994: Share owner sees \"Leave notebook\" instead of \"Share notebook\" when server is offline",
|
||
"user": {
|
||
"login": "Rygaa",
|
||
"id": 68044105,
|
||
"node_id": "MDQ6VXNlcjY4MDQ0MTA1",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/68044105?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Rygaa",
|
||
"html_url": "https://github.com/Rygaa",
|
||
"followers_url": "https://api.github.com/users/Rygaa/followers",
|
||
"following_url": "https://api.github.com/users/Rygaa/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Rygaa/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Rygaa/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Rygaa/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Rygaa/orgs",
|
||
"repos_url": "https://api.github.com/users/Rygaa/repos",
|
||
"events_url": "https://api.github.com/users/Rygaa/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Rygaa/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": 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": 9511910273,
|
||
"node_id": "LA_kwDOBLftOs8AAAACNvQ7gQ",
|
||
"url": "https://api.github.com/repos/laurent22/joplin/labels/Sharing",
|
||
"name": "Sharing",
|
||
"color": "91ca55",
|
||
"default": false,
|
||
"description": ""
|
||
}
|
||
],
|
||
"state": "closed",
|
||
"locked": false,
|
||
"assignees": [],
|
||
"milestone": null,
|
||
"comments": 7,
|
||
"created_at": "2026-03-27T15:25:37Z",
|
||
"updated_at": "2026-04-02T17:08:57Z",
|
||
"closed_at": "2026-04-02T15:34:48Z",
|
||
"assignee": null,
|
||
"author_association": "COLLABORATOR",
|
||
"active_lock_reason": null,
|
||
"draft": false,
|
||
"pull_request": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/pulls/14923",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923",
|
||
"diff_url": "https://github.com/laurent22/joplin/pull/14923.diff",
|
||
"patch_url": "https://github.com/laurent22/joplin/pull/14923.patch",
|
||
"merged_at": "2026-04-02T15:34:48Z"
|
||
},
|
||
"body": "The Redux store wasn't loaded with share data when the server was unreachable at startup, as it wasn't falling back to the local cache.\r\n\r\n\r\nHow to test\r\nConfigure Joplin desktop to sync with Joplin Server\r\nShare a notebook with another user\r\nQuit Joplin desktop\r\nStop Joplin Server\r\nStart Joplin desktop and right-click the shared notebook\r\nAs the owner, \"Share notebook\" should show — not \"Leave notebook\"\r\n\r\n\r\nhttps://github.com/user-attachments/assets/3a3c426a-9d55-4116-b946-a0f75721b509\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/14923/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/14923/timeline",
|
||
"performed_via_github_app": null,
|
||
"state_reason": null
|
||
},
|
||
"comments": [
|
||
{
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4143411402",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923#issuecomment-4143411402",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14923",
|
||
"id": 4143411402,
|
||
"node_id": "IC_kwDOBLftOs7293DK",
|
||
"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-27T15:26:09Z",
|
||
"updated_at": "2026-03-31T14:55:12Z",
|
||
"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\nStartup now reads `sync.shareCache` via `parseShareCache`; if cached share data exists it dispatches a `SHARE_CACHE_RESTORE` action to populate the Redux share state. The middleware is modified to ignore `SHARE_CACHE_RESTORE` when persisting share cache.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Startup / Cache load** <br> `packages/lib/BaseApplication.ts`|`initRedux()` now reads `sync.shareCache` with `parseShareCache` and dispatches `SHARE_CACHE_RESTORE` when cached `shares`, `shareUsers` or `shareInvitations` are present.|\n|**Share persistence middleware** <br> `packages/lib/components/shared/reduxSharedMiddleware.ts`|Middleware changed to exclude `SHARE_CACHE_RESTORE` from the `SHARE_*` persistence branch so restoring from cache does not trigger an immediate cache write/update.|\n|**Share reducer** <br> `packages/lib/services/share/reducer.ts`|Added `SHARE_CACHE_RESTORE` action handler that overwrites `shares`, `shareUsers` and `shareInvitations` on the reducer draft from action payload fields.|\n\n## Sequence Diagram(s)\n\n```mermaid\nsequenceDiagram\n participant App as BaseApplication\n participant Settings as Settings Store\n participant Parser as parseShareCache\n participant Redux as Redux Store\n participant Middleware as Share Middleware\n participant Reducer as Share Reducer\n\n App->>Settings: read 'sync.shareCache'\n Settings-->>App: cached string\n App->>Parser: parse cached string\n Parser-->>App: {shares, shareUsers, shareInvitations}\n alt cached share data present\n App->>Redux: dispatch SHARE_CACHE_RESTORE(payload)\n Redux->>Middleware: action passes through middleware\n Middleware-->>Redux: ignores SHARE_CACHE_RESTORE for persistence\n Redux->>Reducer: reduce SHARE_CACHE_RESTORE\n Reducer-->>Redux: update share state (shares, shareUsers, shareInvitations)\n end\n```\n\n</details>\n\n<!-- walkthrough_end -->\n\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n---\n\n<!-- pre_merge_checks_override_start -->\n> [!IMPORTANT]\n> ## Pre-merge checks failed\n> \n> Please resolve all errors before merging. Addressing warnings is optional.\n<!-- pre_merge_checks_override_end -->\n\n### ❌ Failed checks (1 error)\n\n| Check name | Status | Explanation | Resolution |\n| :-----------------------------------: | :------ | :---------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |\n| Pr Description Must Follow Guidelines | ❌ Error | The PR description lacks a dedicated Test Plan or Verification Steps section explaining how the fix was tested and validated. | Add a Test Plan section documenting testing performed, test cases added, and steps for reviewers to verify the fix works correctly. |\n\n<details>\n<summary>✅ Passed checks (3 passed)</summary>\n\n| Check name | Status | Explanation |\n| :----------------: | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |\n| Description check | ✅ Passed | The PR description accurately describes the changeset: it explains the issue (Redux store not loaded with share data when server is unreachable), the solution approach (fallback to local cache), and provides clear testing steps that align with the code changes. |\n| Title check | ✅ Passed | The title accurately describes the main fix: restoring share cache at startup to resolve offline display issues. |\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<!-- tips_start -->\n\n---\n\nThanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=laurent22/joplin&utm_content=14923)! 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/4143411402/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/4143447130",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923#issuecomment-4143447130",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14923",
|
||
"id": 4143447130,
|
||
"node_id": "IC_kwDOBLftOs729_xa",
|
||
"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-27T15:32:07Z",
|
||
"updated_at": "2026-04-02T17:08:57Z",
|
||
"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/4143447130/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/4144298601",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923#issuecomment-4144298601",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14923",
|
||
"id": 4144298601,
|
||
"node_id": "IC_kwDOBLftOs73BPpp",
|
||
"user": {
|
||
"login": "Rygaa",
|
||
"id": 68044105,
|
||
"node_id": "MDQ6VXNlcjY4MDQ0MTA1",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/68044105?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Rygaa",
|
||
"html_url": "https://github.com/Rygaa",
|
||
"followers_url": "https://api.github.com/users/Rygaa/followers",
|
||
"following_url": "https://api.github.com/users/Rygaa/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Rygaa/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Rygaa/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Rygaa/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Rygaa/orgs",
|
||
"repos_url": "https://api.github.com/users/Rygaa/repos",
|
||
"events_url": "https://api.github.com/users/Rygaa/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Rygaa/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-27T17:56:47Z",
|
||
"updated_at": "2026-03-27T17:56:47Z",
|
||
"body": "I have read the CLA Document and I hereby sign the CLA",
|
||
"author_association": "COLLABORATOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4144298601/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/4144300382",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923#issuecomment-4144300382",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14923",
|
||
"id": 4144300382,
|
||
"node_id": "IC_kwDOBLftOs73BQFe",
|
||
"user": {
|
||
"login": "Rygaa",
|
||
"id": 68044105,
|
||
"node_id": "MDQ6VXNlcjY4MDQ0MTA1",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/68044105?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Rygaa",
|
||
"html_url": "https://github.com/Rygaa",
|
||
"followers_url": "https://api.github.com/users/Rygaa/followers",
|
||
"following_url": "https://api.github.com/users/Rygaa/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Rygaa/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Rygaa/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Rygaa/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Rygaa/orgs",
|
||
"repos_url": "https://api.github.com/users/Rygaa/repos",
|
||
"events_url": "https://api.github.com/users/Rygaa/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Rygaa/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-27T17:57:09Z",
|
||
"updated_at": "2026-03-27T17:57:09Z",
|
||
"body": "recheck ",
|
||
"author_association": "COLLABORATOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4144300382/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/4163140632",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923#issuecomment-4163140632",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14923",
|
||
"id": 4163140632,
|
||
"node_id": "IC_kwDOBLftOs74JHwY",
|
||
"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-31T14:39:17Z",
|
||
"updated_at": "2026-03-31T14:39:17Z",
|
||
"body": "How does it work when the server is offline and you click on \"Share notebook\"? Is the error handled properly?",
|
||
"author_association": "OWNER",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4163140632/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/4163341655",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923#issuecomment-4163341655",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14923",
|
||
"id": 4163341655,
|
||
"node_id": "IC_kwDOBLftOs74J41X",
|
||
"user": {
|
||
"login": "Rygaa",
|
||
"id": 68044105,
|
||
"node_id": "MDQ6VXNlcjY4MDQ0MTA1",
|
||
"avatar_url": "https://avatars.githubusercontent.com/u/68044105?v=4",
|
||
"gravatar_id": "",
|
||
"url": "https://api.github.com/users/Rygaa",
|
||
"html_url": "https://github.com/Rygaa",
|
||
"followers_url": "https://api.github.com/users/Rygaa/followers",
|
||
"following_url": "https://api.github.com/users/Rygaa/following{/other_user}",
|
||
"gists_url": "https://api.github.com/users/Rygaa/gists{/gist_id}",
|
||
"starred_url": "https://api.github.com/users/Rygaa/starred{/owner}{/repo}",
|
||
"subscriptions_url": "https://api.github.com/users/Rygaa/subscriptions",
|
||
"organizations_url": "https://api.github.com/users/Rygaa/orgs",
|
||
"repos_url": "https://api.github.com/users/Rygaa/repos",
|
||
"events_url": "https://api.github.com/users/Rygaa/events{/privacy}",
|
||
"received_events_url": "https://api.github.com/users/Rygaa/received_events",
|
||
"type": "User",
|
||
"user_view_type": "public",
|
||
"site_admin": false
|
||
},
|
||
"created_at": "2026-03-31T15:05:12Z",
|
||
"updated_at": "2026-03-31T15:05:12Z",
|
||
"body": "The same way it's was done before. When the server is offline and a user click on \"Leave notebook\" it shows \"request to http://api.joplincloud.local:22300/api/shares? failed, reason: connect ECONNREFUSED 127.0.0.1:22300\"",
|
||
"author_association": "COLLABORATOR",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4163341655/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/4178728080",
|
||
"html_url": "https://github.com/laurent22/joplin/pull/14923#issuecomment-4178728080",
|
||
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14923",
|
||
"id": 4178728080,
|
||
"node_id": "IC_kwDOBLftOs75ElSQ",
|
||
"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:34:43Z",
|
||
"updated_at": "2026-04-02T15:34:43Z",
|
||
"body": "Looks good, thanks!",
|
||
"author_association": "OWNER",
|
||
"reactions": {
|
||
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4178728080/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
|
||
}
|
||
]
|
||
} |