From 1abfb1cb0e66ca7ae9fe7b2a7d1787d8ee6a60b2 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Wed, 12 Jul 2023 15:18:05 +0100 Subject: [PATCH] Desktop: Fixed macOS version check so that it does not return the ARM64 version --- .eslintignore | 2 + .gitignore | 2 + packages/app-desktop/checkForUpdates.ts | 103 +- .../utils/checkForUpdatesUtils.test.ts | 4061 +++++++++++++++++ .../app-desktop/utils/checkForUpdatesUtils.ts | 119 + 5 files changed, 4189 insertions(+), 98 deletions(-) create mode 100644 packages/app-desktop/utils/checkForUpdatesUtils.test.ts create mode 100644 packages/app-desktop/utils/checkForUpdatesUtils.ts diff --git a/.eslintignore b/.eslintignore index 9c9b83ea54f..654137b369b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -358,6 +358,8 @@ packages/app-desktop/services/sortOrder/notesSortOrderUtils.js packages/app-desktop/services/sortOrder/notesSortOrderUtils.test.js packages/app-desktop/services/spellChecker/SpellCheckerServiceDriverNative.js packages/app-desktop/tools/notarizeMacApp.js +packages/app-desktop/utils/checkForUpdatesUtils.js +packages/app-desktop/utils/checkForUpdatesUtils.test.js packages/app-desktop/utils/markupLanguageUtils.js packages/app-mobile/PluginAssetsLoader.js packages/app-mobile/components/ActionButton.js diff --git a/.gitignore b/.gitignore index 708a69f166e..b93131a4910 100644 --- a/.gitignore +++ b/.gitignore @@ -343,6 +343,8 @@ packages/app-desktop/services/sortOrder/notesSortOrderUtils.js packages/app-desktop/services/sortOrder/notesSortOrderUtils.test.js packages/app-desktop/services/spellChecker/SpellCheckerServiceDriverNative.js packages/app-desktop/tools/notarizeMacApp.js +packages/app-desktop/utils/checkForUpdatesUtils.js +packages/app-desktop/utils/checkForUpdatesUtils.test.js packages/app-desktop/utils/markupLanguageUtils.js packages/app-mobile/PluginAssetsLoader.js packages/app-mobile/components/ActionButton.js diff --git a/packages/app-desktop/checkForUpdates.ts b/packages/app-desktop/checkForUpdates.ts index 3245932207a..d2ca50fa599 100644 --- a/packages/app-desktop/checkForUpdates.ts +++ b/packages/app-desktop/checkForUpdates.ts @@ -3,8 +3,8 @@ import Logger from '@joplin/lib/Logger'; import { _ } from '@joplin/lib/locale'; import bridge from './services/bridge'; import KvStore from '@joplin/lib/services/KvStore'; -const { fileExtension } = require('@joplin/lib/path-utils'); import * as ArrayUtils from '@joplin/lib/ArrayUtils'; +import { CheckForUpdateOptions, extractVersionInfo, GitHubRelease } from './utils/checkForUpdatesUtils'; const packageInfo = require('./packageInfo.js'); const compareVersions = require('compare-versions'); @@ -13,10 +13,6 @@ const logger = Logger.create('checkForUpdates'); let checkInBackground_ = false; let isCheckingForUpdate_ = false; -interface CheckForUpdateOptions { - includePreReleases?: boolean; -} - function onCheckStarted() { logger.info('Starting...'); isCheckingForUpdate_ = true; @@ -27,15 +23,7 @@ function onCheckEnded() { isCheckingForUpdate_ = false; } -function getMajorMinorTagName(tagName: string) { - const s = tagName.split('.'); - s.pop(); - return s.join('.'); -} - -async function fetchLatestRelease(options: CheckForUpdateOptions) { - options = { includePreReleases: false, ...options }; - +async function fetchLatestRelease() { const response = await shim.fetch('https://api.github.com/repos/laurent22/joplin/releases'); if (!response.ok) { @@ -43,89 +31,7 @@ async function fetchLatestRelease(options: CheckForUpdateOptions) { throw new Error(`Cannot get latest release info: ${responseText.substr(0, 500)}`); } - const releases = await response.json(); - if (!releases.length) throw new Error('Cannot get latest release info (JSON)'); - - let release = null; - - if (options.includePreReleases) { - release = releases[0]; - } else { - for (const r of releases) { - if (!r.prerelease) { - release = r; - break; - } - } - } - - if (!release) throw new Error('Could not get tag name'); - - const version = release.tag_name.substr(1); - - // We concatenate all the release notes of the major/minor versions - // corresponding to the latest version. For example, if the latest version - // is 1.8.3, we concatenate all the 1.8.x versions. This is so that no - // matter from which version you upgrade, you always see the full changes, - // with the latest changes being on top. - - const fullReleaseNotes = []; - const majorMinorTagName = getMajorMinorTagName(release.tag_name); - - for (const release of releases) { - if (getMajorMinorTagName(release.tag_name) === majorMinorTagName) { - fullReleaseNotes.push(release.body.trim()); - } - } - - let downloadUrl = null; - const platform = process.platform; - for (let i = 0; i < release.assets.length; i++) { - const asset = release.assets[i]; - let found = false; - const ext = fileExtension(asset.name); - if (platform === 'win32' && ext === 'exe') { - if (shim.isPortable()) { - found = asset.name === 'JoplinPortable.exe'; - } else { - found = !!asset.name.match(/^Joplin-Setup-[\d.]+\.exe$/); - } - } else if (platform === 'darwin' && ext === 'dmg') { - found = true; - } else if (platform === 'linux' && ext === '.AppImage') { - found = true; - } - - if (found) { - downloadUrl = asset.browser_download_url.replace('github.com/laurent22/joplin/releases/download', 'objects.joplinusercontent.com'); - downloadUrl.concat('?source=DesktopApp&type=Update'); - break; - } - } - - function cleanUpReleaseNotes(releaseNotes: string[]) { - const lines = releaseNotes.join('\n\n* * *\n\n').split('\n'); - const output = []; - for (const line of lines) { - const r = line - .replace(/\(#.* by .*\)/g, '') // Removes issue numbers and names - (#3157 by [@user](https://github.com/user)) - .replace(/\([0-9a-z]{7}\)/g, '') // Removes commits - "sync state or data (a6caa35)" - .replace(/\(#[0-9]+\)/g, '') // Removes issue numbers - "(#4727)" - .replace(/ {2}/g, ' ') - .trim(); - - output.push(r); - } - return output.join('\n'); - } - - return { - version: version, - downloadUrl: downloadUrl, - notes: cleanUpReleaseNotes(fullReleaseNotes), - pageUrl: release.html_url, - prerelease: release.prerelease, - }; + return (await response.json()) as GitHubRelease[]; } function truncateText(text: string, length: number) { @@ -170,7 +76,8 @@ export default async function checkForUpdates(inBackground: boolean, parentWindo logger.info(`Checking with options ${JSON.stringify(options)}`); try { - const release = await fetchLatestRelease(options); + const releases = await fetchLatestRelease(); + const release = extractVersionInfo(releases, process.platform, options); logger.info(`Current version: ${packageInfo.version}`); logger.info(`Latest version: ${release.version}`); diff --git a/packages/app-desktop/utils/checkForUpdatesUtils.test.ts b/packages/app-desktop/utils/checkForUpdatesUtils.test.ts new file mode 100644 index 00000000000..d484b982ee8 --- /dev/null +++ b/packages/app-desktop/utils/checkForUpdatesUtils.test.ts @@ -0,0 +1,4061 @@ +import { extractVersionInfo } from './checkForUpdatesUtils'; + +const releases = [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/111428211', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/111428211/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/111428211/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.12.4', + 'id': 111428211, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GpEJz', + 'tag_name': 'v2.12.4', + 'target_commitish': 'dev', + 'name': 'v2.12.4', + 'draft': false, + 'prerelease': true, + 'created_at': '2023-07-07T15:16:01Z', + 'published_at': '2023-07-07T22:36:53Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115996326', + 'id': 115996326, + 'node_id': 'RA_kwDOBLftOs4G6fam', + 'name': 'Joplin-2.12.4-arm64.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 172932588, + 'download_count': 264, + 'created_at': '2023-07-07T15:48:23Z', + 'updated_at': '2023-07-07T15:48:30Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/Joplin-2.12.4-arm64.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115996580', + 'id': 115996580, + 'node_id': 'RA_kwDOBLftOs4G6fek', + 'name': 'Joplin-2.12.4-arm64.zip', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/zip', + 'state': 'uploaded', + 'size': 165955303, + 'download_count': 12, + 'created_at': '2023-07-07T15:50:12Z', + 'updated_at': '2023-07-07T15:50:19Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/Joplin-2.12.4-arm64.zip', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115998226', + 'id': 115998226, + 'node_id': 'RA_kwDOBLftOs4G6f4S', + 'name': 'Joplin-2.12.4-mac.zip', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/zip', + 'state': 'uploaded', + 'size': 171422573, + 'download_count': 7, + 'created_at': '2023-07-07T16:06:31Z', + 'updated_at': '2023-07-07T16:06:37Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/Joplin-2.12.4-mac.zip', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115994267', + 'id': 115994267, + 'node_id': 'RA_kwDOBLftOs4G6e6b', + 'name': 'Joplin-2.12.4.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 170306675, + 'download_count': 192, + 'created_at': '2023-07-07T15:30:11Z', + 'updated_at': '2023-07-07T15:30:17Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/Joplin-2.12.4.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115994266', + 'id': 115994266, + 'node_id': 'RA_kwDOBLftOs4G6e6a', + 'name': 'Joplin-2.12.4.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 11, + 'created_at': '2023-07-07T15:30:11Z', + 'updated_at': '2023-07-07T15:30:11Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/Joplin-2.12.4.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115998144', + 'id': 115998144, + 'node_id': 'RA_kwDOBLftOs4G6f3A', + 'name': 'Joplin-2.12.4.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 178300161, + 'download_count': 101, + 'created_at': '2023-07-07T16:05:14Z', + 'updated_at': '2023-07-07T16:05:21Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/Joplin-2.12.4.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115995230', + 'id': 115995230, + 'node_id': 'RA_kwDOBLftOs4G6fJe', + 'name': 'Joplin-Setup-2.12.4.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206548776, + 'download_count': 721, + 'created_at': '2023-07-07T15:39:44Z', + 'updated_at': '2023-07-07T15:39:49Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/Joplin-Setup-2.12.4.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115995223', + 'id': 115995223, + 'node_id': 'RA_kwDOBLftOs4G6fJX', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206319432, + 'download_count': 246, + 'created_at': '2023-07-07T15:39:41Z', + 'updated_at': '2023-07-07T15:39:49Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115994284', + 'id': 115994284, + 'node_id': 'RA_kwDOBLftOs4G6e6s', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 367, + 'download_count': 10, + 'created_at': '2023-07-07T15:30:17Z', + 'updated_at': '2023-07-07T15:30:17Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115998232', + 'id': 115998232, + 'node_id': 'RA_kwDOBLftOs4G6f4Y', + 'name': 'latest-mac.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 365, + 'download_count': 2, + 'created_at': '2023-07-07T16:06:40Z', + 'updated_at': '2023-07-07T16:06:40Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/latest-mac.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115995248', + 'id': 115995248, + 'node_id': 'RA_kwDOBLftOs4G6fJw', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 324, + 'download_count': 13, + 'created_at': '2023-07-07T15:39:50Z', + 'updated_at': '2023-07-07T15:39:50Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.4/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.12.4', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.12.4', + 'body': '', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/111428211/reactions', + 'total_count': 16, + '+1': 14, + '-1': 0, + 'laugh': 0, + 'hooray': 0, + 'confused': 0, + 'heart': 0, + 'rocket': 2, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/111383977', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/111383977/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/111383977/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.12.3', + 'id': 111383977, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4Go5Wp', + 'tag_name': 'v2.12.3', + 'target_commitish': 'dev', + 'name': 'v2.12.3', + 'draft': false, + 'prerelease': true, + 'created_at': '2023-07-07T09:11:57Z', + 'published_at': '2023-07-07T10:16:55Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115957316', + 'id': 115957316, + 'node_id': 'RA_kwDOBLftOs4G6V5E', + 'name': 'Joplin-2.12.3-arm64.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 173179296, + 'download_count': 90, + 'created_at': '2023-07-07T09:45:10Z', + 'updated_at': '2023-07-07T09:45:15Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/Joplin-2.12.3-arm64.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115957498', + 'id': 115957498, + 'node_id': 'RA_kwDOBLftOs4G6V76', + 'name': 'Joplin-2.12.3-arm64.zip', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/zip', + 'state': 'uploaded', + 'size': 166198724, + 'download_count': 6, + 'created_at': '2023-07-07T09:47:14Z', + 'updated_at': '2023-07-07T09:47:18Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/Joplin-2.12.3-arm64.zip', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115960298', + 'id': 115960298, + 'node_id': 'RA_kwDOBLftOs4G6Wnq', + 'name': 'Joplin-2.12.3-mac.zip', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/zip', + 'state': 'uploaded', + 'size': 171424573, + 'download_count': 10, + 'created_at': '2023-07-07T10:15:10Z', + 'updated_at': '2023-07-07T10:15:14Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/Joplin-2.12.3-mac.zip', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115955300', + 'id': 115955300, + 'node_id': 'RA_kwDOBLftOs4G6VZk', + 'name': 'Joplin-2.12.3.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 170306673, + 'download_count': 64, + 'created_at': '2023-07-07T09:28:19Z', + 'updated_at': '2023-07-07T09:28:25Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/Joplin-2.12.3.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115955298', + 'id': 115955298, + 'node_id': 'RA_kwDOBLftOs4G6VZi', + 'name': 'Joplin-2.12.3.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 8, + 'created_at': '2023-07-07T09:28:19Z', + 'updated_at': '2023-07-07T09:28:19Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/Joplin-2.12.3.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115960188', + 'id': 115960188, + 'node_id': 'RA_kwDOBLftOs4G6Wl8', + 'name': 'Joplin-2.12.3.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 178300168, + 'download_count': 37, + 'created_at': '2023-07-07T10:14:01Z', + 'updated_at': '2023-07-07T10:14:05Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/Joplin-2.12.3.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115956325', + 'id': 115956325, + 'node_id': 'RA_kwDOBLftOs4G6Vpl', + 'name': 'Joplin-Setup-2.12.3.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206558720, + 'download_count': 219, + 'created_at': '2023-07-07T09:38:48Z', + 'updated_at': '2023-07-07T09:38:54Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/Joplin-Setup-2.12.3.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115956317', + 'id': 115956317, + 'node_id': 'RA_kwDOBLftOs4G6Vpd', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206329376, + 'download_count': 87, + 'created_at': '2023-07-07T09:38:44Z', + 'updated_at': '2023-07-07T09:38:53Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115955307', + 'id': 115955307, + 'node_id': 'RA_kwDOBLftOs4G6VZr', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 367, + 'download_count': 4, + 'created_at': '2023-07-07T09:28:25Z', + 'updated_at': '2023-07-07T09:28:25Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115960303', + 'id': 115960303, + 'node_id': 'RA_kwDOBLftOs4G6Wnv', + 'name': 'latest-mac.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 365, + 'download_count': 2, + 'created_at': '2023-07-07T10:15:15Z', + 'updated_at': '2023-07-07T10:15:15Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/latest-mac.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/115956345', + 'id': 115956345, + 'node_id': 'RA_kwDOBLftOs4G6Vp5', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 324, + 'download_count': 7, + 'created_at': '2023-07-07T09:38:54Z', + 'updated_at': '2023-07-07T09:38:55Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.12.3/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.12.3', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.12.3', + 'body': '- Improved: Build macOS app as Universal binary (#8423) (#6052)\r\n- Improved: Updated packages @electron/remote (v2.0.10), @rmp135/sql-ts (v1.17.0), clean-html (v2), glob (v10.2.7)\r\n- Fixed: Removing Markdown when using \'Paste as Text\' (#8351) (#8317 by [@pedr](https://github.com/pedr))', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/111383977/reactions', + 'total_count': 5, + '+1': 3, + '-1': 0, + 'laugh': 0, + 'hooray': 0, + 'confused': 0, + 'heart': 2, + 'rocket': 0, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/109698394', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/109698394/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/109698394/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.11.11', + 'id': 109698394, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4Gid1a', + 'tag_name': 'v2.11.11', + 'target_commitish': 'dev', + 'name': 'v2.11.11', + 'draft': false, + 'prerelease': false, + 'created_at': '2023-06-23T14:10:56Z', + 'published_at': '2023-06-23T15:16:37Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/114044379', + 'id': 114044379, + 'node_id': 'RA_kwDOBLftOs4GzC3b', + 'name': 'Joplin-2.11.11.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 169285559, + 'download_count': 12113, + 'created_at': '2023-06-23T14:29:04Z', + 'updated_at': '2023-06-23T14:29:08Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.11/Joplin-2.11.11.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/114044380', + 'id': 114044380, + 'node_id': 'RA_kwDOBLftOs4GzC3c', + 'name': 'Joplin-2.11.11.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 149, + 'created_at': '2023-06-23T14:29:04Z', + 'updated_at': '2023-06-23T14:29:04Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.11/Joplin-2.11.11.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/114046530', + 'id': 114046530, + 'node_id': 'RA_kwDOBLftOs4GzDZC', + 'name': 'Joplin-2.11.11.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 177310671, + 'download_count': 34124, + 'created_at': '2023-06-23T14:44:55Z', + 'updated_at': '2023-06-23T14:44:59Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.11/Joplin-2.11.11.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/114044951', + 'id': 114044951, + 'node_id': 'RA_kwDOBLftOs4GzDAX', + 'name': 'Joplin-Setup-2.11.11.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206010952, + 'download_count': 69015, + 'created_at': '2023-06-23T14:33:04Z', + 'updated_at': '2023-06-23T14:33:09Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.11/Joplin-Setup-2.11.11.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/114044937', + 'id': 114044937, + 'node_id': 'RA_kwDOBLftOs4GzDAJ', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205781584, + 'download_count': 5797, + 'created_at': '2023-06-23T14:33:01Z', + 'updated_at': '2023-06-23T14:33:07Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.11/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/114044388', + 'id': 114044388, + 'node_id': 'RA_kwDOBLftOs4GzC3k', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 370, + 'download_count': 113, + 'created_at': '2023-06-23T14:29:08Z', + 'updated_at': '2023-06-23T14:29:08Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.11/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/114044975', + 'id': 114044975, + 'node_id': 'RA_kwDOBLftOs4GzDAv', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 327, + 'download_count': 134, + 'created_at': '2023-06-23T14:33:09Z', + 'updated_at': '2023-06-23T14:33:09Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.11/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.11.11', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.11.11', + 'body': '- Improved: Add support for plugin user data (#8312) (#8080)\r\n- Improved: Configure Rich Text editor to handle the first table row as header (#8163) (#3535 by [@Marph](https://github.com/Marph))\r\n- Improved: Updated packages css-loader (v6.7.4), dayjs (v1.11.8), domhandler (v5), domutils (v3.1.0), highlight.js (v11.8.0), react-redux (v8.0.7), style-loader (v3.3.3), styled-components (v5.3.11), ts-loader (v9.4.3)\r\n- Improved: Upgrade E2EE encryption method to AES-256 (#7686)\r\n- Fixed: Allow certain HTML anchor tags (#8286)\r\n- Fixed: Display plugin console in dev mode (#8210)\r\n- Fixed: Duplicated published notes retain the published note\'s label\'s color (#8287)\r\n- Fixed: Include more Rich Text editor commands in the menu (#8316)\r\n- Security: Prevent XSS when passing specially encoded string to a link (PoC by lin@UCCU Hacker) (57b4198)\r\n- Security: Prevent calling arbitrary commands via x-callback-url (PoC by lin@UCCU Hacker) (6982661)', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/109698394/reactions', + 'total_count': 29, + '+1': 19, + '-1': 0, + 'laugh': 0, + 'hooray': 5, + 'confused': 0, + 'heart': 1, + 'rocket': 4, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/107535052', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/107535052/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/107535052/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.11.9', + 'id': 107535052, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GaNrM', + 'tag_name': 'v2.11.9', + 'target_commitish': 'dev', + 'name': 'v2.11.9', + 'draft': false, + 'prerelease': true, + 'created_at': '2023-06-06T15:34:13Z', + 'published_at': '2023-06-06T16:23:27Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/111545909', + 'id': 111545909, + 'node_id': 'RA_kwDOBLftOs4Gpg41', + 'name': 'Joplin-2.11.9.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 168384691, + 'download_count': 726, + 'created_at': '2023-06-06T15:47:33Z', + 'updated_at': '2023-06-06T15:47:36Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.9/Joplin-2.11.9.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/111545910', + 'id': 111545910, + 'node_id': 'RA_kwDOBLftOs4Gpg42', + 'name': 'Joplin-2.11.9.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 29, + 'created_at': '2023-06-06T15:47:33Z', + 'updated_at': '2023-06-06T15:47:33Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.9/Joplin-2.11.9.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/111549015', + 'id': 111549015, + 'node_id': 'RA_kwDOBLftOs4GphpX', + 'name': 'Joplin-2.11.9.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 176389817, + 'download_count': 559, + 'created_at': '2023-06-06T16:06:59Z', + 'updated_at': '2023-06-06T16:07:07Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.9/Joplin-2.11.9.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/111548094', + 'id': 111548094, + 'node_id': 'RA_kwDOBLftOs4Gpha-', + 'name': 'Joplin-Setup-2.11.9.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205231664, + 'download_count': 1659, + 'created_at': '2023-06-06T16:00:39Z', + 'updated_at': '2023-06-06T16:00:46Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.9/Joplin-Setup-2.11.9.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/111548090', + 'id': 111548090, + 'node_id': 'RA_kwDOBLftOs4Gpha6', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205002320, + 'download_count': 581, + 'created_at': '2023-06-06T16:00:37Z', + 'updated_at': '2023-06-06T16:00:45Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.9/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/111545924', + 'id': 111545924, + 'node_id': 'RA_kwDOBLftOs4Gpg5E', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 367, + 'download_count': 14, + 'created_at': '2023-06-06T15:47:37Z', + 'updated_at': '2023-06-06T15:47:37Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.9/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/111548121', + 'id': 111548121, + 'node_id': 'RA_kwDOBLftOs4GphbZ', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 324, + 'download_count': 22, + 'created_at': '2023-06-06T16:00:46Z', + 'updated_at': '2023-06-06T16:00:46Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.9/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.11.9', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.11.9', + 'body': '- Improved: Add support for AVIF image format (#8175)\r\n- Improved: Improved word count when em-dash is used (#8083)\r\n- Improved: Fix white screen issue (8b578c5)\r\n- Improved: Updated packages aws, buildTools, tar (v6.1.15)\r\n- Fixed: "New note" buttons so large they occlude Search (#8249) (#8159 by Rio Sinnott)', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/107535052/reactions', + 'total_count': 21, + '+1': 20, + '-1': 0, + 'laugh': 0, + 'hooray': 0, + 'confused': 0, + 'heart': 1, + 'rocket': 0, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/105581515', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/105581515/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/105581515/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.11.6', + 'id': 105581515, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GSwvL', + 'tag_name': 'v2.11.6', + 'target_commitish': 'dev', + 'name': 'v2.11.6', + 'draft': false, + 'prerelease': true, + 'created_at': '2023-05-31T19:33:57Z', + 'published_at': '2023-05-31T20:13:08Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110683716', + 'id': 110683716, + 'node_id': 'RA_kwDOBLftOs4GmOZE', + 'name': 'Joplin-2.11.6.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 168391053, + 'download_count': 326, + 'created_at': '2023-05-31T19:48:04Z', + 'updated_at': '2023-05-31T19:48:07Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.6/Joplin-2.11.6.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110683715', + 'id': 110683715, + 'node_id': 'RA_kwDOBLftOs4GmOZD', + 'name': 'Joplin-2.11.6.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 14, + 'created_at': '2023-05-31T19:48:04Z', + 'updated_at': '2023-05-31T19:48:04Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.6/Joplin-2.11.6.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110685865', + 'id': 110685865, + 'node_id': 'RA_kwDOBLftOs4GmO6p', + 'name': 'Joplin-2.11.6.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 176388184, + 'download_count': 420, + 'created_at': '2023-05-31T20:07:02Z', + 'updated_at': '2023-05-31T20:07:09Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.6/Joplin-2.11.6.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110684483', + 'id': 110684483, + 'node_id': 'RA_kwDOBLftOs4GmOlD', + 'name': 'Joplin-Setup-2.11.6.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205199808, + 'download_count': 800, + 'created_at': '2023-05-31T19:56:50Z', + 'updated_at': '2023-05-31T19:56:55Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.6/Joplin-Setup-2.11.6.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110684467', + 'id': 110684467, + 'node_id': 'RA_kwDOBLftOs4GmOkz', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 204970464, + 'download_count': 311, + 'created_at': '2023-05-31T19:56:46Z', + 'updated_at': '2023-05-31T19:56:51Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.6/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110683719', + 'id': 110683719, + 'node_id': 'RA_kwDOBLftOs4GmOZH', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 367, + 'download_count': 13, + 'created_at': '2023-05-31T19:48:08Z', + 'updated_at': '2023-05-31T19:48:08Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.6/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110684492', + 'id': 110684492, + 'node_id': 'RA_kwDOBLftOs4GmOlM', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 324, + 'download_count': 28, + 'created_at': '2023-05-31T19:56:55Z', + 'updated_at': '2023-05-31T19:56:55Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.6/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.11.6', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.11.6', + 'body': '- Improved: When resetting the master password, also create a new master key with that password (e647775)\r\n- Fixed: Don\'t display "obsolete encryption method" message if the key is disabled (#8025) (#7933 by [@gitstart](https://github.com/gitstart))\r\n- Fixed: Improve selection of active E2EE key (#8254)\r\n- Fixed: Improve sidebar workaround for Linux w/Intel GPU (#8126) (#7506 by Calum Lind)\r\n- Fixed: Preserve Table Alignment When Editing a Note With the Rich Text Editor (#8214) (#6431 by Christopher O\'Toole)', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/105581515/reactions', + 'total_count': 29, + '+1': 16, + '-1': 0, + 'laugh': 0, + 'hooray': 3, + 'confused': 0, + 'heart': 6, + 'rocket': 4, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/104592398', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/104592398/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/104592398/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.11.5', + 'id': 104592398, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GO_QO', + 'tag_name': 'v2.11.5', + 'target_commitish': 'dev', + 'name': 'v2.11.5', + 'draft': false, + 'prerelease': true, + 'created_at': '2023-05-27T16:24:51Z', + 'published_at': '2023-05-28T00:41:40Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110096314', + 'id': 110096314, + 'node_id': 'RA_kwDOBLftOs4Gj--6', + 'name': 'Joplin-2.11.5.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 168412091, + 'download_count': 265, + 'created_at': '2023-05-27T16:38:42Z', + 'updated_at': '2023-05-27T16:38:46Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.5/Joplin-2.11.5.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110096313', + 'id': 110096313, + 'node_id': 'RA_kwDOBLftOs4Gj--5', + 'name': 'Joplin-2.11.5.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 16, + 'created_at': '2023-05-27T16:38:42Z', + 'updated_at': '2023-05-27T16:38:42Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.5/Joplin-2.11.5.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110097024', + 'id': 110097024, + 'node_id': 'RA_kwDOBLftOs4Gj_KA', + 'name': 'Joplin-2.11.5.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 176394377, + 'download_count': 290, + 'created_at': '2023-05-27T16:54:26Z', + 'updated_at': '2023-05-27T16:54:38Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.5/Joplin-2.11.5.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110096612', + 'id': 110096612, + 'node_id': 'RA_kwDOBLftOs4Gj_Dk', + 'name': 'Joplin-Setup-2.11.5.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205195848, + 'download_count': 722, + 'created_at': '2023-05-27T16:46:43Z', + 'updated_at': '2023-05-27T16:46:48Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.5/Joplin-Setup-2.11.5.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110096607', + 'id': 110096607, + 'node_id': 'RA_kwDOBLftOs4Gj_Df', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 204966504, + 'download_count': 248, + 'created_at': '2023-05-27T16:46:41Z', + 'updated_at': '2023-05-27T16:46:45Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.5/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110096316', + 'id': 110096316, + 'node_id': 'RA_kwDOBLftOs4Gj--8', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 367, + 'download_count': 12, + 'created_at': '2023-05-27T16:38:46Z', + 'updated_at': '2023-05-27T16:38:46Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.5/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/110096617', + 'id': 110096617, + 'node_id': 'RA_kwDOBLftOs4Gj_Dp', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 324, + 'download_count': 30, + 'created_at': '2023-05-27T16:46:48Z', + 'updated_at': '2023-05-27T16:46:48Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.5/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.11.5', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.11.5', + 'body': '- Improved: Updated packages jsdom (v21.1.2), markdown-it-multimd-table (v4.2.2), react-select (v5.7.3), sass (v1.62.1), sharp (v0.32.1), tar (v6.1.14), yargs (v17.7.2)\r\n- Fixed: Fix slow startup time (#8087)\r\n- Security: Disable SVG tag support in editor to prevent XSS (caf6606) (Vulnerability discovered by [RyotaK](https://ryotak.net/))\r\n- Security: Prevent XSS by sanitizing certain HTML attributes (9e90d90) (Vulnerability discovered by [RyotaK](https://ryotak.net/))', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/104592398/reactions', + 'total_count': 14, + '+1': 14, + '-1': 0, + 'laugh': 0, + 'hooray': 0, + 'confused': 0, + 'heart': 0, + 'rocket': 0, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/103302633', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/103302633/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/103302633/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.10.19', + 'id': 103302633, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GKEXp', + 'tag_name': 'v2.10.19', + 'target_commitish': 'dev', + 'name': 'v2.10.19', + 'draft': false, + 'prerelease': false, + 'created_at': '2023-05-17T11:47:19Z', + 'published_at': '2023-05-17T12:25:41Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108567070', + 'id': 108567070, + 'node_id': 'RA_kwDOBLftOs4GeJoe', + 'name': 'Joplin-2.10.19.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 168138870, + 'download_count': 22331, + 'created_at': '2023-05-17T12:05:19Z', + 'updated_at': '2023-05-17T12:05:24Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.19/Joplin-2.10.19.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108567069', + 'id': 108567069, + 'node_id': 'RA_kwDOBLftOs4GeJod', + 'name': 'Joplin-2.10.19.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 177, + 'created_at': '2023-05-17T12:05:19Z', + 'updated_at': '2023-05-17T12:05:19Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.19/Joplin-2.10.19.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108568704', + 'id': 108568704, + 'node_id': 'RA_kwDOBLftOs4GeKCA', + 'name': 'Joplin-2.10.19.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 176014016, + 'download_count': 48180, + 'created_at': '2023-05-17T12:19:27Z', + 'updated_at': '2023-05-17T12:19:32Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.19/Joplin-2.10.19.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108567498', + 'id': 108567498, + 'node_id': 'RA_kwDOBLftOs4GeJvK', + 'name': 'Joplin-Setup-2.10.19.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 204831416, + 'download_count': 110192, + 'created_at': '2023-05-17T12:09:52Z', + 'updated_at': '2023-05-17T12:09:59Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.19/Joplin-Setup-2.10.19.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108567486', + 'id': 108567486, + 'node_id': 'RA_kwDOBLftOs4GeJu-', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 204602024, + 'download_count': 9173, + 'created_at': '2023-05-17T12:09:47Z', + 'updated_at': '2023-05-17T12:09:52Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.19/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108567077', + 'id': 108567077, + 'node_id': 'RA_kwDOBLftOs4GeJol', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 370, + 'download_count': 141, + 'created_at': '2023-05-17T12:05:24Z', + 'updated_at': '2023-05-17T12:05:25Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.19/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108567504', + 'id': 108567504, + 'node_id': 'RA_kwDOBLftOs4GeJvQ', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 327, + 'download_count': 160, + 'created_at': '2023-05-17T12:10:00Z', + 'updated_at': '2023-05-17T12:10:00Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.19/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.10.19', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.10.19', + 'body': '- Improved: Improved handling of items with duplicate IDs when synchronising with Joplin Cloud or Server (d4c43a8)\r\n- Security: Fixed possible XSS injection (CVE-2023-33726) (b26bc9e) (Discovery and PoC by [@maple3142](https://twitter.com/maple3142))\r\n- Security: Prevent XSS and potential RCE when using a special HTML tag (CVE-2023-33727) (19bdda2) (Discovery and PoC by [Yaniv Nizry](https://twitter.com/YNizry) ([SonarSource](https://www.sonarsource.com/)))', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/103302633/reactions', + 'total_count': 29, + '+1': 19, + '-1': 0, + 'laugh': 0, + 'hooray': 5, + 'confused': 0, + 'heart': 1, + 'rocket': 4, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/103122775', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/103122775/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/103122775/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.11.4', + 'id': 103122775, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GJYdX', + 'tag_name': 'v2.11.4', + 'target_commitish': 'dev', + 'name': 'v2.11.4', + 'draft': false, + 'prerelease': true, + 'created_at': '2023-05-16T09:26:01Z', + 'published_at': '2023-05-16T10:02:21Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108384912', + 'id': 108384912, + 'node_id': 'RA_kwDOBLftOs4GddKQ', + 'name': 'Joplin-2.11.4.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 168403582, + 'download_count': 396, + 'created_at': '2023-05-16T09:39:55Z', + 'updated_at': '2023-05-16T09:40:00Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.4/Joplin-2.11.4.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108384911', + 'id': 108384911, + 'node_id': 'RA_kwDOBLftOs4GddKP', + 'name': 'Joplin-2.11.4.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 11, + 'created_at': '2023-05-16T09:39:55Z', + 'updated_at': '2023-05-16T09:39:55Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.4/Joplin-2.11.4.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108387225', + 'id': 108387225, + 'node_id': 'RA_kwDOBLftOs4GdduZ', + 'name': 'Joplin-2.11.4.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 176363975, + 'download_count': 455, + 'created_at': '2023-05-16T09:57:39Z', + 'updated_at': '2023-05-16T09:57:45Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.4/Joplin-2.11.4.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108385984', + 'id': 108385984, + 'node_id': 'RA_kwDOBLftOs4GddbA', + 'name': 'Joplin-Setup-2.11.4.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205211600, + 'download_count': 705, + 'created_at': '2023-05-16T09:48:57Z', + 'updated_at': '2023-05-16T09:49:02Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.4/Joplin-Setup-2.11.4.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108385978', + 'id': 108385978, + 'node_id': 'RA_kwDOBLftOs4Gdda6', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 204982256, + 'download_count': 344, + 'created_at': '2023-05-16T09:48:54Z', + 'updated_at': '2023-05-16T09:48:58Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.4/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108384929', + 'id': 108384929, + 'node_id': 'RA_kwDOBLftOs4GddKh', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 367, + 'download_count': 12, + 'created_at': '2023-05-16T09:40:00Z', + 'updated_at': '2023-05-16T09:40:00Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.4/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108386009', + 'id': 108386009, + 'node_id': 'RA_kwDOBLftOs4GddbZ', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 324, + 'download_count': 21, + 'created_at': '2023-05-16T09:49:02Z', + 'updated_at': '2023-05-16T09:49:02Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.4/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.11.4', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.11.4', + 'body': '- Fixed: Fix slow startup time (#8087)', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/103122775/reactions', + 'total_count': 14, + '+1': 12, + '-1': 0, + 'laugh': 0, + 'hooray': 2, + 'confused': 0, + 'heart': 0, + 'rocket': 0, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/103113827', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/103113827/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/103113827/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.11.3', + 'id': 103113827, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GJWRj', + 'tag_name': 'v2.11.3', + 'target_commitish': 'dev', + 'name': 'v2.11.3', + 'draft': false, + 'prerelease': true, + 'created_at': '2023-05-16T08:32:38Z', + 'published_at': '2023-05-16T09:09:57Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108371458', + 'id': 108371458, + 'node_id': 'RA_kwDOBLftOs4GdZ4C', + 'name': 'Joplin-2.11.3.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 129474279, + 'download_count': 26, + 'created_at': '2023-05-16T08:47:26Z', + 'updated_at': '2023-05-16T08:47:29Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.3/Joplin-2.11.3.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108371457', + 'id': 108371457, + 'node_id': 'RA_kwDOBLftOs4GdZ4B', + 'name': 'Joplin-2.11.3.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 10, + 'created_at': '2023-05-16T08:47:26Z', + 'updated_at': '2023-05-16T08:47:26Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.3/Joplin-2.11.3.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108373839', + 'id': 108373839, + 'node_id': 'RA_kwDOBLftOs4GdadP', + 'name': 'Joplin-2.11.3.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 156032426, + 'download_count': 28, + 'created_at': '2023-05-16T09:03:34Z', + 'updated_at': '2023-05-16T09:03:38Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.3/Joplin-2.11.3.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108373409', + 'id': 108373409, + 'node_id': 'RA_kwDOBLftOs4GdaWh', + 'name': 'Joplin-Setup-2.11.3.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205217216, + 'download_count': 49, + 'created_at': '2023-05-16T09:00:04Z', + 'updated_at': '2023-05-16T09:00:09Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.3/Joplin-Setup-2.11.3.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108373406', + 'id': 108373406, + 'node_id': 'RA_kwDOBLftOs4GdaWe', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 204987872, + 'download_count': 19, + 'created_at': '2023-05-16T09:00:01Z', + 'updated_at': '2023-05-16T09:00:06Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.3/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108371466', + 'id': 108371466, + 'node_id': 'RA_kwDOBLftOs4GdZ4K', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 367, + 'download_count': 11, + 'created_at': '2023-05-16T08:47:29Z', + 'updated_at': '2023-05-16T08:47:29Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.3/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/108373416', + 'id': 108373416, + 'node_id': 'RA_kwDOBLftOs4GdaWo', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 324, + 'download_count': 9, + 'created_at': '2023-05-16T09:00:09Z', + 'updated_at': '2023-05-16T09:00:09Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.11.3/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.11.3', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.11.3', + 'body': '- Improved: Add support for `--safe-mode` command line flag (#7919) (#7889 by Arun Kumar)\r\n- Improved: Added export graph button for Mermaid (#7958) (#6101 by Arun Kumar)\r\n- Improved: Auto-detect locale on startup (052a829)\r\n- Improved: Cache code blocks in notes to speed up rendering (#7867)\r\n- Improved: Compress installer to reduce size (#8068) (#8028 by Arun Kumar)\r\n- Improved: Improved handling of items with duplicate IDs (a0b707c)\r\n- Improved: Remove custom PDF viewer to reduce application size (#8028)\r\n- Improved: Translate Welcome notes (#8154)\r\n- Improved: Updated packages aws, fs-extra (v11.1.1), jsdom (v21.1.1), markdown-it-multimd-table (v4.2.1), nanoid (v3.3.6), node-persist (v3.1.3), react-select (v5.7.2), reselect (v4.1.8), sass (v1.60.0), sharp (v0.32.0), sqlite3 (v5.1.6), style-loader (v3.3.2), styled-components (v5.3.9), turndown (v7.1.2), yargs (v17.7.1)\r\n- Fixed: Application cannot be installed on Windows 10 in some cases (#8149)\r\n- Fixed: Do not allow update for plugins incompatible with current version (#7936) (#4801 by [@julien](https://github.com/julien))\r\n- Fixed: Encode the non-ASCII characters in OneDrive URI (#7868) (#7851 by Self Not Found)\r\n- Fixed: Enter Key No Longer Saves and Closes The Tag Dialog (#8072)\r\n- Fixed: Fix OneDrive sync attempting to call method on `null` variable (#7987) (#7986 by Henry Heino)\r\n- Fixed: Fix issue where search bar can randomly lose focus while searching (489d677)\r\n- Fixed: Fix note list blank space display problems (#7888) (#4124 by Arun Kumar)\r\n- Fixed: Fixed Linux tag display issues (#8002) (#8000 by Arun Kumar)\r\n- Fixed: Fixed icon when note is dragged across notebooks (#7924) (#7881 by Arun Kumar)\r\n- Fixed: Fixed issue with text disappearing within plugin-created zones when searching for text (0c8de68)\r\n- Fixed: Fixes crash when using multiple profiles along with certain plugins (#8143)\r\n- Fixed: Removed `MasterKey` from Sync Status report (#8026) (#7940 by Arun Kumar)\r\n- Fixed: Skip the resources which haven\'t been downloaded yet when exporting (#7843) (#7831 by Self Not Found)\r\n- Fixed: With Custom Sort, new notes appear at bottom and later randomly "pop" to the top (#7765) (#7741 by Tao Klerks)\r\n- Security: Fixed possible XSS injection (b26bc9e) (Discovery and PoC by [@maple3142](https://twitter.com/maple3142))\r\n- Security: Prevent XSS and potential RCE when using a special HTML tag (19bdda2) (Discovery and PoC by [Yaniv Nizry](https://twitter.com/YNizry) ([SonarSource](https://www.sonarsource.com/)))', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/103113827/reactions', + 'total_count': 13, + '+1': 5, + '-1': 0, + 'laugh': 1, + 'hooray': 3, + 'confused': 0, + 'heart': 2, + 'rocket': 1, + 'eyes': 1, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/102336682', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/102336682/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/102336682/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.10.18', + 'id': 102336682, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GGYiq', + 'tag_name': 'v2.10.18', + 'target_commitish': 'dev', + 'name': 'v2.10.18', + 'draft': false, + 'prerelease': false, + 'created_at': '2023-05-09T12:45:35Z', + 'published_at': '2023-05-09T13:27:43Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107370177', + 'id': 107370177, + 'node_id': 'RA_kwDOBLftOs4GZlbB', + 'name': 'Joplin-2.10.18.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 168129665, + 'download_count': 6709, + 'created_at': '2023-05-09T13:03:42Z', + 'updated_at': '2023-05-09T13:03:48Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.18/Joplin-2.10.18.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107370176', + 'id': 107370176, + 'node_id': 'RA_kwDOBLftOs4GZlbA', + 'name': 'Joplin-2.10.18.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 102, + 'created_at': '2023-05-09T13:03:42Z', + 'updated_at': '2023-05-09T13:03:42Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.18/Joplin-2.10.18.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107372599', + 'id': 107372599, + 'node_id': 'RA_kwDOBLftOs4GZmA3', + 'name': 'Joplin-2.10.18.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 176028357, + 'download_count': 24194, + 'created_at': '2023-05-09T13:18:09Z', + 'updated_at': '2023-05-09T13:18:14Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.18/Joplin-2.10.18.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107370673', + 'id': 107370673, + 'node_id': 'RA_kwDOBLftOs4GZlix', + 'name': 'Joplin-Setup-2.10.18.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 204820456, + 'download_count': 49251, + 'created_at': '2023-05-09T13:07:26Z', + 'updated_at': '2023-05-09T13:07:33Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.18/Joplin-Setup-2.10.18.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107370667', + 'id': 107370667, + 'node_id': 'RA_kwDOBLftOs4GZlir', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 204591088, + 'download_count': 4588, + 'created_at': '2023-05-09T13:07:24Z', + 'updated_at': '2023-05-09T13:07:39Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.18/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107370185', + 'id': 107370185, + 'node_id': 'RA_kwDOBLftOs4GZlbJ', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 370, + 'download_count': 63, + 'created_at': '2023-05-09T13:03:49Z', + 'updated_at': '2023-05-09T13:03:49Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.18/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107370713', + 'id': 107370713, + 'node_id': 'RA_kwDOBLftOs4GZljZ', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 327, + 'download_count': 91, + 'created_at': '2023-05-09T13:07:39Z', + 'updated_at': '2023-05-09T13:07:39Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.18/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.10.18', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.10.18', + 'body': '- Fixed: Application cannot be installed on Windows 10 in some cases (#8149)', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/102336682/reactions', + 'total_count': 25, + '+1': 18, + '-1': 0, + 'laugh': 0, + 'hooray': 1, + 'confused': 0, + 'heart': 2, + 'rocket': 4, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/102236590', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/102236590/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/102236590/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.10.17', + 'id': 102236590, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GGAGu', + 'tag_name': 'v2.10.17', + 'target_commitish': 'dev', + 'name': 'v2.10.17', + 'draft': false, + 'prerelease': false, + 'created_at': '2023-05-08T16:12:29Z', + 'published_at': '2023-05-08T17:27:28Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107244604', + 'id': 107244604, + 'node_id': 'RA_kwDOBLftOs4GZGw8', + 'name': 'Joplin-2.10.17.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 169753040, + 'download_count': 866, + 'created_at': '2023-05-08T16:26:30Z', + 'updated_at': '2023-05-08T16:26:34Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.17/Joplin-2.10.17.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107244603', + 'id': 107244603, + 'node_id': 'RA_kwDOBLftOs4GZGw7', + 'name': 'Joplin-2.10.17.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 39, + 'created_at': '2023-05-08T16:26:30Z', + 'updated_at': '2023-05-08T16:26:30Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.17/Joplin-2.10.17.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107247950', + 'id': 107247950, + 'node_id': 'RA_kwDOBLftOs4GZHlO', + 'name': 'Joplin-2.10.17.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 178192608, + 'download_count': 11476, + 'created_at': '2023-05-08T16:43:23Z', + 'updated_at': '2023-05-08T16:43:28Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.17/Joplin-2.10.17.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107245974', + 'id': 107245974, + 'node_id': 'RA_kwDOBLftOs4GZHGW', + 'name': 'Joplin-Setup-2.10.17.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206228488, + 'download_count': 15378, + 'created_at': '2023-05-08T16:38:34Z', + 'updated_at': '2023-05-08T16:38:41Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.17/Joplin-Setup-2.10.17.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107245971', + 'id': 107245971, + 'node_id': 'RA_kwDOBLftOs4GZHGT', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205997752, + 'download_count': 1554, + 'created_at': '2023-05-08T16:38:32Z', + 'updated_at': '2023-05-08T16:38:41Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.17/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107244613', + 'id': 107244613, + 'node_id': 'RA_kwDOBLftOs4GZGxF', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 370, + 'download_count': 26, + 'created_at': '2023-05-08T16:26:34Z', + 'updated_at': '2023-05-08T16:26:34Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.17/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/107245991', + 'id': 107245991, + 'node_id': 'RA_kwDOBLftOs4GZHGn', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 327, + 'download_count': 54, + 'created_at': '2023-05-08T16:38:42Z', + 'updated_at': '2023-05-08T16:38:42Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.17/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.10.17', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.10.17', + 'body': '- Fixed: Enter Key No Longer Saves and Closes The Tag Dialog (#8072)\r\n- Fixed: Fixes crash when using multiple profiles along with certain plugins (#8143)', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/102236590/reactions', + 'total_count': 24, + '+1': 16, + '-1': 0, + 'laugh': 0, + 'hooray': 2, + 'confused': 0, + 'heart': 5, + 'rocket': 1, + 'eyes': 0, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/101064645', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/101064645/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/101064645/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.10.16', + 'id': 101064645, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GBh_F', + 'tag_name': 'v2.10.16', + 'target_commitish': 'dev', + 'name': 'v2.10.16', + 'draft': false, + 'prerelease': false, + 'created_at': '2023-04-27T08:28:27Z', + 'published_at': '2023-04-27T09:27:45Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105561018', + 'id': 105561018, + 'node_id': 'RA_kwDOBLftOs4GSru6', + 'name': 'Joplin-2.10.16.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 169768836, + 'download_count': 762, + 'created_at': '2023-04-27T08:46:03Z', + 'updated_at': '2023-04-27T08:46:08Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.16/Joplin-2.10.16.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105561017', + 'id': 105561017, + 'node_id': 'RA_kwDOBLftOs4GSru5', + 'name': 'Joplin-2.10.16.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 40, + 'created_at': '2023-04-27T08:46:03Z', + 'updated_at': '2023-04-27T08:46:03Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.16/Joplin-2.10.16.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105562680', + 'id': 105562680, + 'node_id': 'RA_kwDOBLftOs4GSsI4', + 'name': 'Joplin-2.10.16.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 178189179, + 'download_count': 4220, + 'created_at': '2023-04-27T09:00:03Z', + 'updated_at': '2023-04-27T09:00:13Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.16/Joplin-2.10.16.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105561694', + 'id': 105561694, + 'node_id': 'RA_kwDOBLftOs4GSr5e', + 'name': 'Joplin-Setup-2.10.16.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206244456, + 'download_count': 6705, + 'created_at': '2023-04-27T08:51:52Z', + 'updated_at': '2023-04-27T08:51:56Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.16/Joplin-Setup-2.10.16.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105561686', + 'id': 105561686, + 'node_id': 'RA_kwDOBLftOs4GSr5W', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206013736, + 'download_count': 989, + 'created_at': '2023-04-27T08:51:49Z', + 'updated_at': '2023-04-27T08:51:53Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.16/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105561027', + 'id': 105561027, + 'node_id': 'RA_kwDOBLftOs4GSrvD', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 370, + 'download_count': 29, + 'created_at': '2023-04-27T08:46:09Z', + 'updated_at': '2023-04-27T08:46:09Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.16/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105561699', + 'id': 105561699, + 'node_id': 'RA_kwDOBLftOs4GSr5j', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 327, + 'download_count': 47, + 'created_at': '2023-04-27T08:51:57Z', + 'updated_at': '2023-04-27T08:51:57Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.16/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.10.16', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.10.16', + 'body': '- Improved: Revert to "normal" package compression (2e2feab)', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/101064645/reactions', + 'total_count': 27, + '+1': 15, + '-1': 0, + 'laugh': 2, + 'hooray': 3, + 'confused': 0, + 'heart': 2, + 'rocket': 2, + 'eyes': 3, + }, + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/101012320', + 'assets_url': 'https://api.github.com/repos/laurent22/joplin/releases/101012320/assets', + 'upload_url': 'https://uploads.github.com/repos/laurent22/joplin/releases/101012320/assets{?name,label}', + 'html_url': 'https://github.com/laurent22/joplin/releases/tag/v2.10.15', + 'id': 101012320, + 'author': { + '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', + 'site_admin': false, + }, + 'node_id': 'RE_kwDOBLftOs4GBVNg', + 'tag_name': 'v2.10.15', + 'target_commitish': 'dev', + 'name': 'v2.10.15', + 'draft': false, + 'prerelease': true, + 'created_at': '2023-04-26T20:49:44Z', + 'published_at': '2023-04-26T22:02:16Z', + 'assets': [ + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105474073', + 'id': 105474073, + 'node_id': 'RA_kwDOBLftOs4GSWgZ', + 'name': 'Joplin-2.10.15.AppImage', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 130544097, + 'download_count': 47, + 'created_at': '2023-04-26T21:08:15Z', + 'updated_at': '2023-04-26T21:08:20Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.15/Joplin-2.10.15.AppImage', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105474072', + 'id': 105474072, + 'node_id': 'RA_kwDOBLftOs4GSWgY', + 'name': 'Joplin-2.10.15.AppImage.sha512', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 128, + 'download_count': 13, + 'created_at': '2023-04-26T21:08:15Z', + 'updated_at': '2023-04-26T21:08:15Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.15/Joplin-2.10.15.AppImage.sha512', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105476823', + 'id': 105476823, + 'node_id': 'RA_kwDOBLftOs4GSXLX', + 'name': 'Joplin-2.10.15.dmg', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 157728230, + 'download_count': 126, + 'created_at': '2023-04-26T21:26:23Z', + 'updated_at': '2023-04-26T21:26:28Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.15/Joplin-2.10.15.dmg', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105474731', + 'id': 105474731, + 'node_id': 'RA_kwDOBLftOs4GSWqr', + 'name': 'Joplin-Setup-2.10.15.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 206230352, + 'download_count': 258, + 'created_at': '2023-04-26T21:12:54Z', + 'updated_at': '2023-04-26T21:12:59Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.15/Joplin-Setup-2.10.15.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105474728', + 'id': 105474728, + 'node_id': 'RA_kwDOBLftOs4GSWqo', + 'name': 'JoplinPortable.exe', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'application/octet-stream', + 'state': 'uploaded', + 'size': 205999632, + 'download_count': 85, + 'created_at': '2023-04-26T21:12:51Z', + 'updated_at': '2023-04-26T21:12:57Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.15/JoplinPortable.exe', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105474081', + 'id': 105474081, + 'node_id': 'RA_kwDOBLftOs4GSWgh', + 'name': 'latest-linux.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 370, + 'download_count': 12, + 'created_at': '2023-04-26T21:08:21Z', + 'updated_at': '2023-04-26T21:08:21Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.15/latest-linux.yml', + }, + { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/assets/105474738', + 'id': 105474738, + 'node_id': 'RA_kwDOBLftOs4GSWqy', + 'name': 'latest.yml', + 'label': '', + 'uploader': { + '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', + 'site_admin': false, + }, + 'content_type': 'text/yaml', + 'state': 'uploaded', + 'size': 327, + 'download_count': 15, + 'created_at': '2023-04-26T21:13:00Z', + 'updated_at': '2023-04-26T21:13:00Z', + 'browser_download_url': 'https://github.com/laurent22/joplin/releases/download/v2.10.15/latest.yml', + }, + ], + 'tarball_url': 'https://api.github.com/repos/laurent22/joplin/tarball/v2.10.15', + 'zipball_url': 'https://api.github.com/repos/laurent22/joplin/zipball/v2.10.15', + 'body': '- Improved: Remove custom PDF viewer to reduce application size (#8028)\r\n- Improved: Compress installer to reduce size (#8068) (#8028)', + 'reactions': { + 'url': 'https://api.github.com/repos/laurent22/joplin/releases/101012320/reactions', + 'total_count': 16, + '+1': 9, + '-1': 0, + 'laugh': 1, + 'hooray': 1, + 'confused': 0, + 'heart': 3, + 'rocket': 1, + 'eyes': 1, + }, + }, +]; + +describe('checkForUpdates', () => { + + it('should extract version info and return the non-arm64 version', async () => { + const versionInfo = extractVersionInfo(releases, 'darwin', { + includePreReleases: true, + }); + + expect(versionInfo.downloadUrl).toBe('https://objects.joplinusercontent.com/v2.12.4/Joplin-2.12.4.dmg'); + expect(versionInfo.prerelease).toBe(true); + expect(versionInfo.pageUrl).toBe('https://github.com/laurent22/joplin/releases/tag/v2.12.4'); + expect(versionInfo.version).toBe('2.12.4'); + }); + +}); diff --git a/packages/app-desktop/utils/checkForUpdatesUtils.ts b/packages/app-desktop/utils/checkForUpdatesUtils.ts new file mode 100644 index 00000000000..95f46c9ff41 --- /dev/null +++ b/packages/app-desktop/utils/checkForUpdatesUtils.ts @@ -0,0 +1,119 @@ +import { fileExtension } from '@joplin/lib/path-utils'; +import shim from '@joplin/lib/shim'; + +export interface CheckForUpdateOptions { + includePreReleases?: boolean; +} + +export interface GitHubRelease { + tag_name: string; + prerelease: boolean; + body: string; + assets: { + name: string; + browser_download_url: string; + }[]; + html_url: string; +} + +interface Release { + version: string; + prerelease: boolean; + downloadUrl: string; + notes: string; + pageUrl: string; +} + +function getMajorMinorTagName(tagName: string) { + const s = tagName.split('.'); + s.pop(); + return s.join('.'); +} + +export const extractVersionInfo = (releases: GitHubRelease[], platform: typeof process.platform, options: CheckForUpdateOptions) => { + options = { includePreReleases: false, ...options }; + + if (!releases.length) throw new Error('Cannot get latest release info (JSON)'); + + let release = null; + + if (options.includePreReleases) { + release = releases[0]; + } else { + for (const r of releases) { + if (!r.prerelease) { + release = r; + break; + } + } + } + + if (!release) throw new Error('Could not get tag name'); + + const version = release.tag_name.substr(1); + + // We concatenate all the release notes of the major/minor versions + // corresponding to the latest version. For example, if the latest version + // is 1.8.3, we concatenate all the 1.8.x versions. This is so that no + // matter from which version you upgrade, you always see the full changes, + // with the latest changes being on top. + + const fullReleaseNotes = []; + const majorMinorTagName = getMajorMinorTagName(release.tag_name); + + for (const release of releases) { + if (getMajorMinorTagName(release.tag_name) === majorMinorTagName) { + fullReleaseNotes.push(release.body.trim()); + } + } + + let downloadUrl = null; + for (let i = 0; i < release.assets.length; i++) { + const asset = release.assets[i]; + let found = false; + const ext = fileExtension(asset.name); + if (platform === 'win32' && ext === 'exe') { + if (shim.isPortable()) { + found = asset.name === 'JoplinPortable.exe'; + } else { + found = !!asset.name.match(/^Joplin-Setup-[\d.]+\.exe$/); + } + } else if (platform === 'darwin' && ext === 'dmg' && !asset.name.endsWith('arm64.dmg')) { // We don't return the arm64 version for now + found = true; + } else if (platform === 'linux' && ext === '.AppImage') { + found = true; + } + + if (found) { + downloadUrl = asset.browser_download_url.replace('github.com/laurent22/joplin/releases/download', 'objects.joplinusercontent.com'); + downloadUrl.concat('?source=DesktopApp&type=Update'); + break; + } + } + + function cleanUpReleaseNotes(releaseNotes: string[]) { + const lines = releaseNotes.join('\n\n* * *\n\n').split('\n'); + const output = []; + for (const line of lines) { + const r = line + .replace(/\(#.* by .*\)/g, '') // Removes issue numbers and names - (#3157 by [@user](https://github.com/user)) + .replace(/\([0-9a-z]{7}\)/g, '') // Removes commits - "sync state or data (a6caa35)" + .replace(/\(#[0-9]+\)/g, '') // Removes issue numbers - "(#4727)" + .replace(/ {2}/g, ' ') + .trim(); + + output.push(r); + } + return output.join('\n'); + } + + const output: Release = { + version: version, + downloadUrl: downloadUrl, + notes: cleanUpReleaseNotes(fullReleaseNotes), + pageUrl: release.html_url, + prerelease: release.prerelease, + }; + + return output; +};